• 【笔记】Cocos2dx学习笔记


    自建场景类

    • 自建场景类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()一起用的,不过仔细研究了一下实在看不出这个和普通函数有什么区别,看来,还需要继续理解,学习,有没有人来指点我一二,有什么特别的用法或者好处。
  • 相关阅读:
    SpringMVC什么时候配置 视图解析器
    打印数组的5种方式
    集合区别(list和linkedlist的区别)?
    回归测试
    dom4j组装xml 以及解析xml
    java操作文件创建、删除
    powerdesigner里的table背景色是不是可以修改的?
    如何设定editplus为txt默认打开程序?
    PowerDesigner怎样才能在修改表的字段Name的时候Code不自动跟着变
    PowerDesigner怎么调出工具箱?
  • 原文地址:https://www.cnblogs.com/jhy16193335/p/9241353.html
Copyright © 2020-2023  润新知