仓酷云

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

[学习教程] 发布一篇J2ME 2D小游戏进门之旅(三) 把持飞机的挪动

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:07:21 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

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

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

x
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译)
其实是等不及了吧?加把劲,让我们到场游戏的配角飞机吧。
你能够将这个游戏定位在举措游戏,一个举措游戏必要不休的从用户端取得输出,基础上不中断,以是plane必要不休的改动地位。那末这个基于桢的游戏应当定在几桢符合呢?这必要在手机中测试,在摹拟器上,假如定在15-18桢摆布,是对照符合的。听csdn的几位xd说有的游戏仅仅定在12桢,以是分歧的游戏是纷歧定的。基础上举措游戏对机子的请求是要高一点。我们的游戏框架是线性的,即输入显现和承受输出是在统一个线程中,15桢以下的游戏处置输出会显得对照苯,高于20桢假如处置器速率较慢,很简单呈现输出卡在缓冲区,处置不外来的情形。现阶段只管让桢数降上去吧,你不克不及和pc上用dx编程时,一致30fps的情形等量齐观。
在这个以把持精灵挪动为次要内容的游戏中,我们不封装任何的游戏事务,我们的程序大概有些稚嫩,不妨,一步一步来吧。
1.飞机
plane是一个尺度的plane。由三桢画面构成,:
在机关函数中,我们到场对飞机的初始化对象语句:
Imageimg=ImageTools.getImage("/pic/MyPlaneFrames.png");
plane=newGameObject(img,24,24);
在gameInit()中初始化形态,地位居中:
plane.reset();
plane.moveto((screenwidth-plane.sprite.getWidth())/2,(screenheight-plane.sprite.getHeight())/2);
在gameMain中到场:
plane.paint(g);
接上去,让飞机在把持下挪动,次要是在gameMain中到场输出处置,假如飞机左移就更新画面到飞机左倾的画面,假如飞机右倾反之,没有输出的时分让飞机处于一般。
if(gameover){
}else{
if(keyevent){
if(key_up){
plane.move(0,-3);
plane.sprite.setFrame(0);
}
if(key_down){
plane.move(0,3);
plane.sprite.setFrame(0);
}
if(key_left){
plane.move(-3,0);
plane.sprite.setFrame(1);
}
if(key_right){
plane.move(3,0);
plane.sprite.setFrame(2);
}
if(key_fire){
}
}
}
else{
plane.sprite.setFrame(0);
}
}
只管很复杂,但这是把持精灵挪动的次要体例。能够设想一下,假如往左飞不是复杂的一桢画面而是播放动画,该怎样完成呢?我们的GameObject功效无限,没有对spriite的动画序列举行加强,从此我们能够加强GameObject,使其撑持多个动画序列,填补spriite的不敷。如今渐渐体味到一个好的游戏引擎是何等主要了吧…
<p>
windows系统样,他们做了什么事或者留了一些后门程序,谁都不知道,二,java开发是跨平台,任何系统上都可以运行,对于保密型系统和大型系统开发这是必要的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-6-3 10:49

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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