说明:这里是借鉴:晓风残月前辈的博客。他是将泰然网的跑酷教程,用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中要包括头文件:

  1. <span style="font-size:14px;">#include "cocos-ext.h"
  2. USING_NS_CC_EXT;</span>

然后加入函数:

  1. //Jump
  2. void createJumpButton();
  3. void jumpEvent(Ref* pSender,Control::EventType event);
  4.  
  5. //Crouch
  6. void createCrouchButton();
  7. void crouchDown(Ref* pSender,Control::EventType event);
  8. void crouchUp(Ref* pSender,Control::EventType event);

这里先解释一下,Crouch 有两个事件。我们在button中,要加入两个button事件,一个是按下。那么人物蹲下。然后button松开,人物又起来。两个事件。两个回调函数

然后实现:

  1. void PlayScene::createJumpButton(){
  2. auto visibleSize = Director::getInstance()->getVisibleSize();
  3.  
  4. auto jumpLabel = Label::create("Jump","Arail",30);
  5. auto norBtn = Scale9Sprite::create("norBtn.png");
  6. auto lightBtn = Scale9Sprite::create("lightBtn.png");
  7.  
  8. auto jumpBtn = ControlButton::create(jumpLabel,norBtn);
  9. jumpBtn->setPosition(visibleSize.width-80,130);
  10. jumpBtn->setBackgroundSpriteForState(lightBtn,Control::State::HIGH_LIGHTED);
  11.  
  12. jumpBtn->addTargetWithActionForControlEvents(
  13. this,
  14. cccontrol_selector(PlayScene::jumpEvent),
  15. Control::EventType::TOUCH_DOWN);
  16.  
  17. this->addChild(jumpBtn);
  18. }
  19. void PlayScene::jumpEvent(Ref* pSender,Control::EventType event){
  20. //SimpleAudioEngine::sharedEngine()->playEffect("jump.mp3");
  21. m_runner->Jump();
  22. }
  23.  
  24. void PlayScene::createCrouchButton(){
  25. auto visibleSize = Director::getInstance()->getVisibleSize();
  26.  
  27. auto crouchLabel = Label::create("Crouch","Arail",30);
  28. auto norBtn = Scale9Sprite::create("norBtn.png");
  29. auto lightBtn = Scale9Sprite::create("lightBtn.png");
  30.  
  31. auto crouchBtn = ControlButton::create(crouchLabel,norBtn);
  32. crouchBtn->setPosition(visibleSize.width-100,80);
  33. crouchBtn->setBackgroundSpriteForState(lightBtn,Control::State::HIGH_LIGHTED);
  34.  
  35. //
  36. crouchBtn->addTargetWithActionForControlEvents(
  37. this,
  38. cccontrol_selector(PlayScene::crouchDown),
  39. Control::EventType::TOUCH_DOWN);
  40.  
  41. //
  42. crouchBtn->addTargetWithActionForControlEvents(
  43. this,
  44. cccontrol_selector(PlayScene::crouchUp),
  45. Control::EventType::TOUCH_UP_INSIDE);
  46.  
  47. this->addChild(crouchBtn);
  48. }
  49. void PlayScene::crouchDown(Ref* pSender,Control::EventType event){
  50. //加入推断
  51. if(m_runner->getState() == running){
  52. m_runner->Crouch();
  53. m_runner->setPosition(runner_posX,ground_hight+m_runner->getCrouchSize().height/2);
  54. }
  55. //SimpleAudioEngine::sharedEngine()->playEffect("crouch.mp3");
  56. }
  57. void PlayScene::crouchUp(Ref* pSender,Control::EventType event){
  58. //否则,在跳起来的时候。点击crouch 松开之后,状态就会变成running
  59. if(m_runner->getState() == crouch){
  60. m_runner->stopAllActions();
  61. m_runner->Run();
  62. m_runner->setPosition(runner_posX,ground_hight+m_runner->getRunJumpSize().height/2);
  63. }
  64. }

然后在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&amp;Crouch的更多相关文章

  1. cocos2d-x 3.0游戏实例学习笔记 《跑酷》 完结篇--源代码放送

    说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程,用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...

  2. cocos2d-x 3.0游戏实例学习笔记 《跑酷》第一步--- 开始界面

    说明:这里是平局:晓风残月前辈的博客.他是将泰然网的跑酷教程.用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...

  3. cocos2d-x 3.0游戏实例学习笔记 《跑酷》 第三步---主角开跑&amp;同一时候带着刚体

    说明:这里是借鉴:晓风残月前辈的博客.他是将泰然网的跑酷教程.用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...

  4. cocos2d-x 3.0游戏实例学习笔记 《跑酷》第七步--物理碰撞检測(1)

    说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程,用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...

  5. cocos2d-x 3.0游戏实例学习笔记 《跑酷》第四步--地图循环&amp;主角加入动作

    说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程,用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...

  6. cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第三步---编辑器(2)---更方便很多其它操作更像编辑器

    /* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦.他说:随便写,第一别全然照搬代码:第二能够说 ...

  7. cocos2d-x 3.0游戏实例学习笔记 《跑酷》移植到android手机

    说明:这里是借鉴:晓风残月前辈的博客.他是将泰然网的跑酷教程.用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...

  8. coco2d-x 3.0游戏实例学习笔记 《跑酷》 第二步---游戏界面&amp;全新的3.0物理世界

    说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程.用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写.并做相关笔记 ...

  9. cocos2d-x 3.0游戏实例学习笔记 《跑酷》 第六步--金币&amp;岩石加入而且管理

    说明:这里是借鉴:晓风残月前辈的博客,他是将泰然网的跑酷教程,用cocos2d-x 2.X 版本号重写的,眼下我正在学习cocos2d-X3.0 于是就用cocos2d-X 3.0重写,并做相关笔记 ...

随机推荐

  1. C#面试问题及答案

    1.遇到高并发的问题如何解决? 优化SQL语句 多线程 分布式服务器 集群 拆表2.Dictionary和ConurrentDictionary的区别? 后者是线程安全的 前者适用于单线程3.Dict ...

  2. Java中创建对象的内存图

    所有人都知道面向对象思想,Java中的对象的创建在内存中是如何创建的,传智播客的视频看了一遍,把一些讲解的比较清晰的内容记录下来,方便记忆的更加深刻,Java中创建对象的过程,首先要理解JVM中栈.堆 ...

  3. [Algorithm] 1. A+B Problem

    Description Write a function that add two numbers A and B. Clarification Are a and b both 32-bit int ...

  4. 【spring】jar包详解与模块依赖关系

    以spring3.X为例 jar包详解 1. spring-core.jar:包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心: 2. spri ...

  5. 大前端之HTML5\CSS3

  6. Python的DEBUG LOG

    一直在嵌入式行业,熟悉嵌入式的朋友都很了解嵌入式设备上DEBUG的麻烦,特别是一些缺乏断电工具和没有UI界面的设备.久而久之,开发一个新东西,首先就是要先搞定DEBUG手段.最近写了几个测试的pyth ...

  7. LeetCode 121. Best Time to Buy and Sell Stock (stock problem)

    Say you have an array for which the ith element is the price of a given stock on day i. If you were ...

  8. source insight中的快捷键总结

    1.快捷键 1,Shift+F8高亮显示指定字符. 2,Ctrl+F找出来的结果用F4,F3前进后退查找. 3,Alt+,后退alt+.前进查找关键字. 4,Alt+G或者F5跳转到某个固定的行号. ...

  9. B. Mr. Kitayuta's Colorful Graph,二维并查集,一个简单变形就可以水过了~~

    B. Mr. Kitayuta's Colorful Graph ->  Link  <- 题目链接在上面,题目比较长,就不贴出来了,不过这是道很好的题,很多方法都可以做,真心邀请去A了这 ...

  10. [luoguP1981] 表达式求值(U•ェ•*U)

    传送门 弄两个栈,一个存数,一个存运算符,然后乱搞. 代码 #include <cstdio> #include <cstring> #include <iostream ...