Cocos2d-x虚拟摇杆控制精灵上下左右运动----之游戏开发《赵云要(5)
来源:未知 责任编辑:责任编辑 发表时间:2015-09-09 15:29 点击:次
在HelloWorldScene.h的init()函数添加:
//添加赵云精灵 hero=Hero::create(); hero->InitHeroSprite("zhoayun.png"); hero->setPosition(ccp(200,200)); this->addChild(hero,1);
效果如下:
hero=Hero::create(); hero->InitHeroSprite("zhoayun.png"); hero->setPosition(ccp(200,200)); this->addChild(hero,1);添加一句
hero->SetAnimation("run_animation.plist","run_animation.png",8,false);//8表示plist中的图片数目,false表示脸朝右来看看效果,这时精灵会一直不停的运动
如果我们要改变精灵的脸朝向呢?简单,false改成true
hero->SetAnimation("run_animation.plist","run_animation.png",8,true);//8表示plist中的图片数目,false表示脸朝右
效果:
好了,验证正确后,我们还不是把上面那一句注释掉,因为精灵应该是我们点了摇杆让他动它才动的。
其实要控制人物的运动很简单,无非是在播房动画的同时,要移动精灵的位置,当然,这里我们也要判断精灵的脸朝向,上面的摇杆类HRocker中
//判断控制杆方向,用来判断精灵上、下、左、右运动 int rocketDirection; //当前人物行走方向,用来判断精灵的朝向,精灵脸朝右还是朝左 bool rocketRun;
我们只要将这两个参数传给赵去的英雄类Hero中的
//设置动画,num为图片数目,run_directon为精灵脸朝向,false朝右
void SetAnimation(const char *name_plist,const char *name_png,const unsigned int num,bool run_directon);
private: HRocker* rocker;//摇杆 Hero* hero;///精灵
将rocker的值传给hero不就可以控制了么?想着要能每帧都能更新,所以在HelloWorldScene.h中加入事件
virtual void update(float delta);
一定要注意在HelloWorldScene.cpp的init()函数下面添加
//启动updata事件 this->scheduleUpdate();然后就是事件了
void HelloWorld::update(float delta) { //判断是否按下摇杆及其类型 switch(rocker->rocketDirection) { case 1: hero->SetAnimation("run_animation.plist","run_animation.png","run_",8,rocker->rocketRun);//"run_"为run_animation.png集合图片中每张图片的公共名称部分 hero->setPosition(ccp(hero->getPosition().x+1,hero->getPosition().y)); //向右走 break; case 2: hero->SetAnimation("run_animation.plist","run_animation.png","run_",8,rocker->rocketRun);//"run_"为run_animation.png集合图片中每张图片的公共名称部分 hero->setPosition(ccp(hero->getPosition().x, hero->getPosition().y+1)); //向上走 break; case 3: hero->SetAnimation("run_animation.plist","run_animation.png","run_",8,rocker->rocketRun);//"run_"为run_animation.png集合图片中每张图片的公共名称部分 hero->setPosition(ccp(hero->getPosition().x-1,hero->getPosition().y)); //向左走 break; case 4: hero->SetAnimation("run_animation.plist","run_animation.png","run_",8,rocker->rocketRun);//"run_"为run_animation.png集合图片中每张图片的公共名称部分 hero->setPosition(ccp(hero->getPosition().x,hero->getPosition().y-1)); //向下走 break; default: hero->StopAnimation();//停止所有动画和运动 break; } }
相关新闻>>
- Cocos2d-x 3.2 大富翁游戏项目开发-第七部分 获取角色路径_2
- Cocos2d-x 自定义按钮类控制精灵攻击----之游戏开发《赵云要格斗
- Cocos2d-x 3.2 大富翁游戏项目开发-第七部分 获取角色路径_3
- Cocos2d-x 3.2 大富翁游戏项目开发-第八部分 角色按路径行走
- 结合cocos2d-x开发配置sublime text
- cocos2d-x开发: 如何从项目中分离出接口范例
- cocos2d-x在iOS/Android双平台上嵌入WebView
- Cocos2d-x 3.2 大富翁游戏项目开发-第十部分实现人物轮流行走
- cocos2d-x开发: 一切应该从配置文件读取开始
- 使用python创建cocos2d-x项目
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>