各种小控件加载进去了,那么问题来了,这些东西如何接受事件呢?

good job,let us find the answer

首先我们去看文档,官方尼玛有好多文档,而且大,全,详细,感觉还是不错的

http://cn.cocos2d-x.org/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v3/event-dispatcher/zh.md

喏,这个是事件的连接

这里我不想copy人家代码,什么的,没意思,我只说一下我迁移时候遇到的问题。

笔者c++都丢给体育老师了,一些基本东西都忘记了。

#include "cocos2d.h"
#include "ui/UIWidget.h"
#include "base/CCEventKeyboard.h"
using namespace cocos2d;
class FishTestScence :public cocos2d::Scene
{
public:
virtual bool init(); static cocos2d::Scene* scene(); void menuCloseCallback(Ref* sender); void onButtonClicked(Ref *pSender,ui::Widget::TouchEventType type);
void onKeyPressed(EventKeyboard::KeyCode keyCode, Event* event);
void onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event);
CREATE_FUNC(FishTestScence);
};
#endif

我是拿键盘事件作为测试的,首先你要在头文件声明这两个函数,这个是官方提供的,应该不会有多大出入

    void onKeyPressed(EventKeyboard::KeyCode keyCode, Event* event);
void onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event);
那么问题来了,我引用了
#include "base/CCEventKeyboard.h"
这个头文件
然后我编译时候宁死过不了,我问了一下同事,c++不像c#哪样,你需要完整的路径,也就是说
cocos2d::ventKeyboard::KeyCode
或者加上
using namespace cocos2d;
这样才不报错 在cpp文件内:
bool FishTestScence::init()
{
if (!Scene::init())
{
return false;
} auto visibleSize = Director::getInstance()->getVisibleSize();
auto origin = Director::getInstance()->getVisibleOrigin(); auto button = ui::Button::create("dangban.png", "ball.png"); button->setPosition(Vec2(visibleSize / ) + origin);
button->setPressedActionEnabled(true);
button->setTitleText("lou zhu sb"); button->addTouchEventListener(CC_CALLBACK_2(FishTestScence::onButtonClicked, this));
this->addChild(button); auto listener = EventListenerKeyboard::create();
listener->onKeyPressed = CC_CALLBACK_2(FishTestScence::onKeyPressed, this);
listener->onKeyReleased = CC_CALLBACK_2(FishTestScence::onKeyReleased, this); _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this); return true;
} // 键位响应函数原型
void FishTestScence::onKeyPressed(EventKeyboard::KeyCode keyCode, Event* event)
{ } void FishTestScence::onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event)
{ } void FishTestScence::onButtonClicked(Ref *pSender, cocos2d::ui::Widget::TouchEventType type)
{ }

加上断点,就能够接收到事件了。

感觉其实不难,但是有时候有些坑如果卡着就悲剧了

共勉之。

cocos2d-x step by step(2) 鼠标事件,键盘事件,等等事件的更多相关文章

  1. OpenGL(十六) 鼠标、键盘交互响应事件

    OpenGL中通过鼠标和键盘跟程序交互的实现需要实现注册鼠标和键盘响应事件,在一定条件下,该事件被触发,事件里的程序被执行,达到交互的目的. 通过glutMouseFunc(&OnMouse) ...

  2. js鼠标,键盘,坐标轴事件

    鼠标按下事件,左键是0,滑轮是1,右键2 document.getElementById("box").onmousedown =function(e) { if (e.butto ...

  3. selenium基础(鼠标和键盘事件)

    selenium鼠标和键盘的操作事件 webdriver常见的几种操作方法 clear():清楚文本文字 send_keys(values):模拟按键输入,values是输入的内容 click():单 ...

  4. WPF Step By Step 自定义模板

    WPF Step By Step 自定义模板 回顾 上一篇,我们简单介绍了几个基本的控件,本节我们将讲解每个控件的样式的自定义和数据模板的自定义,我们会结合项目中的具体的要求和场景来分析,给出我们实现 ...

  5. 第二章 ActionScript 3.0学习之画星星(鼠标及键盘事件)

    今天觉得学到的比较有趣,所以记录之......~~~ 下面这段就是画出星星的代码:StarShape.as package { import flash.display.Shape; import f ...

  6. WPF Step By Step 系列-Prism框架在项目中使用

    WPF Step By Step 系列-Prism框架在项目中使用 回顾 上一篇,我们介绍了关于控件模板的用法,本节我们将继续说明WPF更加实用的内容,在大型的项目中如何使用Prism框架,并给予Pr ...

  7. WPF Step By Step 系列 - 开篇 ·

    WPF Step By Step 系列 - 开篇 公司最近要去我去整理出一个完整的WPF培训的教程,我刚好将自己学习WPF的过程和经验总结整理成笔记的方式来讲述,这里就不按照书上面的东西来说了,书本上 ...

  8. enode框架step by step之消息队列的设计思路

    enode框架step by step之消息队列的设计思路 enode框架系列step by step文章系列索引: enode框架step by step之开篇 enode框架step by ste ...

  9. enode框架step by step之事件驱动架构(EDA)思想的在框架中如何体现

    enode框架step by step之事件驱动架构(EDA)思想的在框架中如何体现 上一篇文章,我给大家分享了我的一个基于DDD以及EDA架构的框架enode,但是只是介绍了一个大概.接下来我准备用 ...

  10. enode框架step by step之saga的思想与实现

    enode框架step by step之saga的思想与实现 enode框架系列step by step文章系列索引: 分享一个基于DDD以及事件驱动架构(EDA)的应用开发框架enode enode ...

随机推荐

  1. 设置ubuntu12.04的dasher-自动隐藏,左上角

    点击右上角的齿轮,--> “system setting”--“Appearance” 在“Look”标签中: Theme:Ambiance Launch icon size :32 选择桌面背 ...

  2. jmeter进行dubbo接口测试

    最近工作中接到一个需求,需要对一个MQ消息队列进行性能测试,测试其消费能力,开发提供了一个dubbo服务来供我调用发送消息. 这篇博客,介绍下如何利用jmeter来测试dubbo接口,并进行性能测试. ...

  3. 大数据学习——kettle的简单使用

    1 生成随机数保存到本地文件 新建转换--输入--生成随机数--输出--文本文件输出--保存到本地文件 2 在线预览生成结果 3 字段选择 4 增加常量 5 生成多条数据 右键生成随机数--改变开始复 ...

  4. Numpy ndarray 的高级索引存在 "bug" ?

    Numpy ndarray 高级索引 "bug" ? 话说一天,搞事情,代码如下 import numpy as np tmp = [1, 2, 3, 4] * 2 a, b = ...

  5. Convolutional Networks for Image Semantic Segmentation

    本系列文章由 @yhl_leo 出品,转载请注明出处. 文章链接: http://blog.csdn.net/yhl_leo/article/details/52857657 把前段时间自己整理的一个 ...

  6. jquery trigger

    <button id="bt1" class="layui-btn layui-btn-normal"> 点击提交 </button> ...

  7. Dango notes II: class-based views

    A view is a callable which takes a request and returns a response. A view can be function (function- ...

  8. FZU Problem 2200 cleaning dp

    Problem Description N个人围成一圈在讨论大扫除的事情,需要选出K个人.但是每个人与他距离为2的人存在矛盾,所以这K个人中任意两个人的距离不能为2,他们想知道共有多少种方法. Inp ...

  9. docker的通俗理解

    自己买了个服务器,前不久搭建好的一个网站,想要再搞一个站点,无奈只能修改端口后,再部署另外一个站点.繁琐的配置运行环境,迁移网站,是否让你感觉到很繁琐?服务器不想用了,想搬迁到另外一台服务器去部署,先 ...

  10. bzoj 3208 花神的秒题计划I

    bzoj 3208 花神的秒题计划I Description 背景[backboard]: Memphis等一群蒟蒻出题中,花神凑过来秒题-- 描述[discribe]: 花花山峰峦起伏,峰顶常年被雪 ...