仓酷云

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

[学习教程] JAVA网站制作之J2ME 2D小游戏进门之旅(五) 完成爆炸效...

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

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

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

x
C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱.5、完成爆炸效果、并到场道具导弹

年夜多半游戏都有着丰厚的效果类,在精灵挪动类游戏中曾一度以此为一个主要的卖点,。光光是一些丰厚的殊效是不克不及够发生一个好的游戏的,可是一个好的游戏是切切不克不及短少好的效果的。

良多人以为游戏的效果层偶然和跟游戏逻辑自己并没有太年夜的干系,常常就是在终极屏幕上再画上一层效果层。可是游戏逻辑和效果层之间的通讯是很主要的。这类通讯常常表现在延时与守候上。好比飞机爆炸时,不承受任何用户输出,而且爆炸效果还要持续跟从飞机坠落,乃至爆炸的局限会影响四周的物体,要守候爆炸了局停止了才持续举行游戏。游戏逻辑和效果层之间的通讯是很庞大的成绩。在这里我俄然有了罪行感,我们没有对游戏举行任何的剖析就起步了,游戏完整是基于硬编码的,我想到那儿,人人随着看到那儿。飞机类仅仅是一个sprite,没有计划成一个形态机,这也就使得我们的效果层和逻辑层的通讯有些卡通了。大概本文给了你编写本人第一个游戏的高兴,也带给了你对游戏扩大性与庞大性的一丝担心。也许这比便一个硬编码的游戏更成心义呢?谁说得好呢,现仍是觉得那些扩大性优秀的游戏是巨大游戏构架师的佳构吧,信任你有了一两个好的设法后会从头计划这个游戏的,使之略微有一些像个“体系”。但是好的手艺纷歧定发生好的游戏……呵呵

有扯远了,会到实际吧,boysandgirls!goon.

形貌一下我们的爆炸效果,在枪弹击中飞机后,枪弹要敏捷消散,飞机图象坚持稳定,此时将爆炸效果至于飞机图象之上,然后入手下手显现boom动画,在此时代,飞机不承受任何挪动唆使,由于他losecontrol。在爆炸效果后飞机消散。



我们的爆炸效果类:

GameObjectexplosion;//

初始化once:

img=ImageTools.getImage("/pic/explosion.png");//

explosion=newGameObject(img,32,32);



初始化:

explosion.reset();

explosion.lifetime=3;//性命周期定位三桢



逻辑处置:

if(gameover){//假如游戏停止,显现效果类

explosion.paint(g);

explosion.update();

if(!explosion.alive){//当性命周期停止了

plane.alive=false;//封闭plane

g.setColor(255,255,255);//输入考语,下回分化

g.drawString(StringTools.timeOpinion(gametime),5,22,g.LEFT|g.TOP);

g.drawString("fly0.1verbyfavoyang",2,100,g.LEFT|g.TOP);

g.drawString("E-mail:favoyang@yahoo.com",2,115,g.LEFT|g.TOP);

g.drawString("simulatefrom:",2,130,g.LEFT|g.TOP);

g.drawString("Mr.tonys<holdon20sec1.20>",2,145,g.LEFT|g.TOP);

g.drawString("hellotony,justfunny.",2,160,g.LEFT|g.TOP);

}

}



如今你看我是怎样办理效果层与逻辑层之间的通讯的,我利用的是全局变量gameover,在复杂游戏中利用大批的全局形态变量也是一种罕见的办法,能够制止动脑劲。不外弱点分明,游戏硬编码,布局既不明晰也不大度,几近没有扩大性。以是说最好仍是将飞机基于形态机计划,并将效果类计划成含有回调函数的笼统类,然后承继效果类完成回调函数来完成通讯。至于整体条理上能够用仓库将绘画单位串起来。另有分层处置等等…给你个思索的出发点…



导弹的是完成,是否是你已有个设法了呢,实在就是使用Bullets.killbullets。

逻辑处置

if(bomb.alive){

bomb.moveto(plane.sprite.getX()-20,plane.sprite.getY()-20);

bomb.paint(g);

bomb.update();

bullets.killbullets(plane.sprite,32);

}



在这里我不能不提一句,将性命观点封装在GameObject中是很好的(实在我们只是将其用作显现关头字),但将性命周期布置在GameObject中有不当当,性命周期也纷歧定就是基于桢的,偶然基于工夫,偶然另有其余甚么。我是说她充足庞大到交给另外一个自力类处置,在这里实践必要的是一个充足壮大的显现办法,其撑持以桢数为参数显现而已。





实在我以为本人说多了,大概你也被我弄懵懂了。对了目次上少了一节,我们还短少游戏的赏罚体系,下回我补上。


关于第二点:俺问问你,如果是企业级项目的话,诸如RMI,EJB,等一些关键技术,这些难道都不需要学么?如果光是使用jsp,servlet,javabean的话。
柔情似水 该用户已被删除
沙发
 楼主| 发表于 2015-4-3 19:27:58 | 显示全部楼层
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-28 12:17

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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