仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1785|回复: 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-1-21 10:45:33 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
分手快乐 该用户已被删除
板凳
发表于 2015-1-30 15:52:40 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
再现理想 该用户已被删除
地板
发表于 2015-2-6 13:54:58 | 只看该作者
吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
金色的骷髅 该用户已被删除
5#
发表于 2015-2-8 06:03:57 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
老尸 该用户已被删除
6#
发表于 2015-2-11 19:08:11 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
谁可相欹 该用户已被删除
7#
发表于 2015-2-20 18:52:19 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
灵魂腐蚀 该用户已被删除
8#
发表于 2015-2-25 17:03:38 | 只看该作者
是一种使用者不需花费很多时间学习的语言
因胸联盟 该用户已被删除
9#
发表于 2015-3-7 06:09:45 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
透明 该用户已被删除
10#
发表于 2015-3-11 15:10:48 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
爱飞 该用户已被删除
11#
发表于 2015-3-14 22:39:56 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
愤怒的大鸟 该用户已被删除
12#
发表于 2015-3-20 10:33:31 | 只看该作者
你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。
精灵巫婆 该用户已被删除
13#
发表于 2015-3-23 23:08:24 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
柔情似水 该用户已被删除
14#
 楼主| 发表于 2015-4-3 19:27:58 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
山那边是海 该用户已被删除
15#
发表于 2015-4-11 01:08:53 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
若相依 该用户已被删除
16#
发表于 2015-4-16 01:10:10 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
小妖女 该用户已被删除
17#
发表于 2015-4-21 05:37:26 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
深爱那片海 该用户已被删除
18#
发表于 2015-4-21 21:56:41 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
蒙在股里 该用户已被删除
19#
发表于 2015-4-22 12:28:52 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
小女巫 该用户已被删除
20#
发表于 2015-5-6 20:10:59 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-16 09:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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