CocosEditor-java写flappyBird的过程记录【更新中】
2014-10-04 22:13
337 查看
1.先搭建好环境
http://blog.cocoseditor.com/?p=733一开始就搭好android环境,但上面的链接只能在android环境下调试,新设置一个java config就可以调试java项目了
2.导入图片资料
可参考官网,如果要导入别人的plist文件,可参考下文http://blog.csdn.net/xzongyuan/article/details/39781993
3.实现主菜单
加入三个sprite,并添加动画功能这篇第十点提到,实现了合并动画功能
http://blog.csdn.net/xzongyuan/article/details/39780431
4.设计游戏界面
先不管碰撞检测,设计柱子等间隔出现。有三种思路:1.可以for循环产生等间隔柱子。js源码就是这种,要设定好每个pipe的起始位置
2.下面是失败版本。设计了3个柱子,虽然等间隔出现,但是pipe3的第二轮等待时间点还没设计好,造成pipe1和pipe3重叠,仅供参考。
public void createPipeBarrier(){ float pipeWidth = 160; float designWidth = 720; //左右两个pipe之间的空隙 float pipeDistance = 300; //左右两个pipe之间的偏移 float pipeOffset = pipeDistance+pipeWidth; float timeTotal = 2; //pipe1出现运行至pipe消失的总长度 float disTotal = designWidth+pipeWidth; //以第一个pipe的移动速度为参考速度 float speed = disTotal/timeTotal; float startX1 = designWidth; float startX2 = designWidth+pipeOffset; final float startX3 = designWidth+pipeOffset*2; Sprite pipeBar1 = NodeReader.create().readSprite("layouts/pipeBarrier.cce"); pipeBar1.setPositionX(startX1); // pipeBar1.setTag(Constant.TAG_PIPE_1); pipeBar1.runAction(RepeatForever.create(Sequence.create( MoveTo.create((startX1+pipeWidth)/speed,new Vec2(-pipeWidth,0)), MoveTo.create(0, new Vec2(startX1, 0)), DelayTime.create((startX3+pipeWidth)/speed-(startX1+pipeWidth)/speed) ))); //固定两个pipe之间的距离 Sprite pipeBar2 = NodeReader.create().readSprite("layouts/pipeBarrier.cce"); pipeBar2.setPositionX(startX2); // pipeBar2.setTag(Constant.TAG_PIPE_2); pipeBar2.runAction(RepeatForever.create(Sequence.create( MoveTo.create((startX2+pipeWidth)/speed,new Vec2(-pipeWidth,0)), MoveTo.create(0, new Vec2(startX2, 0)), //消失后,等待所有pipe消失 DelayTime.create((startX3+pipeWidth)/speed-(startX2+pipeWidth)/speed) ))); Sprite pipeBar3 = NodeReader.create().readSprite("layouts/pipeBarrier.cce"); pipeBar3.setPositionX(startX3); // pipeBar2.setTag(Constant.TAG_PIPE_2); pipeBar3.runAction(RepeatForever.create(Sequence.create( MoveTo.create((startX3+pipeWidth)/speed,new Vec2(-pipeWidth,0)), MoveTo.create(0, new Vec2(startX3, 0)) //所有pipe消失,不用等待 ))); owner.addChild(pipeBar1); owner.addChild(pipeBar2); owner.addChild(pipeBar3); }3.用onUpdate()这个方法最好用了,之前不知道,搞了N久。简单易行,效果如下:
5.点击事件的实现
6.碰撞检测
7.计分功能
相关文章推荐
- 记录一下学习JAVA过程中所遇到的问题(持续更新)
- 自动记录数据库存储过程的更新和改变,并产生日志
- 从Delphi向Java的转变,准备记录java的学习过程
- 黑马程序员Java培训、Android培训-Java 学习过程记录_多线程2
- 存储过程来更新表的记录
- 黑马程序员_Java 学习过程记录_JavaAPI-2
- linux的maven+turbine+turque java项目移植到windows eclipse的过程记录
- 记录一下此次java考试及备考过程的感觉
- 黑马程序员Java培训、Android培训-Java 学习过程记录_面向对象下3
- 黑马程序员Java培训、Android培训-Java 学习过程记录_面向对象下2
- java.sql.SQLException: 关闭的连接问题及hibernate clob缓冲流存储的解决过程记录
- java程序调用存储过程得到新增加记录的id号的方法
- 黑马程序员Java培训、Android培训_Java 学习过程记录_开发前奏
- 网站更新部署20110210,新站部署全过程记录
- 黑马程序员Java培训、Android培训-Java 学习过程记录_多线程
- 转:自动记录数据库存储过程的更新和改变,并产生日志
- 20110205网站更新部署过程记录
- 黑马程序员Java培训、Android培训_Java 学习过程记录_语言基础2
- 黑马程序员Java培训、Android培训-Java 学习过程记录_JavaAPI
- Java开发过程中遇到的一些小错误集锦-以后会不断地更新