将今天做了一个关于跑酷的游戏基于了解的东西记录下来
其实就是将The_b-dn大神的代码手敲了一遍,https://blog.csdn.net/ZYY173533832
简单总结一下,
创建的的c++文件,场景的文件,建议继承 cocos2d::Layer,然后在上面创建Scene
对外提供static cocos2d::Scene* scene();这个方法给别人调用。
如果是创建精灵,继承cocos2d::Node
需要物理世界的话,在创建场景时,createScene(),同时创建。
图片大小根据初始化的时候设置的大小来定
创建精灵
由于精灵是直接由图片来创建,所以所以他的物理大小和图片有关。
刚创建的时候,精灵的设置坐标的原点(锚点)是在精灵的中心。
操作的方法,setPosition设置的坐标,addChild添加到视图。
点击事件
还没有心得
动画
1.固定重复动画,例如主角跑步动作,
SpriteFrame* frame = NULL;
//数组 3.0中改用vector 而不是用Array
Vector<SpriteFrame*>frameVector;
/* 1.----------------加载跑动的Animation-----------------*/
for(int i = 0; i <= 7; i ++) {
//从缓存池中加载精灵到Vector
frame = frameCache->spriteFrameByName(String::createWithFormat("runner%d.png",i)->getCString());
frameVector.pushBack(frame);
}
//用vector里面的SpriteFrame列表创建Animation 以及设置一些参数
auto run_animation = Animation::createWithSpriteFrames(frameVector,0.1f,-1);
//将跑动的 Animation 取名为 running
AnimationCache::getInstance()->addAnimation(run_animation,"running");
//预加载,之后如果用到直接从缓存中调出来。
Cocos2d-x不要随便在onEnter里面addChild,应该说最好不要用onEnter
https://www.cnblogs.com/ybgame/p/3487615.html
在测试中,想在onEnter中addChild,加载之后不会显示,只有在切换场景的时候才会出现。目前这个现象还在研究。不过3.0后好像也不怎么推荐使用onEnter。所以还是少用吧。