仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 706|回复: 14
打印 上一主题 下一主题

[学习教程] 来看开辟易于移植的J2ME游戏

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:20:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(SunMicrosystems)公司的詹姆斯·高斯林(JamesGosling)等人于1990年代初开发。
1.屏幕尺寸分歧
这儿谈的次要成绩,是自顺应控件。所谓控件,就是菜单、文本框、列表框、进度条等等。这些控件的巨细必需能够依据屏幕巨细自顺应的调剂。依照第一篇说的办法,将屏幕巨细作为变量介入到控件尺寸的盘算便可失掉准确的尺寸(自顺应后的)。其次就是失掉准确尺寸后怎样把它画出来。
这要看你的GUI是怎样画得了,假如是用线画的,那就很复杂;假如利用了图片,那末便可能要改换图片了。我的控件利用了图片平展和画线分离,以是能够很简单的改动尺寸。假如控件变年夜了,则绘制时增添平展的次数便可。
特地说一下,这些控件我只用了一个类暗示,利用参数化的办法辨别利用,究竟咱要只管罕用类吧。
2.撑持的API分歧
假如你的游戏只限于利用Midp1.0,那末移植的时分就不必思索甚么了。实践上因为我们常常要利用图片翻转、象素绘制、全屏等,常常要用到厂商API或Midp2.0。明显移植的时分要思索到这些API的差别。
我的举措是将这些api封装一层,好比我必要利用创立通明子图的API,因而封装了一个函数createSubImg。这是Nokia版本:
publicstaticImagecreateSubImg(Imageimg,int[]imgRect){
ImagesubImg=DirectUtils.createImage(imgRect[2],imgRect[3],0);
subImg.getGraphics().drawImage(img,-imgRect[0],-imgRect[1],20);
returnsubImg;
}
这是Midp2.0版本:
publicstaticImagecreateSubImg(Imageimg,int[]imgRect){
returnImage.createImage(img,imgRect[0],imgRect[1],imgRect[2],imgRect[3],0);
}
关于分歧机型,该函数的完成分歧,但功效不异,因而利用这个函数的代码在移植时无需修正。固然如许做增添了一些直接性,有大概下降功能。
3.按键代码分歧我们晓得MIDP供应了GameAction,和按键代码有关,但这不敷用啊,我们完整能够界说本人的GameAction,但起首让我们界说本人的假造按键码吧。我利用位纪录每一个键的形态,每一个位代表一个按键,一个int有32个位以是充足了。当keyPressed产生时,我记下哪些键被按下;一样当keyReleased时,将那些被松开的键利用的位清0。某个键,也就是这个键盘形态整数里的某个位,就是我界说的一个假造键。固然它的值老是2的n次方了,和keycode完整不搭边,以是必要我们用一个映照函数将keycode映照到这些假造键。这个函数就是移植的关头,每一个机型都要改写这个映照函数,在内里填进准确的keycode。你能够在假造键的基本上再界说GameAction,撑持在游戏中设置按键,如许就更天真了。(4)封装库假如想不变动一行代码就从MotorolaV600移植到NokiaN-Gage,那末为他们封装分歧的库吧。我就如许在1分钟内完成了移植。我的库包括了一个游戏框架类(内含游戏轮回和衬着函数,键盘处置,和多少跨机型的工具函数),一个图形组办理类(办理图片的载进切割扭转绘制和动画等,有点像GameAPI中的Sprite)和一个控件类(包括了一切我必要的控件)。这3个类封装了分歧机型的一切差别,我必要为每种机型改写这三个类,固然年夜部分代码是不异的了。别的我还写了一个工具撑持图形组办理类,所见即所得的编纂动画和办理图片,固然这也对移植有匡助。总结:以上几条,总得讲来,不过是拆合而以。次要是要将差别性自力出来,便于变动。可是移植总得来说仍是对照忧郁,次要缘故原由是各类机型有各自的bug,这就必要特别处置啦。列位写代码时必定要想好移植的成绩啊!

令人可喜的是java现在已经开源了,所以我想我上述的想法也许有一天会实现,因为java一直都是不断创新的语言,每次创新都会给我们惊喜,这也是我喜欢java的一个原因。
飘灵儿 该用户已被删除
沙发
发表于 2015-1-18 12:26:44 | 只看该作者
如果要向javaweb方向发展也要吧看看《Javaweb从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。
冷月葬花魂 该用户已被删除
板凳
发表于 2015-1-21 22:47:13 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
第二个灵魂 该用户已被删除
地板
 楼主| 发表于 2015-1-24 15:35:09 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
深爱那片海 该用户已被删除
5#
发表于 2015-1-28 23:46:26 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
乐观 该用户已被删除
6#
发表于 2015-2-2 11:59:45 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
小女巫 该用户已被删除
7#
发表于 2015-2-9 04:51:26 | 只看该作者
是一种突破用户端机器环境和CPU
分手快乐 该用户已被删除
8#
发表于 2015-2-20 02:57:51 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
兰色精灵 该用户已被删除
9#
发表于 2015-2-26 15:09:20 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
柔情似水 该用户已被删除
10#
发表于 2015-3-2 20:49:11 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
莫相离 该用户已被删除
11#
发表于 2015-3-8 19:16:59 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
金色的骷髅 该用户已被删除
12#
发表于 2015-3-11 17:29:02 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
admin 该用户已被删除
13#
发表于 2015-3-11 19:49:14 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
谁可相欹 该用户已被删除
14#
发表于 2015-3-19 10:25:42 | 只看该作者
是一种突破用户端机器环境和CPU
变相怪杰 该用户已被删除
15#
发表于 2015-3-27 18:11:40 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 16:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表