修改cocos2dx,处理win32窗口事件
来源:互联网 发布:加盟淘宝大品牌 编辑:程序博客网 时间:2024/06/02 02:29
用cocos2dx做win32版《捕鱼之海底捞》需要处理窗口关闭之类的事件。但自己对windows不了解,又没找到别的的方法,只好改动了一下cocos2dx的源码来实现,具体步骤如下:
1 打开/cocos2dx/include/CCLayer.h
在CCLayer的public下添加:
#if (CC_TARGET_PLATFORM CC_PLATFORM_WIN32)
virtual void windowProc(UINT message, WPARAM wParam, LPARAM lParam);
#endif
2 打开/cocos2dx/layers_scenes_transitions_nodes/CCLayer.cpp
添加代码:
#if (CC_TARGET_PLATFORM CC_PLATFORM_WIN32)
void CCLayer::windowProc(UINT message, WPARAM wParam, LPARAM lParam){
}
#endif
3 打开/cocos2dx/platform/win32/CCEGLView_win32.h
在CCEGLView类定义上声明
class CCLayer
在CCEGLView类的private下添加变量
CCLayer *winHandLayer;
在public下添加函数
void setWin32WindowHandle(CCLayer *layer){
winHandLayer = layer;
}
4 打开/cocos2dx/platform/win32/CCEGLView_win32.cpp
在文件开始部分添加
#include "CCLayer.h"
在CCEGLView构造函数中添加代码:
winHandLayer = NULL;
在WindowProc函数开始的部分添加代码:
if(NULL != winHandLayer){
winHandLayer->windowProc(message, wParam, lParam);
}
注掉
case WM_CLOSE:及相关语句(这是为了不使用默认的关闭,而自己去实现关闭时的逻辑)
5 现在重新编译libcocos2dx,如果报“无法更新程序数据库”错误,如下:
修改项目属性 右击项目 --> "属性”
1. “C/C++” --> "常规” -->”调试信息格式” 设置为 “C7 兼容(/Z7)”
2. “C/C++” --> "代码生成” -->”启用字符串池” 设置为 “是(/GF)”
3. “链接器” --> "调试” -->”生成调试信息” 设置为 “是(/DEBUG)”
6 在需要捕获窗口事件的层,可以使用如下代码:
#if (CC_TARGET_PLATFORM CC_PLATFORM_WIN32)
CCDirector::sharedDirector()->getOpenGLView()->setWin32WindowHandle(this);
#endif
并实现windowProc方法
7 退出层时,不要忘了
#if (CC_TARGET_PLATFORM CC_PLATFORM_WIN32)
CCDirector::sharedDirector()->getOpenGLView()->setWin32WindowHandle(NULL);
#endif
- 修改cocos2dx,处理win32窗口事件
- win32(002) 创建窗口和 子窗口 事件处理
- win32 修改窗口属性
- COCOS2DX事件交互处理
- cocos2dx 事件处理机制
- win32事件处理
- cocos2dx win32下修改音量大小
- cocos2dx win32修改鼠标指针图案
- cocos2dx 处理精灵触摸事件
- Cocos2dx-lua触摸事件处理
- Win32事件消息处理函数
- 窗口事件处理
- 窗口其他处理事件
- Cocos2dx事件处理机制之按键事件
- Win32捕捉鼠标离开窗口事件
- Win32 SDK中窗口全屏处理
- Win32 SDK中窗口全屏处理
- Win32 SDK中窗口全屏处理
- 关于DLL搜索路径的顺序问题
- mysql 允许远程PC连接和修改root 密码
- C# 字符串格式化
- 走出屋子~``
- oracle impdp通过network_link不落地方式导入数据
- 修改cocos2dx,处理win32窗口事件
- Qt中translate、tr关系 与中文问题
- javascript 闭包 传递对象
- Andriod自动化测试
- 【基础】系统对于mongodb的影响
- ORACLE中的物化视图
- 更改java web项目编码的过程记录
- 中软国际笔试面试题
- QTextCodec相关的new、delete问题一则