【2014-01-20】cocos2dx学习笔记:判断当前平台
[历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2014-01-20 标题cocos2dx学习笔记判断当前平台分类编程 / C C / cocos2dx 标签cocos2dx·当前平台cocos2dx学习笔记判断当前平台判断当前平台实例代码源码参考最近项目中用到了cocos2dx来开发一个基于陀螺仪的demo忙了半个星期一边学习一边开发总算搞了出来。这里备份下开发中学习到的一些cocos2dx知识。判断当前平台实例代码boolAppDelegate::applicationDidFinishLaunching(){CCDirector*pDirectorCCDirector::sharedDirector();CCEGLView*pEGLViewCCEGLView::sharedOpenGLView();pDirector-setOpenGLView(pEGLView);//如果是windows 就缩放0.7。#if(CC_TARGET_PLATFORMCC_PLATFORM_WIN32)pEGLView-setFrameZoomFactor(0.8f);#endifpDirector-setDisplayStats(true);pDirector-setAnimationInterval(1.0/60);CCScene*pSceneHelloWorld::scene();pDirector-runWithScene(pScene);returntrue;}源码参考CC_TARGET_PLATFORM 宏的定义在【 cocos2d-x-2.2.1\cocos2dx\platform\CCPlatformConfig.h 】文件中。#ifndef__CC_PLATFORM_CONFIG_H__#define__CC_PLATFORM_CONFIG_H__/** Config of cocos2d-x project, per target platform. *///////////////////////////////////////////////////////////////////////////// pre configure//////////////////////////////////////////////////////////////////////////// define supported target platform macro which CC uses.#defineCC_PLATFORM_UNKNOWN0#defineCC_PLATFORM_IOS1#defineCC_PLATFORM_ANDROID2#defineCC_PLATFORM_WIN323#defineCC_PLATFORM_MARMALADE4#defineCC_PLATFORM_LINUX5#defineCC_PLATFORM_BADA6#defineCC_PLATFORM_BLACKBERRY7#defineCC_PLATFORM_MAC8#defineCC_PLATFORM_NACL9#defineCC_PLATFORM_EMSCRIPTEN10#defineCC_PLATFORM_TIZEN11#defineCC_PLATFORM_WINRT12#defineCC_PLATFORM_WP813// Determine target platform by compile environment macro.#defineCC_TARGET_PLATFORMCC_PLATFORM_UNKNOWN// mac#ifdefined(CC_TARGET_OS_MAC)#undefCC_TARGET_PLATFORM#defineCC_TARGET_PLATFORMCC_PLATFORM_MAC#endif// iphone#ifdefined(CC_TARGET_OS_IPHONE)#undefCC_TARGET_PLATFORM#defineCC_TARGET_PLATFORMCC_PLATFORM_IOS#endif// android#ifdefined(ANDROID)#undefCC_TARGET_PLATFORM#defineCC_TARGET_PLATFORMCC_PLATFORM_ANDROID#endif// WinRT (Windows Store App)#ifdefined(WINRT)defined(_WINRT)#undefCC_TARGET_PLATFORM#defineCC_TARGET_PLATFORMCC_PLATFORM_WINRT#endif// WP8 (Windows Phone 8 App)#ifdefined(WP8)defined(_WP8)#undefCC_TARGET_PLATFORM#defineCC_TARGET_PLATFORMCC_PLATFORM_WP8#endif// win32#ifdefined(WIN32)defined(_WINDOWS)#undefCC_TARGET_PLATFORM#defineCC_TARGET_PLATFORMCC_PLATFORM_WIN32#endif// linux#ifdefined(LINUX)#undefCC_TARGET_PLATFORM#defineCC_TARGET_PLATFORMCC_PLATFORM_LINUX#endif// marmalade#ifdefined(MARMALADE)#undefCC_TARGET_PLATFORM#defineCC_TARGET_PLATFORMCC_PLATFORM_MARMALADE#endif// bada#ifdefined(SHP)#undefCC_TARGET_PLATFORM#defineCC_TARGET_PLATFORMCC_PLATFORM_BADA#endif// qnx#ifdefined(__QNX__)#undefCC_TARGET_PLATFORM#defineCC_TARGET_PLATFORMCC_PLATFORM_BLACKBERRY#endif// native client#ifdefined(__native_client__)#undefCC_TARGET_PLATFORM#defineCC_TARGET_PLATFORMCC_PLATFORM_NACL#endif// Emscripten#ifdefined(EMSCRIPTEN)#undefCC_TARGET_PLATFORM#defineCC_TARGET_PLATFORMCC_PLATFORM_EMSCRIPTEN#endif// tizen#ifdefined(TIZEN)#undefCC_TARGET_PLATFORM#defineCC_TARGET_PLATFORMCC_PLATFORM_TIZEN#endif//////////////////////////////////////////////////////////////////////////// post configure//////////////////////////////////////////////////////////////////////////// check user set platform#if!CC_TARGET_PLATFORM#errorCannot recognize the target platform; are you targeting an unsupported platform?#endif#if(CC_TARGET_PLATFORMCC_PLATFORM_WIN32)#pragmawarning(disable:4127)#endif// CC_PLATFORM_WIN32#endif// __CC_PLATFORM_CONFIG_H__