自建场景类

  • 自建场景类BaseScene继承与Scene类,在init函数中添加了默认的,键盘与鼠标事件的响应,添加了一个用于读取XML文件的字典,添加了一个结束场景的方法。
  • 类的声明代码如下:
#ifndef __BASESCENE_SCENE_H__
#define __BASESCENE_SCENE_H__ #include "cocos2d.h"
#include "mine.h"
class BaseScene : public cocos2d::Scene
{
public:
virtual bool init() override; static cocos2d::Scene* scene(); CREATE_FUNC(BaseScene); virtual void menuCloseCallback(cocos2d::Ref* sender);//关闭场景 //检测鼠标键盘某个按键是否按下
bool isMousePressed(cocos2d::EventMouse::MouseButton mouseCode);
bool isKeyPressed(cocos2d::EventKeyboard::KeyCode keyCode);
//键盘按下或弹起事件响应
virtual void onKeyReleased(EventKeyboard::KeyCode keyCode, Event* event);
virtual void onKeyPressed(EventKeyboard::KeyCode keyCode, Event* event);
//鼠标事件响应
virtual void onMouseDown(cocos2d::Event *event);
virtual void onMouseUp(cocos2d::Event *event);
virtual void onMouseMove(cocos2d::Event *event);
virtual void onMouseScroll(cocos2d::Event *event); protected:
cocos2d::CCDictionary *strings; //加载xml文件用 std::map<cocos2d::EventKeyboard::KeyCode, bool> keys;//保存哪个键盘按键按下
std::map<cocos2d::EventMouse::MouseButton, bool> mouse;//保存哪个鼠标按键按下 cocos2d::Vec2 mousePosition;//保存鼠标位置
int ScrollSpeed;//保存鼠标滚动速度
}; #endif // __BaseScene_SCENE_H__

疑问与学习

  • 在打这段代码时我发现有一个宏很奇特:CC_CALLBACK_1,点开一看他的展开是这样的#define CC_CALLBACK_1(__selector__,__target__, ...) std::bind(&__selector__,__target__, std::placeholders::_1, ##__VA_ARGS__),问题来了,这个std::bind是什么?百度了一下,说:bind()函数是用来绑定函数调用的某些参数的。???那么,什么是绑定函数?
  • bind()是和function()一起用的,不过仔细研究了一下实在看不出这个和普通函数有什么区别,看来,还需要继续理解,学习,有没有人来指点我一二,有什么特别的用法或者好处。

【笔记】Cocos2dx学习笔记的更多相关文章

  1. cocos2d-x学习笔记(18)--游戏打包(windows平台)

    cocos2d-x学习笔记(18)--游戏打包(windows平台)           之前做好的游戏,都是在vs2008下编译执行的.假设说想把游戏公布到网上或者和其它人一起分享游戏,那就得对游戏 ...

  2. Cocos2d-x学习笔记(十四)CCAutoreleasePool具体解释

    原创文章,转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38964637 前言 之前学了那么多的内容.差点儿全部的控件都要涉及内存 ...

  3. ‎Cocos2d-x 学习笔记(3.1) Scene 场景与场景切换

    1. Scene 简介 游戏中我们看到/看不到的所有元素都是展示在场景之Scene上. 我们可以把场景比作放在地上的没盖纸箱,层Layer是纸箱里堆放的玻璃,Sprite等元素画在玻璃Layer上,这 ...

  4. ‎Cocos2d-x 学习笔记(19) Control Invocation

    [Cocos2d-x 学习笔记 目录链接] 1. 简介 control为其子类提供了touch回调函数,当子类触发EventType相关事件时,会调用相关的回调函数. control对象接收到的事件类 ...

  5. ‎Cocos2d-x 学习笔记(20) ControlButton

    [Cocos2d-x 学习笔记 目录链接] 1. 简介 ControlButton实现了按钮功能,根据触摸的位置和移动的过程可识别9中EventType类型,执行对应的回调函数. 直接继承了Contr ...

  6. ‎Cocos2d-x 学习笔记(22) TableView

    [Cocos2d-x 学习笔记 ]目录 1. 简介 TableView直接继承了ScrollView和ScrollViewDelegate.说明TableView能实现ScrollView拖动cont ...

  7. ‎Cocos2d-x 学习笔记(25) 渲染 绘制 Render

    [Cocos2d-x]学习笔记目录 本文链接:https://www.cnblogs.com/deepcho/p/cocos2dx-render.html 1. 从程序入口到渲染方法 一个Cocos2 ...

  8. Cocos2d-x学习笔记(三)CCNode分析

    原创文章.转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38706483 通过前两份学习笔记,我们不难发现CCScene.CCLa ...

  9. Cocos2d-x学习笔记(一)HelloWorld

    原创文章,转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38656755 前言 正式来公司实习已有一月,前一月主要是看了<C ...

  10. ‎Cocos2d-x 学习笔记(26) 从源码学习 DrawCall 的降低方法

    [Cocos2d-x]学习笔记目录 本文链接:https://www.cnblogs.com/deepcho/cocos2dx-drawcall-glcalls 1. 屏幕左下角 我们通常在Cocos ...

随机推荐

  1. 关于 Java 中关于 数组的声明

    第一种方式:直接声明(只能在定义处使用!) int[] arr = {2, 3, 4, 5} 第二种方式:显式声明(用于各种情况) 比如方法返回值: public static int[] getAr ...

  2. 编写函数求整形数组a中存储的m个不重复的整数的第k大的整数(其中m>=1,1<=k<=m)很简单的一个思路是酱紫的:管他辣么多干啥,上来一把排序然后直接得答案

    /** * @author:(LiberHome) * @date:Created in 2019/2/28 20:38 * @description: * @version:$ *//*编写函数求整 ...

  3. python全栈开发 * 12 知识点汇总 * 180530

    12 知识点总结 装饰器进阶 ⼀. 通⽤装饰器的回顾1.开闭原则: 对增加功能开放. 对修改代码封闭2.装饰器的作⽤: 在不改变原有代码的基础上给⼀个函数增加功能3.通⽤装饰器的写法:def wrap ...

  4. 微信JS-SDK说明文档【申明:来源于网络】

    微信JS-SDK说明文档[申明:来源于网络] 地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html

  5. AngularJS资源合集[备忘]【申明:来源于网络】

    AngularJS资源合集[备忘][申明:来源于网络] 地址:http://blog.csdn.net/allgis/article/details/44646597

  6. C++11 std::call_once:保证函数在任何情况下只调用一次

    std::call_once的作用是很简单的, 就是保证函数或者一些代码段在并发或者多线程的情况下,始终只会被执行一次.比如一些init函数,多次调用可能导致各种奇怪问题. 给个例子: #includ ...

  7. npm更新指定的组件

    1.例如:react-router已经更新到4.x版本,想要下载2.x版本,可以通过下面命令 npm install --save-dev react-router@2.8.1 或 npm insta ...

  8. 【托业】【新东方托业全真模拟】TEST09~10-----P5~6

    at no time 绝不,从不 takeover 收购 startup n.启动; 新兴公司(尤指新兴网络公司); 新兴公司,新开张的企业; specific具体的,特定的:factual 事实的, ...

  9. python基础(17)-IO模型&selector模块

    先说一下IO发生时涉及的对象和步骤.对于一个network IO (这里我们以read举例),它会涉及到两个系统对象,一个是调用这个IO的process (or thread),另一个就是系统内核(k ...

  10. appium环境搭建-运行

    appium是测试移动端的测试工具 首先要下载手机模拟器,或者连接真机.我用的夜神模拟器.安装打开它.安装这个有很高的兼容性要求,我也是小白,摸索了三天才弄出来 一.原理如图: 二.需要安装的软件: ...