zoukankan      html  css  js  c++  java
  • cocos2dx SimpleGame制作三部曲 学习笔记

    Ray Wenderlich 写的《How To Make A Simple iPhone Game with Cocos2D 2.X Tutorial》作为cocos2d初学者的入门demo非常合适

    以下是cocos2dx版本的教程,

    如何制作一个简单的游戏(1) Cocos2d-x 2.0.4

    如何制作一个简单的游戏(2) Cocos2d-x 2.0.4

    如何制作一个简单的游戏(3) Cocos2d-x 2.0.4

    感谢作者的分享,文章很详细,以下记录一些自己学习过程中的心得:

    =========================Start:=========================

    CCLayerColor::initWithColor(ccc4(255,255,255,255)); //初始一个带颜色的层; ccc4:创建一个r,g,b,o(opacity:不透明度); 还有ccc3:r,g,b

    CCDirector::shareDirector() //返回一个导演实例;方法 getWinSize获取游戏主题大小

    CCSprite *player = CCSprite::create('path'); //创建一个精灵; 资源直接读取到Resources目录下;

    CCRectMake(0,0,27,40) //返回一个矩形区域;

    sprite->setPosition() 设置精灵的坐标

    this->addChild()  //添加到舞台上,revomeChild()移除

    ccp(int __X__,int __Y__) //返回一个坐标

    rand()%X // 获得0-X的一个随机整数

    CCMoveTo::create(时间,目标地点)  //创建一个直线移动路径

    CCCallFuncN::create(this,callFuncN_selector(类名::函数名)) 创建一个回调函数

    CCCallFunc中的回调函数不带参数, CCCallFuncN中的函数带一个参数 , CCCallFuncND中的函数带两个参数,第二个为任意类型;

    sprite->runAction(CCSequence::create(动作1,动作2,,,NULL)) //让精灵运行一系列的动作

    this->schedule(schedule_selector(类名:函数名),间隔时间) //设置定时器,固定间隔时间执行某个动作,相当于js和as中的setInterval, 如果不设置间隔时间,那么为每帧执行

    virtual void ccTouchesEnded(cocos2d::CCSet *pTouches, cocos2d::CCEvent *pEvent); //再重载函数时候需要使用virtual,参数中需指明cocos2d::类,ccTouchesEnd为触摸事件

    CCTouch *touch = (CCTouch*)pTouches->anyObject();  //获取触控点

    CCPoint location = this->convertTouchToNodeSpace(touch); //获取触控点的坐标

    CCPoint offset = ccpSub(坐标A,坐标B) // 获得两个坐标点的差值offset.x offset.y

    sprite->release(); sprite = NuLL; //清空精灵变量

    sprite->setTag(int X); //设置精灵的标签, getTag() 获取标签

    CCArray::create(); //创建CC数组, addObject 

    CCArray x->addObject(); //为数组添加变量, revomveObject 移除数组变量;

    CCARRAY_FOREACH(CCArray,CCObject) // 迭代循环数组,CCObject需要先定义 CCObject *pobj = NULL;

    CCSprite *projectile = (CCSprite*)pObject; //CCobject类型可进一步定义;

    CCRect::CCRectIntersectRect(sprite1->boudingBox(),sprite2->boundingBox());  //矩形的碰撞检测

    CocosDenshion::SimpleAudioEngine::shareEngine()->playerBackgroundMusic("path") //播放背景音乐, ->playerEffect()播放音效

    CCLabelTTF:create(msg,字体,字号); //创建一个文字标签

    CCDelayTime::create(3) //创建一个延迟3秒时间

    CCDirector::sharedDirector()->replaceScene(gameOverScene); //场景切换;

    Sprite->setRotation(cocosAngle); //设置角度 Degree

    cpp文件中定义函数时,如果没有指明类名,那么将无法使用类的成员变量;

    关于CCObject的retain(),是手动管理内存的方式,通过retain保持住对象的占用,使计数器+1,不会因为remove等操作而找不到变量地址;

    sqrtf() //开方返回float类型

    CCRotateTo::create(时间,目标角度) //旋转对象

    do{}while(0)的用法在程序中大量使用,一个过程代码遇到跳出条件时则重新执行,保证了代码行的同步执行顺序;

    CC_SYNTHESIZE(varType, varName, funName); //用于声明保护变量,然后可以通过getter和setter来操作变量;

    CREATE_FUNC(funcname) //创建一个自己类的create方法;调用的类的init()方法;

    一个头文件中的各个class结束时都要记得;结束符 // class1{}; class2{}; 注:在.cpp文件中不需要

    (CCArray*)array -> objectAtIndex(索引) // 返回该索引的数组元素;

    CCString::createWithFormat(格式化,变量,,) // 创建字符串;

    static LevelManager *sharedInstance(void){  }  //单例模式, LevelManager::sharedInstance()->...

    CCObject->autorelease() //使用new之后,调用autolease()我们就不必在去操作它的内存释放;

    (END)

  • 相关阅读:
    工作之经验之谈
    周记 2015.05.16
    NIO 02 (转)
    NIO 01 (转)
    周记 2015.05.09
    周记 2015.05.04
    JVM 内存知识总结
    Git内部原理(1)
    c/c++[001]:start
    CNN Mini-Fashion数据集以及Pytorch初体验
  • 原文地址:https://www.cnblogs.com/sslin/p/2837741.html
Copyright © 2011-2022 走看看