说明:这里是借鉴:晓风残月前辈的博客。他是将泰然网的跑酷教程,用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&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. SQL Server错误: 0 解决方案

    1.已设置两种登录模式. 2.SQL Server配置管理器已配置好. 按Windows徽标键+R组合键,然后输入cmd. 再然后输入netsh winsock reset.接下来重启电脑,应该就可以 ...

  2. Spring Data Redis整体介绍 (一)

    为什么使用Spring Data Redis 首先Spring Data Redis 是Spring 框架提供的用于操作Redis的客户端. Spring框架是一个全栈Java程序框架,通过DI.AO ...

  3. 获取本地验证码cookie

    window.document.onkeydown = function (evt) { evt = (evt) ? evt : window.event; if (evt.keyCode) { if ...

  4. live555简介

    live555 编辑   目录 1live555简介 2Live555 Streaming Media整体框架 3openRTSP客户端流程     1live555简介编辑 Live555 是一个为 ...

  5. 模板BSGS(SDOI2011计算器) 模板EXBSGS

    BSGS和EXBSGS是OI中用于解决A^xΞB(mod C)的常用算法. 1.BSGS BSGS用于A,C互质的情况. 令m=sqrt(C),此时x可表示为i*m+j. 式中i和j都<=sqr ...

  6. Java ExecutorService四种线程池的例子与说明(转发)

    1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { ...

  7. python pip 安装一些包找不到的问题 Could not find a version that satisfies....

    有时我们使用下载python 自带的pip 安装一些工具包时,会报如下错误 找不到满意的版本,这时就是我们的pip可能需要升级了,所以使用 python -m pip install --upgrad ...

  8. Linux Shell常用技巧(八) 系统运行状况

    十八.  和系统运行状况相关的Shell命令:    1.  Linux的实时监测命令(watch):    watch 是一个非常实用的命令,可以帮你实时监测一个命令的运行结果,省得一遍又一遍的手动 ...

  9. 如何写Java文档注释(Java Doc Comments)

    本文翻译自How to Write Doc Comments for the Javadoc Tool,但是精简了一些私以为不重要的东西 本文不讨论如何使用javadoc工具自动生成文档的方法,而是主 ...

  10. 莫比乌斯反演套路一--令t=pd--BZOJ2820: YY的GCD

    t<=10000组询问:有多少x,y,满足$x\epsilon [1,n],y\epsilon [1,m],(x,y)为质数$.n,m<=1e7. 首先式子列出来,f(i)--1<= ...