`
sharong
  • 浏览: 485209 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
D1667ae2-8cfc-3b68-ac7c-5e282789fa4a
论开源
浏览量:8454
7eb53364-fe48-371c-9623-887640be0185
Spring-data-j...
浏览量:12758
社区版块
存档分类
最新评论

使用自主研发的小游戏框架开发的俄罗斯方块,贪吃蛇,连连看

阅读更多
最近利用业余时间,开发了几款最基本的J2ME小游戏程序,有俄罗斯方块,贪吃蛇,连连看等。对开发J2ME游戏以致游戏开发做了一些探索,自己研发了一个很小的J2ME游戏框架,暂时就命名为J2MEEngine了。由于开发J2ME游戏时间不长,仅2个月,而且都是自己摸索,所以框架暂时还非常简陋,只提供了一些J2ME游戏的常用的功能,计Canvas封装器,数据存取,文本文档读取,常用算法,短信发送等。而对于一般游戏引擎应该具有的图像的渲染,粒子特效,资源管理,网络服务,图形编辑器,场景管理,物理引擎等等还全都没有涉及。
今后如果有时间的话,我会深入研究,然后慢慢填补上,毕竟俺不是专业开发游戏的。如果有哪位大牛愿意合作开发的话,可站短或者EMail联系我。
通过对这几个小游戏的开发,基本摸清了游戏的开发思路,确实和一般的Java,J2EE程序在思路及模式上有较大的区别,而且游戏程序从实现上来说也更倾向于面向过程式编程。面向对象及设计模式在这里体现不出他们的威力,如果大量使用以上两者,常常还会不同程度上减缓程序的运行速度,这对于我这种长期使用纯粹的面向对象,设计模式进行设计和实现的javaer来说,确实是一种新的尝试。
附件里是俄罗斯方块的源代码及可运行jar文件。仅仅是做了一个很简单的演示程序,图片是从腾讯QQ游戏中扒下来,自己使用windows附件里的画图程序修改的,呵呵。不过看起来已经非常专业了。
此程序所有的绘图定位都做到了各种终端类型机通用,一套程序就可以在各种屏幕大小的手机上运行,为简单起见,仅开发了240x320,360x640屏幕机型的程序。在240x320屏幕大小下,使用KEmulator测试,运行时内存占用不到25k,其中图片加载大概是13k左右。
分享到:
评论
9 楼 鸟哥哥 2010-05-18  
sharong 写道
鸟哥哥 写道
一个通过百宝箱的射击游戏,代码近60个类,采用面向对象方法:多态,继承,封装都用了。游戏包大屏500多k,三星因为限制,砍到490k左右。中屏大概300多k, 程序上完全一样,缩图而已,7610完全不卡,e398有点卡,但能过。小屏就没做了。真机测试主流的20个机型系列通过:

大屏
1、 Nokia_N73
2、 Nokia_7370
3、 Moto_V8
4、 Moto_E680
5、 Moto_E2
6、 SE_K790
7、 SE_S700
8、 SE_W958
9、 KTouch_C800
10、Sangsung_D608
11、Lenovo_S966
12、LG_KF510

中屏
13、Nokia_7610
14、SE_K700
15、SE_K600
16、SE_K750
17、Panasonic_X800
18、Moto_E398
19、Moto_V600
20、Moto_L7

代码如果仅是通过模拟器检测,那还是不行的。用drawImage,还是drawRegion,总共用了几个线程,多少个匿名类等,很多机器直接出问题。你像readUTF8(),如果一次超过3k,e398就和你说bye bye了,用了绘图翻转,drawRegion在7610面前你就得卡晕,用了大量game包里的类(有些能用,有些绝对不能用),你的移植就不用考虑了,用了Image.create(Image,int x, y,width,height),在nokia面前,就会出些其他颜色。面向对象与面向过程,怎么样使用在j2me游戏中,还是很有研究的地方的。

对于上面关于测试的研究,俺确实没有深入到这个程度,只是发现一套程序在不同的机器上,不同操作系统,或者即使相同的操作系统上跑,也会呈现完全不同的效果,例如白屏闪动,程序运行快慢之类的。但是我这里确实没有那么多机型进行测试,只能是使用cldc1.0,尽量不使用特殊方法了。
另:问下,您是不是那个《鸟哥的linux私房菜》电子书的作者?

呵呵,我不是那个大牛。
8 楼 zovikoo 2010-04-30  
算法上还需进一步优化,某些方块贴边翻转时,会卡,但主线程继续使方块的Y++
7 楼 sharong 2010-04-03  
鸟哥哥 写道
一个通过百宝箱的射击游戏,代码近60个类,采用面向对象方法:多态,继承,封装都用了。游戏包大屏500多k,三星因为限制,砍到490k左右。中屏大概300多k, 程序上完全一样,缩图而已,7610完全不卡,e398有点卡,但能过。小屏就没做了。真机测试主流的20个机型系列通过:

大屏
1、 Nokia_N73
2、 Nokia_7370
3、 Moto_V8
4、 Moto_E680
5、 Moto_E2
6、 SE_K790
7、 SE_S700
8、 SE_W958
9、 KTouch_C800
10、Sangsung_D608
11、Lenovo_S966
12、LG_KF510

中屏
13、Nokia_7610
14、SE_K700
15、SE_K600
16、SE_K750
17、Panasonic_X800
18、Moto_E398
19、Moto_V600
20、Moto_L7

代码如果仅是通过模拟器检测,那还是不行的。用drawImage,还是drawRegion,总共用了几个线程,多少个匿名类等,很多机器直接出问题。你像readUTF8(),如果一次超过3k,e398就和你说bye bye了,用了绘图翻转,drawRegion在7610面前你就得卡晕,用了大量game包里的类(有些能用,有些绝对不能用),你的移植就不用考虑了,用了Image.create(Image,int x, y,width,height),在nokia面前,就会出些其他颜色。面向对象与面向过程,怎么样使用在j2me游戏中,还是很有研究的地方的。

对于上面关于测试的研究,俺确实没有深入到这个程度,只是发现一套程序在不同的机器上,不同操作系统,或者即使相同的操作系统上跑,也会呈现完全不同的效果,例如白屏闪动,程序运行快慢之类的。但是我这里确实没有那么多机型进行测试,只能是使用cldc1.0,尽量不使用特殊方法了。
另:问下,您是不是那个《鸟哥的linux私房菜》电子书的作者?
6 楼 yyclang 2010-03-02  
是的,我也看了下,貌似编译通不过
5 楼 鸟哥哥 2009-12-23  
一个通过百宝箱的射击游戏,代码近60个类,采用面向对象方法:多态,继承,封装都用了。游戏包大屏500多k,三星因为限制,砍到490k左右。中屏大概300多k, 程序上完全一样,缩图而已,7610完全不卡,e398有点卡,但能过。小屏就没做了。真机测试主流的20个机型系列通过:

大屏
1、 Nokia_N73
2、 Nokia_7370
3、 Moto_V8
4、 Moto_E680
5、 Moto_E2
6、 SE_K790
7、 SE_S700
8、 SE_W958
9、 KTouch_C800
10、Sangsung_D608
11、Lenovo_S966
12、LG_KF510

中屏
13、Nokia_7610
14、SE_K700
15、SE_K600
16、SE_K750
17、Panasonic_X800
18、Moto_E398
19、Moto_V600
20、Moto_L7

代码如果仅是通过模拟器检测,那还是不行的。用drawImage,还是drawRegion,总共用了几个线程,多少个匿名类等,很多机器直接出问题。你像readUTF8(),如果一次超过3k,e398就和你说bye bye了,用了绘图翻转,drawRegion在7610面前你就得卡晕,用了大量game包里的类(有些能用,有些绝对不能用),你的移植就不用考虑了,用了Image.create(Image,int x, y,width,height),在nokia面前,就会出些其他颜色。面向对象与面向过程,怎么样使用在j2me游戏中,还是很有研究的地方的。
4 楼 sharong 2009-12-07  
引擎的包目前还很不完善,呵呵,暂时还不打算发布,代码稍作修改应该就可以脱离引擎运行
3 楼 skzr.org 2009-12-05  
@sharong

代码下下来了,好像编译有问题,找不到那个引擎的包!
2 楼 王者之剑 2009-12-04  
下来看看,最近也在学j2me开发
1 楼 reilf 2009-12-04  

先顶贴,再看.

相关推荐

Global site tag (gtag.js) - Google Analytics