`
abc20899
  • 浏览: 929075 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cocos2dx 官网的小游戏 1

 
阅读更多
cocos2dx 官网的小游戏

第一节: 创建各种平台的工程

1. iphone工程
goto the root of cocos2d-x folder, then run the install-templates.sh in the mac shell
./install-templates-xcode.sh -u -f   运行此脚本即可安装到xcode中

and you can choose your xcode version here, xcode3 or xcode4.  这里选择对应的xcode版本
After the installation finisehd, you can start the Xcode, then click "Create a new Xcode project". You can see this dialog
启动xcode后,创建新的xcode工程,可以看到如下对话框:





此为 iphone工程

2.android工程
   执行 create-android-project.sh 创建android工程,上篇已经提到
   我们可以修改一节编译测试一节。

第二节 怎么添加一个精灵
  1. Player.png 到官网下载 这个精灵文件,保存到resources 资源目录下面
     


  添加代码:
bool HelloWorld::init(){    //在场景初始化方法中  此在布景中添加
   if ( CCLayer::init() ){  
     CCSize winSize = CCDirector::sharedDirector()->getWinSize();  //获取屏幕窗口的大小
	 //实例化一个精灵 图片  图片在一个矩形中
     CCSprite *player = CCSprite::spriteWithFile("Player.png", CCRectMake(0, 0, 27, 40) );
	 //设置精灵的位置
     player->setPosition( ccp(player->getContentSize().width/2, winSize.height/2) );
     //添加精灵到布景中
	 this->addChild(player);
  }
  return true;
}
class HelloWorld : public cocos2d::CCLayerColor  //HelloWorld类也可以继承CCLayerColorle类
CCLayerColor::initWithColor( ccc4(255,255,255,255) )//设置颜色






第三节  怎么样移动精灵
   1.Target.png  下载精灵文件
     


   在头文件中声明 void addTarget() 方法  HelloWorldScene.h头文件
在实现文件中添入如下代码

void HelloWorld::addTarget(){
    //用图片创建一个精灵
     CCSprite *target = CCSprite::spriteWithFile("Target.png", CCRectMake(0,0,27,40) );
    // Determine where to spawn the target along the Y axis
     CCSize winSize = CCDirector::sharedDirector()->getWinSize();
     int minY = target->getContentSize().height/2;
     int maxY = winSize.height-  target->getContentSize().height/2;
     int rangeY = maxY - minY;
     // srand( TimGetTicks() );
     int actualY = ( rand() % rangeY ) + minY;

    // Create the target slightly off-screen along the right edge,
    // and along a random position along the Y axis as calculated
    target->setPosition( ccp(winSize.width + (target->getContentSize().width/2), actualY) );
    this->addChild(target);

    // Determine speed of the target
    int minDuration = (int)2.0;
    int maxDuration = (int)4.0;
    int rangeDuration = maxDuration - minDuration;
    // srand( TimGetTicks() );
    int actualDuration = ( rand() % rangeDuration )+ minDuration;

    // Create the actions
    CCFiniteTimeAction* actionMove = 
	    CCMoveTo::actionWithDuration( (ccTime)actualDuration, 
        ccp(0 - target->getContentSize().width/2, actualY) );
    CCFiniteTimeAction* actionMoveDone = 
        CCCallFuncN::actionWithTarget( this, 
        callfuncN_selector(HelloWorld::spriteMoveFinished));
    target->runAction( CCSequence::actions(actionMove, 
        actionMoveDone, NULL) );
}

//声明一个方法  移除精灵
we need to declare it in the HelloWorldScene.h and define it as follows:
void HelloWorld::spriteMoveFinished(CCNode* sender){
  CCSprite *sprite = (CCSprite *)sender;
  this->removeChild(sprite, true);
}

TIPs:
1. About rand function. srand and rand are c std function. For each platform, you could get the mili-second system time as sand to get a random number. On WoPhone, the function is TimGetTickes(), and on IPhone, you could get the random number by arc4random() directly
2. The YES and NO in objc are true and false in cpp
3. The callback function is selector:@selector(spriteMoveFinished) in objc, but it is a little complicated to realize in cpp, you could refer to the declarations in cocos2dx\include\selector_protocol.h. There are five different callback types:

schedule_selector
callfunc_selector
callfuncN_selector
callfuncND_selector
menu_selector

add the codes before init() function returns. 在init返回之前调用
// Call game logic about every second
this->schedule( schedule_selector(HelloWorld::gameLogic), 1.0 );  //在init方法中调用游戏逻辑 
void HelloWorld::gameLogic(ccTime dt){  //一秒调用一次
    this->addTarget();  //调用添加精灵方法
}






下一节继续

  
  • 大小: 136.8 KB
  • 大小: 170.5 KB
  • 大小: 136.8 KB
  • 大小: 4.2 KB
  • 大小: 5.1 KB
  • 大小: 142.5 KB
  • 大小: 141.2 KB
分享到:
评论

相关推荐

    cocos2d-x游戏源码

    《cocos2d-x游戏源码解析》 Cocos2d-x是一款强大的开源游戏开发框架,主要用于构建2D游戏、演示程序和其他图形交互应用。它基于C++,同时提供了Lua和JavaScript的绑定,使得开发者可以选择自己熟悉的语言进行游戏...

    cocos2d 切水果游戏

    【cocos2d 切水果游戏】是一款基于cocos2d和box2d游戏引擎开发的手机游戏,模仿了流行的“切西瓜”玩法。在这个游戏中,玩家需要通过滑动屏幕来切割屏幕上飞过的各种水果,尽可能多地得分,同时避免切割到炸弹等负面...

    Cocos2d Android的小游戏打飞机

    以上就是使用Cocos2d Android开发“打飞机”小游戏涉及的一些核心知识点。通过深入理解和实践这些概念,你将能够创建出具有专业品质的2D游戏。当然,实际项目可能还需要根据需求涉及更多细节,如UI设计、网络对战...

    精选_基于Cocos2d-x实现的RunOrDie小游戏_源码打包

    《RunOrDie小游戏基于Cocos2d-x的实现详解》 Cocos2d-x是一款开源的游戏开发框架,它采用C++作为主要编程语言,同时支持Lua和JavaScript等脚本语言,使得开发者能够快速构建高性能的2D游戏。本文将深入探讨如何使用...

    cocos2d躲便便小游戏-初学者

    在本文中,我们将深入探讨如何使用Cocos2d框架创建一个简单的小游戏——"躲便便",这对于初学者来说是一个很好的入门项目。Cocos2d是一个流行的游戏开发框架,适用于多个平台,包括iOS、Android以及桌面系统。它提供...

    cocos2d-x小游戏小狗快跑源码

    《cocos2d-x小游戏小狗快跑源码详解》 cocos2d-x是一个开源的、跨平台的游戏开发框架,广泛应用于2D游戏的开发。它基于C++,支持多种编程语言,包括JavaScript和Lua,使得开发者能够在iOS、Android、Windows等多个...

    cocos2d-x3.9 数独小游戏

    【cocos2d-x3.9 数独小游戏】是一个基于cocos2d-x 3.9版本开发的经典数独游戏源代码,适用于初学者进行学习和实践。cocos2d-x是一个跨平台的2D游戏开发框架,它采用C++语言,支持多种操作系统,如iOS、Android、...

    cocos2d-x小游戏Don'tCross可执行文件

    《Cocos2d-x小游戏Don'tCross可执行文件详解》 Cocos2d-x是一款开源的游戏开发框架,它基于C++,广泛应用于2D游戏、交互式图书、演示和其他图形密集型应用的开发。Don'tCross是利用Cocos2d-x引擎开发的一款小游戏,...

    Cocos2d-x 三消游戏源码

    1. **场景(Scene)与层(Layer)**:Cocos2d-x中的场景是游戏的基本单元,可以包含多个层。层则负责具体的逻辑处理和渲染,如游戏界面、游戏逻辑、用户交互等。 2. **精灵(Sprite)与网格(Grid)**:精灵用于...

    用Cocos2d-x引擎c++语言开发的小游戏 (初学者 , 大学课程设计).zip

    用Cocos2d-x引擎c++语言开发的小游戏 (初学者 , 大学课程设计).zip 用Cocos2d-x引擎c++语言开发的小游戏 (初学者 , 大学课程设计).zip 适合学习/练手、毕业设计、课程设计、期末/期中/大作业、工程实训、相关项目/...

    别踩白块游戏cocos2d-x3.x实现

    在这个项目中,我们将会使用Cocos2d-x 3.x版本来实现这款游戏。Cocos2d-x是一个广泛使用的开源游戏引擎,尤其适合2D游戏开发,它支持多种编程语言,包括C++、Lua和JavaScript。 首先,我们需要了解Cocos2d-x的基本...

    Cocos2d-x游戏引擎实战开发炸弹超人

    《Cocos2d-x游戏引擎实战开发炸弹超人》是一个基于Cocos2d-x框架的2D游戏开发教程,旨在帮助开发者深入理解并熟练运用这一强大的游戏引擎。Cocos2d-x是一个开源、跨平台的2D游戏开发工具,它支持iOS、Android、...

    cocos2d-x 游戏小demo

    【cocos2d-x 游戏小demo】是一款基于cocos2d-x框架开发的简易游戏示例,主要展示了如何运用这个强大的2D游戏引擎来创建一个基础的魔塔类游戏。cocos2d-x是一个跨平台的游戏开发库,支持iOS、Android、Windows等多...

    Cocos2d-X 3D跑酷小游戏

    这个压缩包中的“Cocos2d-X 3D跑酷小游戏”提供了游戏的完整代码示例和游戏运行的视频,对于学习Cocos2d-X以及3D游戏开发的开发者来说,是一个宝贵的资源。 Cocos2d-X基于C++,同时也支持Lua和JavaScript,使其具有...

    cocos2d-x-cocos2d-x-2.2.2.zip

    《cocos2d-x 2.2.2:构建跨平台游戏开发的基石》 cocos2d-x 是一个开源的游戏开发框架,以其强大的功能和跨平台性深受开发者喜爱。这个压缩包“cocos2d-x-cocos2d-x-2.2.2.zip”包含了cocos2d-x 的2.2.2版本,该...

    使用cocos2d-x-2.0-2.0.4开发的简单跨平台益智类魔塔小游戏

    《使用cocos2d-x-2.0-2.0.4开发的简单跨平台益智类魔塔小游戏》 cocos2d-x是一个开源的游戏开发框架,它基于C++,支持多平台,包括iOS、Android、Windows以及Mac OS等。在本项目中,开发者利用cocos2d-x 2.0.4版本...

    Cocos2d-X斗地主游戏完整源码

    1. **Cocos2d-X框架**:Cocos2d-X是跨平台的游戏开发框架,支持iOS、Android、Windows等多操作系统。它基于Cocos2d-x库,提供了一套丰富的2D图形渲染、动画、物理引擎、粒子系统、音频处理和碰撞检测等功能,方便...

    cocos2d-x源码素材

    【cocos2d-x源码素材】是一套用于学习cocos2d-x游戏开发的代码资源,它在Windows平台上使用Visual Studio 2010进行编译并通过了测试。这个资源包涵盖了多个重要的游戏开发技术,包括碰撞检测、瓦片地图(Tile Map)...

    cocos2d-iphone-2.0.tar.gz

    Cocos2d-iPhone是一个广泛使用的2D游戏开发框架,专为iOS设备(如iPhone和iPad)设计。这个开源项目让开发者能够轻松地创建高质量的游戏、应用和交互式内容,而无需深入理解底层图形和物理编程。"cocos2d-iphone-2.0...

    《Cocos2d-Js开发之旅-从HTML5到原生手机游戏》完整源码

    1. **场景(Scene)和节点(Node)管理**:Cocos2d-Js采用场景和节点的层次结构来组织游戏元素。场景是游戏的顶级容器,而节点可以是图片、文本、动画等。通过源码,你可以学习如何创建、切换场景以及如何添加、删除...

Global site tag (gtag.js) - Google Analytics