Cocos2d-3.x 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.搜索一些博客,然后 看看继承图
文章来源: yujiang.blog.csdn.net,作者:鱼酱2333,版权归原作者所有,如需转载,请联系作者。
原文链接:yujiang.blog.csdn.net/article/details/51494670
- 点赞
- 收藏
- 关注作者
评论(0)