Cocos2d-3.x Action介绍
我们在做游戏的时候,或是我们在玩游戏的时候有以下几点我认为是非常重要的
Test2
对于Demo的Action总结
学习方法之我的建议
1.游戏效果
2.游戏的画风
3.游戏耐玩性
其中游戏的效果有一个很重要的要素,这里就包含 游戏中人物的动作(Action)。有时候我们说这个游戏这个技能真帅啊,这指的有两点,技能的效果帅和动作帅。
下面我领大家来看看官方的Demo
一、下载解压官方的框架
之前写过的博客已经介绍了, 传送门 http://blog.csdn.net/hiwoshixiaoyu/article/details/51472707
二、我们运行一下官方的例子
我们最好卸载掉一些别的工程,加快我们的编译速度,C++编译速度很慢的
三、打开我们的官方例子
代码如下,已经加上了注释
//------------------------------------------------------------------
//
// Test1
//
//------------------------------------------------------------------
void CrashTest::onEnter()
{
ActionManagerTest::onEnter();
//创建精灵 s_pathGrossini是什么呢?static const char s_pathGrossini= "Images/grossini.png";
auto child = Sprite::create(s_pathGrossini);
//设置到屏幕中心点
child->setPosition( VisibleRect::center() );
//添加的逻辑必须
/**
* 添加一个child(带有z order和tag)到一个容器里
*
*如果这个child是被添加到一个运行中的节点,然后onEnter和onEnterTransitionDidFinish将会被调用
* @param child 一个child 节点.
* @param localZOrder Z order 是为了描画的顺序的
* @param tag 一个整形很容易确定节点.
*/
addChild(child, 1, kTagGrossini);
//Sum of all action's duration is 1.5 second.
//旋转 90度 ,持续1.5秒
child->runAction(RotateBy::create(1.5f, 90));
//DelayTime这个参数是推迟这个动作 1.4秒
//FadeOut淡出 1.1秒
child->runAction(Sequence::create(
DelayTime::create(1.4f),
FadeOut::create(1.1f),
nullptr)
);
//1.5秒后将会移除这个动作
child->runAction(Sequence::create(
DelayTime::create(1.4f),
CallFunc::create(CC_CALLBACK_0(CrashTest::removeThis, this)),
nullptr)
);
}
void CrashTest::removeThis()
{
//通过Tag号获取了 节点
auto child = getChildByTag(kTagGrossini);
//将节点删除
child->removeChild(child, true);
//运行下一个例子
getTestSuite()->enterNextTest();
}
std::string CrashTest::subtitle() const
{
return "Test 1. Should not crash";
}
//------------------------------------------------------------------
//
// Test2
//
//------------------------------------------------------------------
void LogicTest::onEnter()
{
ActionManagerTest::onEnter();
//创建精灵
auto grossini = Sprite::create(s_pathGrossini);
//将精灵加到层上
addChild(grossini, 0, 2);
//添加到中心点
grossini->setPosition(VisibleRect::center());
//移动到 (150,0)点 ,时间为5秒
//CC_CALLBACK_1(LogicTest::bugMe,this) 五秒之后调用的函数
grossini->runAction( Sequence::create(
MoveBy::create(5, Vec2(150,0)),
CallFuncN::create(CC_CALLBACK_1(LogicTest::bugMe,this)),
nullptr)
);
}
void LogicTest::bugMe(Node* node)
{
node->stopAllActions(); //After this stop next action not working, if remove this stop everything is working
node->runAction(ScaleTo::create(2, 2));//放大倍x和y轴,也就是图片放大2倍
}
四、我领着大家看看效果吧,我特意放慢了速度
Test1
Test2
五、总结
对于Demo的Action总结
1.创建精灵
2.加载精灵到层上
3.创建动作
4. 精灵调用runAction 传递一个动作的参数
学习方法之我的建议
1. 我们在学习cocos2d的时候,遇到不会的方法可以去看看 框架中的注释
2.查看官方Api 传送门 http://api.cocos.com/
3.搜索一些博客,然后 看看继承图