您当前的位置: 首页 >  游戏

xiangzhihong8

暂无认证

  • 3浏览

    0关注

    1324博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

flappy bird游戏源代码揭秘和下载

xiangzhihong8 发布时间:2014-04-01 23:44:24 ,浏览量:3

背景:

  最近火爆全球的游戏flappy bird让笔者叹为观止,于是花了一天的时间山寨了一个一模一样的游戏,现在把游戏的思路和源码分享出来,代码是基于javascript语言,cocos2d-x游戏引擎,cocos2d-x editor手游开发工具完成的,请读者轻砸;

  ps:运行demo必须配置好cocos2d-x editor,暂不支持其他工具。还有demo是跨平台的,可移植运行android,ios,html5移动系统等;

Android Apk下载:(演示效果)

 暂时只移植打包到android系统,可下载运行看看效果;

腾讯微云:http://share.weiyun.com/cac18d8c58d40bf2401b3fdeeb6bcb2f

代码下载:

代码集中营免费下载:  http://blog.makeapp.co/?p=306&preview=true

csdn下载:http://download.csdn.net/detail/touchsnow/6912707

百度云盘:http://pan.baidu.com/s/1pJnWDb9

金山快盘 :http://www.kuaipan.cn/file/id_25348935635745384.htm?source=1

代码如何移植到各平台:

 Android:http://blog.csdn.net/touchsnow/article/details/19176091

 html5:       http://blog.makeapp.co/?p=245

效果图:

cocos2d-x跨平台游戏引擎
cocos2d-x是全球知名的游戏引擎 ,引擎在全球范围内拥有众多开发者,涵盖国内外各知名游戏开发商。目前Cocos2d-x引擎已经实现横跨ios、Android、Bada、MeeGo、BlackBerry、Marmalade、Windows、Linux等平台。编写一次,到处运行,分为两个版本 cocos2d-c++和cocos2d-html5 本文使用了后者;
cocos2d-x 官网: http://cocos2d-x.org/
cocos2d-x 资料下载   http://cocos2d-x.org/download

cocos2d-x editor开发工具:

   cocos2dx editor,它是开发跨平台的手机游戏工具,运行window/mac系统上,javascript脚本语言,基于cocos2d-x跨平台游戏引擎, 集合代码编辑,场景设计,动画制作,字体设计,还有粒子,物理系统,地图等等的,而且调试方便,和实时模拟;

cocos2dx editor 下载,介绍和教程:http://blog.csdn.net/touchsnow/article/details/19070665;

cocos2dx editor官方博客:http://blog.makeapp.co/;(请持续关注版本更新)

思路和源码:

  1 场景设计MainLayer.ccbx,如下图;主要分三层,开始场景、主场景、游戏结束场景,通过显示隐藏控制三个场景的切换。

 

   MainLayer.ccbx代码

[html] view plain copy 在CODE上查看代码片 派生到我的代码片
  1.   
  2.   
  3.   
  4.   
  5.       
  6.           
  7.           
  8.       
  9.   
  10.       
  11.           
  12.               
  13.               
  14.               
  15.               
  16.           
  17.   
  18.       
  19.       
  20.   
  21.         
  22.         
  23.         
  24.         
  25.         
  26.         
  27.           
  28.           
  29.         
  30.         
  31.           
  32.           
  33.         
  34.         
  35.           
  36.             
  37.           
  38.           
  39.             
  40.             
  41.           
  42.         
  43.       
  44.   
  45.   
  46.   
 

2 代码编写MainLayer.js

   首先,小鸟在向前飞,其实是底部的路和水管在向左移动,相对的你就感觉小鸟在向右飞了;路循环移动代码:

[javascript] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. MainLayer.prototype.groundRun = function ()  
  2. {  
  3.     var action1 = cc.MoveTo.create(0.5, cc.p(-120, 0));  
  4.     var action2 = cc.MoveTo.create(0, cc.p(0, 0));  
  5.     var action = cc.Sequence.create(action1, action2);  
  6.     this.ground.runAction(cc.RepeatForever.create(action));  
  7. }  
   初始化高低不同的水管,每一关卡都由上下两水管和空隙组成。总长度相同,空隙也一定,随机取下面水管的长度,就形成错落有致的水管关卡;
[javascript] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. MainLayer.prototype.newHose = function (num)  
  2. {  
  3.     var hoseHeight = 830;  
  4.     var acrossHeight = 300;  
  5.     var downHeight = 100 + getRandom(400);  
  6.     var upHeight = 1100 - downHeight - acrossHeight;  
  7.   
  8.     var hoseX = 400 * num;  
  9.   
  10.     var HoseName = FP_MAIN_TEXTURE.HOSE;  
  11.     var ccSpriteDown = cc.Sprite.createWithSpriteFrameName(HoseName[0]);  
  12.     ccSpriteDown.setZOrder(1);  
  13.     ccSpriteDown.setAnchorPoint(cc.p(0, 0));  
  14.     ccSpriteDown.setPosition(cc.p(hoseX, 0));  
  15.     ccSpriteDown.setScaleY(downHeight / hoseHeight);  
  16.   
  17.     var ccSpriteUp = cc.Sprite.createWithSpriteFrameName(HoseName[1]);  
  18.     ccSpriteUp.setZOrder(1);  
  19.     ccSpriteUp.setAnchorPoint(cc.p(0, 0));  
  20.     ccSpriteUp.setPosition(cc.p(hoseX, downHeight + acrossHeight));  
  21.     ccSpriteUp.setScaleY(upHeight / hoseHeight);  
  22.   
  23.     this.hoseNode.addChild(ccSpriteDown);  
  24.     this.hoseNode.addChild(ccSpriteUp);  
  25.     this.hoseSpriteList.push(ccSpriteDown);  
  26.     this.hoseSpriteList.push(ccSpriteUp);  
  27.     return null;  
  28. }  
  一开始进入游戏让底部路不断移动,初始化水管,显示准备游戏场景;
[javascript] view plain copy 在CODE上查看代码片 派生到我的代码片
  1. MainLayer.prototype.onEnter = function ()  
  2. {  
  3.     cc.AnimationCache.getInstance().addAnimations("Resources/flappy_frame.plist");  
  4.     this.groundRun();  
  5.     this.ground.setZOrder(10);  
  6.     this.birdReadyAction();  
  7.     this.bird.setZOrder(20);  
  8.     this.readyNode.setVisible(true);  
  9.     this.overNode.setVisible(false);  
  10.   
  11.     for (var i = 0; i 
关注
打赏
1482932726
查看更多评论
立即登录/注册

微信扫码登录

0.0460s