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

cocos2d_android开发简单游戏的更多相关文章

  1. JS开发HTML5游戏《神奇的六边形》(一)

    近期出现一款魔性的消除类HTML5游戏<神奇的六边形>,今天我们一起来看看如何通过开源免费的青瓷引擎(www.zuoyouxi.com)来实现这款游戏. (点击图片可进入游戏体验) 因内容 ...

  2. JS开发HTML5游戏《神奇的六边形》(三)

    近期出现一款魔性的消除类HTML5游戏<神奇的六边形>,今天我们一起来看看如何通过开源免费的青瓷引擎(www.zuoyouxi.com)来实现这款游戏. (点击图片可进入游戏体验) 因内容 ...

  3. [置顶] 使用红孩儿工具箱完成基于Cocos2d-x的简单游戏动画界面

    [Cocos2d-x相关教程来源于红孩儿的游戏编程之路CSDN博客地址:http://blog.csdn.net/honghaier 红孩儿Cocos2d-X学习园地QQ3群:205100149,47 ...

  4. 王者荣耀是怎样炼成的(一)《王者荣耀》用什么开发,游戏入门,unity3D介绍

    在国内,如果你没有听说过<王者荣耀>,那你一定是古董级的人物了. <王者荣耀>(以下简称“农药”),专注于移动端(Android.IOS)的MOBA游戏.笔者看到这么火爆,就萌 ...

  5. 用Cocos2dx开发棋牌游戏的观点解析

    众所周知,目前棋牌游戏特别的火.很多游戏公司都想在这一块赚钱,可是却不知用什么软件比较好的去开发棋牌游戏,对此,我列出了两款比较靠谱的软件去开发棋牌游戏,希望对大家有帮助! 第一款软件是cocos2d ...

  6. C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例

    C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例 Unity中循环遍历每个数据,并做出判断 很多时候,游戏在玩家做出判断以后,游戏程序会遍历玩家身上大量的所需数据,然后做出判断,即首先判 ...

  7. C#开发Unity游戏教程之判断语句

    C#开发Unity游戏教程之判断语句 游戏执行路径的选择——判断 玩家在游戏时,无时无刻不在通过判断做出选择.例如,正是因为玩家做出的选择不同,才导致游戏朝着不同的剧情发展,因此一个玩家可以对一个游戏 ...

  8. C#开发Unity游戏教程之Unity中方法的参数

    C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号“( )”,有意义吗?看起来最多也就是起个快速识别 ...

  9. C#开发Unity游戏教程之游戏对象的行为逻辑方法

    C#开发Unity游戏教程之游戏对象的行为逻辑方法 游戏对象的行为逻辑——方法 方法(method),读者在第1章新建脚本时就见过了,而且在第2章对脚本做整体上的介绍时也介绍过,那么上一章呢,尽管主要 ...

随机推荐

  1. Direct 2D实现界面库 (1)

    大学时尝试过很多次写一个UI库, 初次使用 GDI 绘图, 当时水平很低, GDI功能太弱, 以失败而告终. 之后使用 GDI+ 绘图, 当时水平依旧很低, GDI功能很强, 但效率实在太慢, 以失败 ...

  2. location传值

    location.href="url?p="+"value"; onclick="location.href='Card_query_where?qu ...

  3. Ubuntu 12.04 下安装配置 JDK 7(tar)

    第一步:下载jdk-7u45-linux-i586.tar.gz 到Orcale的JDK官网下载JDK7的tar包 第二步:解压安装 tar -zxvf ./jdk-7u45-linux-i586.t ...

  4. DEDECMS使用SQL命令批量替换语句

    1.更改文章中的内容 update dede_addonarticle set body=replace(body,'原来的字符','替换后的字符') 2,替换文章标题 update dede_arc ...

  5. php 拓展 Filter 过滤器

    简介       Filter,它的作用就和他的名字一样——过滤.过滤规则成为过滤器,Filter内置了多个常用过滤器,根据过滤器功能的不 同,可以分成净化过滤器(Sanitization)和验证过滤 ...

  6. jQuery 自动完成文本框

    jQuery自动完成插件开源软件 http://www.oschina.net/project/tag/329/jquery-autocomplete jQuery TextExt http://te ...

  7. .NET 4.0 使用 asyn await

    .NET 4.0 也可以使用asyn await 使用nuget 搜索await即可发现微软官方包,安装导项目就可以使用了.   参考:http://stackoverflow.com/questio ...

  8. 老oj2146 && Pku2135 Farm Tour

    Description When FJ's friends visit him on the farm, he likes to show them around. His farm comprise ...

  9. MYSQL死锁

    转载时请以超链接形式标明文章原始出处和作者信息及本声明http://www.blogbus.com/ri0day-logs/59186177.html mysql使用myisam的时候锁表比较多,尤其 ...

  10. 用链表解决if语句过多的问题(C/C++实现)

    起因 http://www.cnblogs.com/code-style/p/3499408.html 设计模式的解决方案(基于python语言) http://www.cnblogs.com/cod ...