zoukankan      html  css  js  c++  java
  • 【笔记】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()一起用的,不过仔细研究了一下实在看不出这个和普通函数有什么区别,看来,还需要继续理解,学习,有没有人来指点我一二,有什么特别的用法或者好处。
  • 相关阅读:
    非线性方程(组):高维方程解法
    非线性方程(组):一维非线性方程(二)插值迭代方法 [MATLAB]
    非线性方程(组):一维非线性方程(一)二分法、不动点迭代、牛顿法 [MATLAB]
    非线性方程(组):计算基本理论
    常微分方程初值问题:多步预测-修正方法 [MATLAB]
    你会使用super()吗?你确定你了解它吗?
    Django简介
    Web框架的原理
    Django ORM 中的批量操作
    Python的切片
  • 原文地址:https://www.cnblogs.com/jhy16193335/p/9241353.html
Copyright © 2011-2022 走看看