cocos2d_android开发简单游戏
来源:互联网 发布:淘宝助理天猫版不好用 编辑:程序博客网 时间:2024/04/30 00:39
1)游戏图层设计:
public class WellcomeLayer extends CCLayer {public WellcomeLayer() {this.setIsTouchEnabled(true);CCSprite background1 = CCSprite.sprite("background.jpg");CCSprite background2 = CCSprite.sprite("background.jpg");background1.setAnchorPoint(0, 0);background1.setPosition(0, 0);this.addChild(background1);background2.setAnchorPoint(0, 0);background2.setPosition(0, background1.getContentSize().height);this.addChild(background2);CCSprite logo = CCSprite.sprite("LOGO.png");logo.setAnchorPoint(0, 0);logo.setPosition((CCDirector.sharedDirector().winSize().width - logo.getContentSize().width)/ 2 , CCDirector.sharedDirector().winSize().height/2);this.addChild(logo);}}游戏界面层public class GameOverLayer extends CCLayer {public GameOverLayer(int score) {...}}
2)滚动背景设计
同时在图层放三张图片,垂直排列,并且每帧2个像素点向下移动,当第二张图片到原点时,重复循环
background1 = CCSprite.sprite("background.jpg");background2 = CCSprite.sprite("background.jpg");background3 = CCSprite.sprite("background.jpg"); background3.setAnchorPoint(0, 0);background2.setAnchorPoint(0, 0);background1.setAnchorPoint(0, 0);this.addChild(background1);this.addChild(background2);this.addChild(background3); //初始化三张背景图 //使用cocos2d的定时调度 this.schedule("backgroundMove", 0.01f); /** * 背景移动 * @param dalat */ public void backgroundMove(float dalat) { background1.setPosition(0, background1.getPosition().y - 2); background2.setPosition(0, background1.getPosition().y + background1.getContentSize().height); background3.setPosition(0, background2.getPosition().y + background2.getContentSize().height); if(background2.getPosition().y == 0) { background1.setPosition(0, 0); } }
2)背景音乐:
context = CCDirector.sharedDirector().getActivity(); SoundEngine.sharedEngine().preloadEffect(context, R.raw.game_music); SoundEngine.sharedEngine().playSound(context, R.raw.game_music, true);
4)精灵设计与产生:
/** * 发射子弹 * @param dalat */ public void shoot(float dalat) { CCSprite bullet = CCSprite.sprite("bullet1.png"); bullet.setPosition(player.getPosition().x, player.getPosition().y + player.getContentSize().height); addChild(bullet); CCMoveBy move = CCMoveBy.action(5, CGPoint.ccp(0, winSize.getHeight() + 10)); bullet.runAction(move); this.bulletList.add(bullet); } /** * 随机生成敌机 @param dalat */ public void addEnemy(float dalat) { CCSprite enemy = CCSprite.sprite("enemy1.png"); enemy.setPosition(random.nextInt((int)winSize.getWidth()), winSize.getHeight()); CGPoint p = CGPoint.ccp(0, 0 - winSize.getHeight() - 20); addChild(enemy); CCMoveBy move = CCMoveBy.action(20, p); enemy.runAction(move); this.enemyList.add(enemy); }
5)碰撞检测
/** * 判断主机是否与敌机发生碰撞 * @param dalat * @return */ public void boom(float dalat) { for(int i = 0; i < enemyList.size(); i++) { CCSprite enemy = enemyList.get(i); if(CGRect.intersects(player.getBoundingBox(), enemy.getBoundingBox())){ CCBlink blink = CCBlink.action(1, 3); CCHide hide = CCHide.action(); this.enemyList.remove(i); CCSequence seq = CCSequence.actions(blink, hide); enemy.runAction(enemyDownSeq); player.runAction(seq); new Thread(){ public void run() { try { Thread.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } exitGame(); } }.start(); } if(enemy.getPosition().y < 0) { this.enemyList.remove(i); this.removeChild(enemy, true); } } }
界面:
源码:https://github.com/wujiagan/plane-war
0 0
- cocos2d_android开发简单游戏
- cocos2d_android 第一个游戏
- C游戏 简单迷宫游戏开发
- html5游戏开发-简单老虎机
- 足球简单游戏开发小结
- unity3d游戏开发简单画线
- 简单盘点游戏开发引擎
- 简单游戏Roll_A_Ball开发笔记
- SpriteKit 框架开发简单游戏
- First cocos2d_android Project
- cocos2d_android 瞬间动作
- cocos2d_android 学习开篇
- 用Delphi + DirectX开发简单RPG游戏
- 游戏开发简单流程1(转贴)
- 用Delphi + DirectX开发简单RPG游戏
- 一步步教学生开发简单游戏(一)
- 一步步教学生开发简单游戏(二)
- 用Delphi+DirectX开发简单RPG游戏
- ACdreamoj1114(Number theory)莫比乌斯容斥
- 黑马程序员_装箱拆箱与枚举
- LeetCode——Path Sum
- Oracle经典语法
- asp.net 一般处理程序Handler.ashx应用实例
- cocos2d_android开发简单游戏
- SQLite学习笔记三:Where, AND/OR, Update, Delete
- 以wordpress为例在nginx上配置虚拟主机
- JavaScript学习笔记四——Eval函数
- 【组合数学】36军官问题
- 【python】UnboundLocalError: local variable 'counter' referenced before assignment
- android 读取一个文件下所有的文件
- Java.5若干细节
- what is the Structural mechanics(什么是结构力学?)