cocos2d-x 3.0游戏实例学习笔记 《跑酷》 第五步--button控制主角Jump&Crouch
说明:这里是借鉴:晓风残月前辈的博客。他是将泰然网的跑酷教程,用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记
这一步其中,我们给PlayScene中 加入两个button,让主角Jump and Crouch,button功能例如以下:
Jumpbutton。按下主角跳起来
Crouchbutton,按下主角下蹲,一直按着一直蹲,松开之后主角才站起来
这里用button包括头文件"cocos-ext.h"会遇到一点点问题,后面给出具体解决方法:
首先PlayScene.h中要包括头文件:
<span style="font-size:14px;">#include "cocos-ext.h"
USING_NS_CC_EXT;</span>
然后加入函数:
//Jump
void createJumpButton();
void jumpEvent(Ref* pSender,Control::EventType event); //Crouch
void createCrouchButton();
void crouchDown(Ref* pSender,Control::EventType event);
void crouchUp(Ref* pSender,Control::EventType event);
这里先解释一下,Crouch 有两个事件。我们在button中,要加入两个button事件,一个是按下。那么人物蹲下。然后button松开,人物又起来。两个事件。两个回调函数
然后实现:
void PlayScene::createJumpButton(){
auto visibleSize = Director::getInstance()->getVisibleSize();
auto jumpLabel = Label::create("Jump","Arail",30);
auto norBtn = Scale9Sprite::create("norBtn.png");
auto lightBtn = Scale9Sprite::create("lightBtn.png");
auto jumpBtn = ControlButton::create(jumpLabel,norBtn);
jumpBtn->setPosition(visibleSize.width-80,130);
jumpBtn->setBackgroundSpriteForState(lightBtn,Control::State::HIGH_LIGHTED);
jumpBtn->addTargetWithActionForControlEvents(
this,
cccontrol_selector(PlayScene::jumpEvent),
Control::EventType::TOUCH_DOWN);
this->addChild(jumpBtn);
}
void PlayScene::jumpEvent(Ref* pSender,Control::EventType event){
//SimpleAudioEngine::sharedEngine()->playEffect("jump.mp3");
m_runner->Jump();
}
void PlayScene::createCrouchButton(){
auto visibleSize = Director::getInstance()->getVisibleSize();
auto crouchLabel = Label::create("Crouch","Arail",30);
auto norBtn = Scale9Sprite::create("norBtn.png");
auto lightBtn = Scale9Sprite::create("lightBtn.png");
auto crouchBtn = ControlButton::create(crouchLabel,norBtn);
crouchBtn->setPosition(visibleSize.width-100,80);
crouchBtn->setBackgroundSpriteForState(lightBtn,Control::State::HIGH_LIGHTED);
//
crouchBtn->addTargetWithActionForControlEvents(
this,
cccontrol_selector(PlayScene::crouchDown),
Control::EventType::TOUCH_DOWN);
//
crouchBtn->addTargetWithActionForControlEvents(
this,
cccontrol_selector(PlayScene::crouchUp),
Control::EventType::TOUCH_UP_INSIDE);
this->addChild(crouchBtn);
}
void PlayScene::crouchDown(Ref* pSender,Control::EventType event){
//加入推断
if(m_runner->getState() == running){
m_runner->Crouch();
m_runner->setPosition(runner_posX,ground_hight+m_runner->getCrouchSize().height/2);
}
//SimpleAudioEngine::sharedEngine()->playEffect("crouch.mp3");
}
void PlayScene::crouchUp(Ref* pSender,Control::EventType event){
//否则,在跳起来的时候。点击crouch 松开之后,状态就会变成running
if(m_runner->getState() == crouch){
m_runner->stopAllActions();
m_runner->Run();
m_runner->setPosition(runner_posX,ground_hight+m_runner->getRunJumpSize().height/2);
}
}
然后在Runner.cpp中的init 函数中,还要记得
this->scheduleUpdate();,由于我们须要在update中推断起跳到最高点下落
然后在 PlayScene 的init函数也要加入 两个createbutton函数
那么生成,然后这里就会遇到问题:
那么这里我们须要在项目上右键到属性,【配置属性】->【C/C++】->【常规】->【附加包括文件夹】如图:
在最以下加入:$(EngineRoot)
然后相同在【连接器】->【输入】中加入libExtensions.lib 如图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWllZMTczNTMzODMy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
然后生成会说无法打开libExtensions.lib,那么就须要在这里下载libExtension.lib(不用积分)然后把它直接放在 [项目的文件夹下] / proj.win32 / Debug.win32中,然后就能够了。
我想应该有别的方法。假设有知道的麻烦告诉我一下。不胜感激
再次又一次生成,就能够啦
最终能够看到效果:
好啦,后面要開始准备金币和岩石阻碍啦。
。
。
个人愚昧观点。欢迎指正与讨论
cocos2d-x 3.0游戏实例学习笔记 《跑酷》 第五步--button控制主角Jump&Crouch的更多相关文章
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》 完结篇--源代码放送
说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程,用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》第一步--- 开始界面
说明:这里是平局:晓风残月前辈的博客.他是将泰然网的跑酷教程.用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》 第三步---主角开跑&同一时候带着刚体
说明:这里是借鉴:晓风残月前辈的博客.他是将泰然网的跑酷教程.用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》第七步--物理碰撞检測(1)
说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程,用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》第四步--地图循环&主角加入动作
说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程,用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...
- cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第三步---编辑器(2)---更方便很多其它操作更像编辑器
/* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦.他说:随便写,第一别全然照搬代码:第二能够说 ...
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》移植到android手机
说明:这里是借鉴:晓风残月前辈的博客.他是将泰然网的跑酷教程.用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...
- coco2d-x 3.0游戏实例学习笔记 《跑酷》 第二步---游戏界面&全新的3.0物理世界
说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程.用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写.并做相关笔记 ...
- cocos2d-x 3.0游戏实例学习笔记 《跑酷》 第六步--金币&岩石加入而且管理
说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程,用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...
随机推荐
- mac vim编辑器常用操作快捷方式
0 行首$ (shift+6)行尾gg 文首G(shift+g) 文尾A(Shift+a)文尾,并编辑ctrl+f 向上翻页ctrl+b 向下翻页ctrl+u 向上翻半页ctrl+d 向下翻半页数字+ ...
- 08JavaScript数学与日期时间对象
JavaScript数学与日期时间对象 5.1.3数学(Math)对象 <script> //欧拉常量,自然对数的底(约等于2.718); document.write(Math.E+&q ...
- Parker Gear Pump - Gear Pump Seal Is More O-Ring: Role
Parker Gear Pump introduction Gear pump lip seal is mainly used in reciprocating dynamic seals. C ...
- mybatis传多个参数(不使用@param注解情况下),3.4.2版本之后出现#{0}-#{n}参数绑定异常
解决方案: 在mybatis配置文件中声明setting属性的useActualParamName 参数值为false ** 这种方法解决mybatis3.4.2之后的版本产生该问题的解决方法**
- SVN CommandLine
要是SVN命令行用不了的话: 1.SVN装了没? 2.SVN安装时,选项“command line client tools”选了没. 检出: svn checkout [-depth ARG] [- ...
- js 技巧 (八)JS代码判断集锦(之二)
JS代码判断集锦(之二) <INPUT TYPE="button" value="登录" tabindex="4"> < ...
- 在 Sublime Text 直接运行 Javascript 调试控制台
转载自:http://www.jianshu.com/p/43b0726792f7 sublime text javascript Sublime Text是深受喜欢的多语言编辑器,很多开发人员都选择 ...
- NYOJ-1188并集与交集,STL的灵活运用!
并集与交集 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 给你两个字符串的集合A和B,让你求这两个字符串集合的并集和交集,按字典序排序后输出. 然后又给出给出两个字符串 ...
- 開啟活動監視器 (SQL Server Management Studio)
本主題描述如何開啟 [活動監視器] 來取得有關 SQL Server 處理序以及這些處理序如何影響目前 SQL Server 執行個體的資訊. 此外,本主題也描述如何設定 [活動監視器] 的重新整理間 ...
- DD & E-app
DD & E-app 企业内部开发的E应用 前端 demo https://github.com/open-dingtalk docs https://open-doc.dingtalk.co ...