cocos2d-x Win32 Android 环境配置手册
windows 平台下安装android的cocos2D-x2.6.6
软件安装是在32位Windows7操作系统下。
一、需要安装的软件1、cocos2d-x2.2.6官网上下载。
2、VS2012cocos2d-x需要的IDE编译环境/share/link?shareid=90168&uk=2769186556密钥:YKCW6-BPFPF-BT8C9-7DCTH-QXGWC3、Cygwin(这个也可选,最好是安装)对cocos2d-x本地C/C++代码的解释编译工具4、Python2.7.9cocos2d-x2.0版本以后用python脚本来创建工程,所以需要python环境./s/1kTDqn5t?qq-pf-to=pcqq.c2c5、ADT(eclipse+SDK+NDK(最好是高版本))SDK:是android交叉编译必须的IDE环境,内含EclipseNDK:android交叉编译时,对C/C++代码的解释编译工具6、JDK java环境7、文本编辑器Editplus软件官网上下载二、安装步骤(1)Android开发环境安装1、需要java环境WIN7操作系统有32位和64位,分别要下载对应的JDK8版本32位:jdk-8u5-windows-i586.exe64位:jdk-8u5-windows-x64.exe工具/原料WIN7jdk-8u5-windows-i586.exe方法/步骤1先到到官网下载JDK8:点击'jdk-8u5-windows-i586.exe准备安装一路向下,但是要记住安装的目录。
详细参考:/foundation/119375_2.htm 配置环境如下所示:JAVA_HOME、CLASSPATH、PATH1、例如我的JDK安装目录在D:\newtool\android如图所示:2、打开控制面板,点击‘高级系统设置---环境变量’3、编辑JAV A_HOME,如图所示:4、CLASSPATH(看自己的安装目录比照下面配置)以我的为例:.\;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar5、PATH在Path后面加上;D:\newtool\android\bin注意分号。
我的cocos2D-x3.10安装之路
WIN10系统安装VS2015+Cocos-X3.10方法经过长时间的摸索与尝试Cocos2D-X3.10 终于可以在Windows10上运行了。
Cocos2D-X3.10的安装和配置个人觉得还是比较麻烦的,主要在于它不像其他软件一键安装就能使用,而在于安装Cocos的同时还要附加其他安装软件和组件,例如Python、JDK、NDK、ANT等,而这些组件又有不同的版本,版本的选择如果不正确就会导致Cocos 无法运行或无法打包生成APK。
目前,Cocos2D-x 支持Win32、Android、iOS 三个平台的开发,本文分别介绍在windows和Android环境下的开发环境搭建。
一个完整的开发环境包括开发、编译、链接、运行和调试等几部分,所以需要相应的开发环境,比如Win32 环境下的VS(Visual Studio,微软公司集成开发环境),Android 的开发环境Eclipse 和Android SDK 等,iOS 则需要Xcode环境,然后使用Cocos2D-x 的模板编译出相应环境的软件包。
一般情况下,使用Cocos2D-x 的开发流程是:首先在VS 环境中进行开发调试,之后分别在另外两个平台的开发环境中编译生成相应的软件包。
当然,如果是首先使用Cocos2DiPhone进行开发,并使用Cocos2D-x 进行Android 版本移植的,一般先在Xcode 环境中进行开发,然后使用Android 的开发环境进行开发。
下面我们就开始搭建跨平台的开发环境。
1.安装VS2015下载地址:链接:/s/1eS363Km 密码:eqdh搭建Windows 下的Cocos2D-x 开发环境,首先需要安装VS,它可以用来创建Windows 平台下的Windows 应用程序、网络应用以及网络服务等,支持的语言包括C++、Basic、C# 等。
双击安装文件,便可以开始安装,默认安装即可。
如果是自定义安装,应选中Visual C++ 组件。
cocos2d-x安装部署流程
1.VS2008安装(下载安装包,直接安装,可以再安装时只选取C++的模块) 2.cocos 2d-x安装部署 1)下载cocos2d -x最新代码(官方网站):cocos2d 0.99.4-x-0.7.1.z2)安装cocos2d -x项目模板·解压下载的源码包至任意路径(例:E:\coco s2d-0.99.4-x- ·进入目录:E:\coco s2d-0.99.4-x-0.7.1\t emplate \CCXApp Wiz.vs ·双击运行setup_v s2008.j s文件进行项目模板安 ·成功后有提示(Expres s版会提示失败但是可以在注册表添加一项解决)3)编译cocos2d -x HelloWo rld例子 ·进入目录:E:\coco s2d-0.99.4-x-0.7.1 ·用VS2008打开cocos2dwin32.s ln·将活动项目设置为HelloWo rld·Debug模式下进行编译 ·编译完毕后运行·Release 模式下进行编译·编译完毕后运行4)编译cocos2d -x libCoco sDenshi on(稍后利用项目模板创建项目时,如果选中了“Simple Audil Engine in Cocos Denshio ”的话就需要 ·将活动项目设置为libCoco sDenshi ·Debug模式下进行编译 ·Release 模式下进行编译5)编译cocos2d -xtests例子·将活动项目设置为tests ·Debug模式下进行编译 ·编译完毕后运行·Release 模式下进行编译·编译完毕后运行6)测试项目模·右击解决方案·添加新项·添加新项·选择Win32程序,输入项目名·出现模板向导·不使用附加的引擎·将新项目设为启动项·Debug和Release 模式分别编译运行3.单独创建cocos2d -x项目1)首先关闭所有的解决方案 2)新建解决方案(目标位置随意)3)完成向导(不选择任何附加引擎) 4)将文件夹“E:\coco s2d-0.99.4-x-0.7.1\c ocos2dx ”移至新建项目的目录中“D:\Proj ectDemo \cocos2 dx”5)将文件夹“E:\coco s2d-0.99.4-x-0.7.1\D ebug.wi n3”中的静态链接库:libcoco s2d.liblibEGL. liblibgles _cm.liblibxml2 .liblibzlib .lib移至“D:\Proj ectDemo \Projec tDemo”文件夹中6)编译项目可以正常结束7)将文件夹“E:\coco s2d-0.99.4-x-0.7.1\D ebug.wi n3”中的静态链接库:libcoco s2d.dlllibEGL. dlllibgles _cm.dlllibxml2 .dlllibzlib .dll移至“D:\Proj ectDemo \Debug. win32”文件夹中8)运行项目成9)注:由于该项目是在Debug 模式下编译运行的,所以使用的是Debug.w in32下的静/动态链接库,如果要在Release 模式下编译运行的话,请4.演示程序(根据《Learn iPhone and iPad Cocos2D Game Develop ment》这本书第三章的Essenti附:安装Visual+ Assist(网上下一个支持VS2008的,可以大大提高编。
Cocos2d-x 3.x版本windows与android开发环境搭建新手教程【从HelloWorld项目创建到打包生成apk】
声明:本文非原创,而是对以下的文章的一些整理:一步一步了解Cocos2dx 3.0 正式版本开发环境搭建(Win32/Android)Cocos2d-x 3.4环境搭建及apk发布调试之谜海归巢Windows7 64位系统搭建Cocos2d-x 2.2.1最新版以及Android交叉编译环境(详细教程)Cocos2dx.3x入门三部曲-Hello Game项目创建(二)cocos2d-x3.2 在Windows下打包Android平台APKPS:本人电脑是win7 64位,用的是cocos2d-x 3.6。
准备工具Cocos2d-x 3.x【我的版本是3.6】Windows环境:VS2012Python-2.7Android环境:apache-ant-1.8.2-bin.tar.zip 【ANT】Java JDK(版本:jdk-8u40-windows-x64)adt-bundle-windows-x86_64-20121030 【集成了Android SDK与Eclipse】Android-ndk64-r10b-windows-x86_64 【NDK】cygwin2.738 native(本地版)Windows环境搭建1.安装vs2012如果是msdn版是不用注册的,不过安装的时候记得先把系统日期先调到2012到2012年左右,否则会出现什么时间戳有问题,安装不成功。
如果不是msdn版的就自己上网找注册码。
2.Python安装与环境配置安装的时候使用默认安装方式即可,但是安装完毕后我们需要配置环境变量。
在我的电脑(右键)->属性->高级系统设置->高级选项卡->环境变量->系统变量中找到Path 变量,并在其值中增加指向Python的环境变量。
格式为 [Python安装路径]; 例如我的安装路径为F:\Python 2.7.8,即在path里添加“F:\Python 2.7.8;”【注意加上分号,分号是区分各个不同的路径的】。
quick-cocos2d-x 游戏打包环境搭建
/tutorial/show?id=1304设置 Quick-Cocos2d-x 在 Windows 下的编译环境Liao Yulei2014-08-12 11:27:396843 次阅读大多数时间,使用player 就可以进行游戏开发。
仅当我们需要在真机上调试,或者需要在player 中加入自己的C++ 代码时,我们才需要配置编译环境。
quick-x-player 使用说明配置编译环境的基本步骤:1.安装Visual Studio 20122.安装Java SDK3.安装最新的Android ADT bundle 和Android NDK4.下载quick-cocos2d-x 源代码5.设置环境变量6.编译quick-x-player proj.win32 工程7.编译LuaJavaBridge 示例,并在Android 真机上进行测试Step 1: 安装Visual Studio 2012从/visualstudio/下载Visual Studio 2012,并进行安装。
支持的版本:•Visual Studio 2012•Visual Studio Express 2012 for Windows Desktop注意:必须使用Windows Vista/7/8 操作系统。
Step 2: 安装Java SDK从/technetwork/java/javase/downloads/ 下载最新版的Java SDK (JDK, 推荐使用32bit 版本),并进行安装。
Step 3: 安装最新的Android ADT bundle 和Android NDK1.从/sdk/下载最新的ADT Bundle for Windows ( 推荐32bit 版本,或者和JDK 匹配的版本)。
2.解压缩adt-bundle-windows-x86-2013.zip3.将目录adt-bundle-windows-x86-2013 改名为android4.将目录android\sdk 改名为android\android-sdk-windows5.从/tools/sdk/ndk/index.html 下载Android NDK r6.解压缩android-ndk-r-windows-x86.zip7.将目录android-ndk-r 移动到android\android-ndk-r最终的目录结构:1 2 3 <PATH_TO>\android\android-ndk-r?<PATH_TO>\android\android-sdk-windows <PATH_TO>\android\eclipse8. 运行android\android-sdk-windows\tools\android.bat, 选中Android SDK 2.2(如果看不到Android SDK 2.2,请设置代理), 然后安装需要的包。
搭建Cocos2d-JS开发环境
搭建Cocos2d-JS开发环境使⽤Cocos2d-JS引擎开发游戏。
基本的程序代码是JavaScript语⾔,因此,凡是能够开发JavaScript语⾔⼯具都适⽤于Cocos2d-JS游戏开发。
本书我们推荐WebStorm和Cocos Code IDE⼯具。
搭建WebStorm开发环境我们在以往使⽤了WebStorm开发⼯具。
它是⾮常优秀的JavaScript开发⼯具。
WebStorm⼯具能够开发和调试基于Cocos2d-JS引擎的JavaScript程序代码,可是測试和调试时候仅仅能执⾏在Web浏览器上。
WebStorm安装过程我们已经介绍了,可是要想开发基于Cocos2d-JS引擎的JavaScript程序,我们还须要安装Google Chrome浏览器和JetBrains IDE Support 插件,Google Chrome浏览器安装我们不再介绍,我们重点介绍JetBrains IDE Support插件,JetBrains IDE Support是安装在Google Chrome浏览器上的插件,它是为了配合WebStorm⼯具调试使⽤的。
安装JetBrains IDE Support插件成功安装后会在浏览器的地址栏后⾯出现“JB”图标。
详细使⽤怎样我们以下章节再介绍。
搭建Cocos Code IDE开发环境Cocos Code IDE是Cocos2d-x团队开发的,⽤于开发Cocos2d-JS和Cocos2d-x Lua绑定的游戏⼯具,它是基于Eclipse[ Eclipse 是⼀个开放源码的、基于Java 的可扩展开发平台。
就其本⾝⽽⾔。
它仅仅是⼀个框架和⼀组服务。
⽤于通过插件组件构建开发环境。
下载JDK下载完毕默认安装完毕之后。
JDK安装完毕后须要设置系统环境变量,主要是设置JAVA_HOME环境变量。
打开设置环境变量对话框,如图3-6所看到的。
我们能够在⽤户变量(上半部分。
仅仅影响当前⽤户)或系统变量(下半部分。
cocos2d-x教程
目录COCOS2d-X教程 (1)第一章环境 (1)(一)vs环境搭建 (1)(二):如何添加新项目 (2)第二章cocos2d-x的特性 (5)第三章制基本图元 (7)(一)、基本图形绘制 (7)第三部分:绘制图片 (11)第七章在cocos2d-x中使用RTTI (21)第八章动作 (22)第一部分:动作概述 (22)第三部分:CCCallFunc家族(回调函数包装器) (23)COCOS2d-X教程第一章环境(一)vs环境搭建1.安装visual studio2008据说vs2008是cocos2d-x运行最稳定的版本。
官方下载地址:/downloads/info.aspx?na=41&SrcFamilyId=83C3A1EC-ED72-4A79-896 1-25635DB0192B&SrcDisplayLang=zh-cn&u=http%3a%2f%%2fdownlo ad%2fe%2f7%2f7%2fe777851c-c1a4-4979-86b3-6886953b32e9%2fVS2008ProEdition90DayTrialC HSX1435983.isovisual assist x自备,vs序列号自备。
2.安装cocos2d-x引擎/wiki_extensions/forward_wiki_page/cocos2d-x?menu_id=1从网站上下载cocos2d-x,并解压到自定义的路径下3.测试helloworld我们使用windows版的helloworld,打开cocos2d-x引擎安装目录下的cocos2d-win32.vc2008.sln将helloworld设为启动项目| 生成->调试->启动新实例,如图所示:(二):如何添加新项目1 安装应用程序向导运行 install-templates-msvc.bat,cocos2d-x 应用程序向导就会自动安装到VS环境下2 建立新项目右键单击解决方案->添加->新项目->cocos2d-x-win32 application注意:目录层级关系,缺省情况下,应该设置在cocos2d-x引擎安装的目录下,否则在编译链接时可能会找不到文件然后,按照之前的步骤编译运行即可,运行效果同上一部分的图第二章cocos2d-x的特性由于cocos2d-x是cocos2d-iphone的c++移植版本。
Android(eclipse)+cocos2d-x安装及项目环境整合
安卓环境搭建孔令航编写QQ:1040974297【一开始】1,开发平台:Windows2,开发工具:VS2008或VS2010及以上版本3,Cocos2d-x SDK版本:cocos2d-1.0.1-x-0.11.0及以上版本,实测2.0.1版本可用此方法搭建。
环境搭建的顺序是这样1.JDK&JRE 安装JDK会顺带安装JRE的,这一步是为了可以编写和允许普通的JAVA程序2.Eclipse JAVA 的IDE,这一步是为了方便地开发JAVA程序3.CDT 是Eclipse的一个插件,这一步是为了可以引入C++4.ADT 是Eclipse的一个插件,这一步是为了管理安卓开发库5.ADK 上一步是工具,这一步就是开发库了,到了这一步你可以编写普通的安卓程序6.NDK 单有CDT还不行,它只能编辑,不能编译,这一步是为了可以编译C++程序,然后在安卓中使用这里不需要使用cygwin这个麻烦的东西,我们使用新版本的ndk来编译C++【二JDK的安装】JDK的最新版本是1.7,【重要】这里需要下载使用1.6的JDK,JDK自动包含JRE,使用1.7的JDKcocos的代码会有"暂时性编译错误"问题下载安装都是一路Next,下面的内容是安装1.7之后降1.6的方法,直接安装1.6的可以飘过下载地址:/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html 根据自己的操作系统选择,这里我用的是Java SE Development Kit 6u30如果你像我一样不幸,装上了1.7,可以用下面的方法来恢复降到1.61.打开windows的Preferences,把Compiler compliance level 设置到1.6 然后会显示让你配置JRE在配置jre中添加jre的目录,然后选定这里,我们在Eclipse里面设置好了JRE6,以及编译使用的JDK,但还不可以接下来要设置一下你的项目,打开Project Properties,Add Library 然后Next,接下来会要你选择JRE的路径这里我们直接选择刚刚在windows Preferences设置好的JRE6,然后Finish即可此时你会发现更多的红叉叉,所有文件都出现红叉叉了,让我们把他们消除掉,这次很简单,刚刚重置JRE的时候,吧安卓也重置掉了把安卓ADK勾上就可以了【三安装Eclipse和CDT】这里我直接用这一个,带CDT插件,已经有Eclipse的同学可以去下载一个CDTEclipse解压就可以直接使用了,这里不墨迹Eclipse C++版本下载地址/downloads/packages/eclipse-ide-cc-developers-includes-incubating-components/indigosr2Eclipse 要安装比较新的版本,旧版本会导致在最后几步功亏于溃。
win32程序cocos2d-x打包apk,无需cygwin
前期准备1.下载cocos2d-x(/projects/cocos2d-x/wiki/Download),这里选择cocos2d-x-2.1.5,解压在:E:\cocos2d-x-2.1.52.下载已配置好安卓开发环境的工具(/sdk/index.html)这里选择/android/adt/adt-bundle-windows-x86_64-20130729.zip这个工具解压在:D:\android3.下载NDK,这里选择(/android/ndk/android-ndk-r8b-windows.zip)android-ndk-r8b,解压放在D:\android\android-ndk-r8b4.下载安装Python2.7,安卓在C:\Python275.下载安装jdk配置环境变量(1)NDK_ROOT:D:\android\android-ndk-r8b(2)Path:(在原有的值的后面加入)D:\Program Files\Java\jdk1.6.0_45\bin;C:\Python27 创建cocos2d-x项目1.打开cmd,转到cocos2d-x项目所在盘符E:2.输入命令cd E:\cocos2d-x-2.1.5\tools\project-creator,转到项目create_project.py所在目录3.输入命令python create_project.py -project MyTestProject -package cn.sulianqi.test -language cpp MyTestProject为项目名称cn.sulianqi.test为安卓工程包名4.打开E:\cocos2d-x-2.1.5\projects,发现里面有我们刚建好的项目MyTestProject,至此项目搭建完成。
(注:这里搭建的是个空项目,只有HelloWord图片场景,实际打包的是自己现有的项目,所要包自己项目中Classes文件夹下的文件拷贝到新建好的这个项目的文件夹中,Resources也一样,等下经过安卓工程编译还有在E:\cocos2d-x-2.1.5\projects\MyCocos2d\proj.android目录下多出个assets 文件夹,到时候别忘了把Resources里面的文件拷贝到assets文件夹,否则打包会找不到资源)导入安卓工程1.打开D:\android\eclipse下的eclipse2.打开之后在eclipse的菜单中File>>Import>>然后弹出小窗口3.同样方法导入libcocos2dx库项目,所在目录E:\cocos2d-x-2.1.5\cocos2dx\platform\android 配置安卓工程1.这时项目是报错的,Cannot run program "bash": Launching failed这时需要右键项目属性打开配置 ${NDK_ROOT}/ndk-build.cmd2.配置cocos2d-x的路径在include$(BUILD_SHARED_LIBRARY)下面加入以下配置,如果路径按我的配置就默认用下面两句$(call import-add-path, E:/cocos2d-x-2.1.5)\$(call import-add-path, E:/cocos2d-x-2.1.5/cocos2dx/platform/third_party/android/prebuilt)\保存之后错误消失3.配置项目没报错了还没完,我们要让安卓工程知道我们要它编译哪些cpp文件,所以还得加入以下配置,把LOCAL_SRC_FILES这句替换成以下三句FILE_LIST := hellocpp/main.cppFILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)完成至此,右键项目>>Run As>>Android Appliction,看控制台没报错(有些Warning不要紧滴),在编译我们的cpp代码来,yes!恭喜你成功了!(注:这里模拟器跑不了的可以把安卓工程bin目录下生成的apk拷到手机上安装,或者有360手机助手的双击就可以安装了)附Android.mk 文件LOCAL_PATH := $(call my-dir)include$(CLEAR_VARS)LOCAL_MODULE := cocos2dcpp_sharedLOCAL_MODULE_FILENAME := libcocos2dcppFILE_LIST := hellocpp/main.cppFILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../ClassesLOCAL_WHOLE_STATIC_LIBRARIES += cocos2dx_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_staticLOCAL_WHOLE_STATIC_LIBRARIES += box2d_staticLOCAL_WHOLE_STATIC_LIBRARIES += chipmunk_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocos_extension_staticinclude$(BUILD_SHARED_LIBRARY)$(call import-add-path, E:/cocos2d-x-2.1.5)\$(call import-add-path, E:/cocos2d-x-2.1.5/cocos2dx/platform/third_party/android/prebuilt)\ $(call import-module,cocos2dx)$(call import-module,cocos2dx/platform/third_party/android/prebuilt/libcurl)$(call import-module,CocosDenshion/android)$(call import-module,extensions)$(call import-module,external/Box2D)$(call import-module,external/chipmunk)。
cocos2d-x2.x版本接入bugly的总结
第⼆个问题的解决⽅法就是修改bugly下的Android.mk⽂件,增加⼀⾏代码LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)第三个问题就⽐较恶⼼⼀些了,最后我是直接在项⽬jni/Android.mk中再引⼊⼀个Android.mk,通过该⽂件去导⼊2.x的cocos需要配置NDK的环境变量,项⽬的jni/Android.mk中添加和Android.mk的⽂件内容第三项,因为bugly⾃⼰新起了⼀个线程去调⽤进⾏上报,在Android下如果游戏⾃⼰的所以对官⽅提供的CrashReport.mm进⾏了修改(主要⼆处改动,⼀处是初始化仅做暴露⾃⼰接⼝的事情,⼆是对断)#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)#import <Foundation/Foundation.h>#define NSStringMake(const_char_pointer) (const_char_pointer == NULL ? nil : @(const_char_pointer))#define NSStringNonnullMake(const_char_pointer) (const_char_pointer == NULL ? @"" : @(const_char_pointer))#define LOGI(fmt, args...) printf("[Info] %s: ", LOG_TAG);\printf(fmt, ##args);\printf("\n");#define LOGD(fmt, args...) printf("[Debug] %s: ", LOG_TAG);\printf(fmt, ##args);\printf("\n");#define LOGE(fmt, args...) printf("[Error] %s: ", LOG_TAG);\printf(fmt, ##args);\printf("\n");#define BUGLY_AGENT_CLASS @"BuglyAgent"#define BUGLY_AGENT_METHOD_INIT @"initWithAppId:debugMode:"#define BUGLY_AGENT_METHOD_INIT_LOG @"initWithAppId:debugMode:logger:"#define BUGLY_AGENT_METHOD_USER @"setUserIdentifier:"#define BUGLY_AGENT_METHOD_CHANNEL @"setAppChannel:"#define BUGLY_AGENT_METHOD_VERSION @"setAppVersion:"#define BUGLY_AGENT_METHOD_EXCEPTION @"reportException:name:message:stackTrace:userInfo:terminateApp:"#define BUGLY_AGENT_METHOD_SCENE @"setSceneTag:"#define BUGLY_AGENT_METHOD_SCENE_VALUE @"setSceneValue:forKey:"#define BUGLY_AGENT_METHOD_SCENE_CLEAN @"removeSceneValueForKey:"#define BUGLY_AGENT_METHOD_LOG @"level:tag:log:"#endifbool CrashReport::initialized = false;void CrashReport::initCrashReport(const char* appId, bool isDebug) {CrashReport::initCrashReport(appId, isDebug, Warning);}void CrashReport::initCrashReport(const char* appId, bool isDebug, CRLogLevel level) {if (!initialized) {// #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)// LOGI("[cocos2d-x] start init.");// initialized = true;// JavaVM* jvm = cocos2d::JniHelper::getJavaVM();// if (jvm == NULL) {// LOGE("[cocos2d-x] JavaVM is null.");// return;// }// JNIEnv* env = NULL;// jvm->GetEnv((void**)&env, JNI_VERSION_1_6);// if (env == NULL) {// LOGE("[cocos2d-x] JNIEnv is null.");// return;// }// jvm->AttachCurrentThread(&env, 0);// //get activity// LOGI("[cocos2d-x] try get org.cocos2dx.lib.Cocos2dxActivity");// jclass activityClass = env->FindClass("org/cocos2dx/lib/Cocos2dxActivity");// if (activityClass == NULL) {// LOGE("[cocos2d-x] Cocos2dxActivity is Null");// return;// }// jmethodID methodActivity = env->GetStaticMethodID(activityClass, "getContext", "()Landroid/content/Context;");// jobject activity = (jobject) env->CallStaticObjectMethod(activityClass, methodActivity);// if (activity == NULL) {// LOGE("[cocos2d-x] activity is Null");// return;// }// //call channel set package name// #if(SDK_CHANNEL_INDEX != 0)// LOGI("[cocos2d-x] set channel: %d", SDK_CHANNEL_INDEX);// char* packageName = "";// switch(SDK_CHANNEL_INDEX) {// case 1:// packageName = "com.tencent.bugly.msdk";// break;// }// jmethodID setChannelMethod = env->GetStaticMethodID(env->FindClass(CRASHREPORT_CLASS), METHOD_SET_CHANNEL, METHOD_SET_CHANNEL_PARAMETER);// LOGI("set packagename: %s", packageName);// env->CallStaticVoidMethod(env->FindClass(CRASHREPORT_CLASS), setChannelMethod, env->NewStringUTF(packageName));// #endif// //call init// LOGI("[cocos2d-x] init by bugly.jar");// jmethodID initMethod = env->GetStaticMethodID(env->FindClass(CRASHREPORT_CLASS), METHOD_INIT, METHOD_INIT_PARAMETER);// env->CallStaticVoidMethod(env->FindClass(CRASHREPORT_CLASS), initMethod, activity, env->NewStringUTF(appId), isDebug);// // iOS// #elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)// NSString* pAppId = NSStringMake(appId);// BOOL pDebug = isDebug ? YES : NO;// Class clazz = NSClassFromString(BUGLY_AGENT_CLASS);// if (clazz) {// BOOL initLog = true;// SEL selector = NSSelectorFromString(BUGLY_AGENT_METHOD_INIT_LOG);// NSMethodSignature* signature = [clazz methodSignatureForSelector:selector];// if (signature == nil) {// selector = NSSelectorFromString(BUGLY_AGENT_METHOD_INIT);// signature = [clazz methodSignatureForSelector:selector];// initLog = false;// }// if (signature) {// LOGI("Init the sdk with App ID: %s", appId);// NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:signature];// [invocation setTarget:clazz];// [invocation setSelector:selector];// [invocation setArgument:&pAppId atIndex:2];// [invocation setArgument:&pDebug atIndex:3];// if (initLog) {// NSInteger pLevel = (level >= 4 ? 1 : (level == 3 ? 2 : (level == 2 ? 4 : (level == 1 ? 8 : 16))));// [invocation setArgument:&pLevel atIndex:4];// }// [invocation invoke];// }// } else {// NSLog(@"Warning: Fail to get class by NSSelectorFromString(%@)", BUGLY_AGENT_CLASS);// }// #endif// register lua handler#if (BUGLY_REPORT_LUA)lua_register(getLuaState(), "buglyReportLuaException", buglyReportLuaException);lua_register(getLuaState(), "buglyPutUserData", buglyLuaPutUserData);lua_register(getLuaState(), "buglyRemoveUserData", buglyLuaRemoveUserData);lua_register(getLuaState(), "buglySetUserSceneTag", buglyLuaSetUserSceneTag);lua_register(getLuaState(), "buglySetUserId", buglyLuaSetUserId);lua_register(getLuaState(), "buglyLog", buglyLuaLog);LOGI("[cocos2d-x] registered bugly lua functions, init finished");#endif#if (BUGLY_REPORT_JS)#endifinitialized = true;}}void CrashReport::setUserSceneTag(int tag) {#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)cocos2d::JniMethodInfo t;if (cocos2d::JniHelper::getStaticMethodInfo(t,CRASHREPORT_CLASS,METHOD_SET_USER_SCENE_TAG,METHOD_SET_USER_SCENE_TAG_PARAMETER)){LOGI("[cocos2d-x] set user scene tag: %d", tag);//get activityjclass activityClass = t.env->FindClass("org/cocos2dx/lib/Cocos2dxActivity");if (activityClass == NULL) {LOGE("[cocos2d-x] Cocos2dxActivity is Null");return;}jmethodID methodActivity = t.env->GetStaticMethodID(activityClass, "getContext", "()Landroid/content/Context;"); jobject activity = (jobject) t.env->CallStaticObjectMethod(activityClass, methodActivity);if (activity == NULL) {LOGE("[cocos2d-x] activity is Null");return;}t.env->CallStaticVoidMethod(t.classID, t.methodID, activity, tag);}#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)if (tag < 0) {return;}NSUInteger pTag = tag;Class clazz = NSClassFromString(BUGLY_AGENT_CLASS);if (clazz) {SEL selector = NSSelectorFromString(BUGLY_AGENT_METHOD_SCENE);NSMethodSignature* signature = [clazz methodSignatureForSelector:selector];if (signature) {LOGI("Set user scene tag id: %d", tag);NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:signature];[invocation setTarget:clazz];[invocation setSelector:selector];[invocation setArgument:&pTag atIndex:2];[invocation invoke];}} else {NSLog(@"Warning: Fail to get class by NSSelectorFromString(%@)", BUGLY_AGENT_CLASS);}#endif}void CrashReport::putUserData(const char* key, const char* value) {#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)cocos2d::JniMethodInfo t;if (cocos2d::JniHelper::getStaticMethodInfo(t,CRASHREPORT_CLASS,METHOD_PUT_USER_DATA,METHOD_PUT_USER_DATA_PARAMETER)){LOGI("[cocos2d-x] put user data: %s:%s", key, value);//get activityjclass activityClass = t.env->FindClass("org/cocos2dx/lib/Cocos2dxActivity");if (activityClass == NULL) {LOGE("[cocos2d-x] Cocos2dxActivity is Null");return;}jmethodID methodActivity = t.env->GetStaticMethodID(activityClass, "getContext", "()Landroid/content/Context;");jobject activity = (jobject) t.env->CallStaticObjectMethod(activityClass, methodActivity);if (activity == NULL) {LOGE("[cocos2d-x] activity is Null");return;}t.env->CallStaticVoidMethod(t.classID, t.methodID, activity, t.env->NewStringUTF(key), t.env->NewStringUTF(value)); }#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)NSString * pKey = NSStringNonnullMake(key);NSString * pValue = NSStringNonnullMake(value);Class clazz = NSClassFromString(BUGLY_AGENT_CLASS);if (clazz) {SEL selector = NSSelectorFromString(BUGLY_AGENT_METHOD_SCENE_VALUE);NSMethodSignature* signature = [clazz methodSignatureForSelector:selector];if (signature) {LOGI("Set user Key-Value: [%s, %s]", key, value);NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:signature];[invocation setTarget:clazz];[invocation setSelector:selector];[invocation setArgument:&pValue atIndex:2];[invocation setArgument:&pKey atIndex:3];[invocation invoke];}} else {NSLog(@"Warning: Fail to get class by NSSelectorFromString(%@)", BUGLY_AGENT_CLASS);}#endif}void CrashReport::removeUserData(const char* key) {#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)cocos2d::JniMethodInfo t;if (cocos2d::JniHelper::getStaticMethodInfo(t,CRASHREPORT_CLASS,METHOD_REMOVE_USER_DATA,METHOD_REMOVE_USER_DATA_PARAMETER)){LOGI("[cocos2d-x] remove user data: %s", key);//get activityjclass activityClass = t.env->FindClass("org/cocos2dx/lib/Cocos2dxActivity");if (activityClass == NULL) {LOGE("[cocos2d-x] Cocos2dxActivity is Null");return;}jmethodID methodActivity = t.env->GetStaticMethodID(activityClass, "getContext", "()Landroid/content/Context;"); jobject activity = (jobject) t.env->CallStaticObjectMethod(activityClass, methodActivity);if (activity == NULL) {LOGE("[cocos2d-x] activity is Null");return;}t.env->CallStaticVoidMethod(t.classID, t.methodID, activity, t.env->NewStringUTF(key));}#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)NSString * pKey = NSStringNonnullMake(key);Class clazz = NSClassFromString(BUGLY_AGENT_CLASS);if (clazz) {SEL selector = NSSelectorFromString(BUGLY_AGENT_METHOD_SCENE_CLEAN);NSMethodSignature* signature = [clazz methodSignatureForSelector:selector];if (signature) {NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:signature];[invocation setTarget:clazz];[invocation setSelector:selector];[invocation setArgument:&pKey atIndex:2];[invocation invoke];}} else {NSLog(@"Warning: Fail to get class by NSSelectorFromString(%@)", BUGLY_AGENT_CLASS);}#endif}void CrashReport::setUserId(const char* userId) {#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)cocos2d::JniMethodInfo t;if (cocos2d::JniHelper::getStaticMethodInfo(t,CRASHREPORT_CLASS,METHOD_SET_USER_ID,METHOD_SET_USER_ID_PARAMETER)){LOGI("[cocos2d-x] set user id: %s", userId);t.env->CallStaticVoidMethod(t.classID, t.methodID, t.env->NewStringUTF(userId));}#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)NSString * pUserId = NSStringMake(userId);Class clazz = NSClassFromString(BUGLY_AGENT_CLASS);if (clazz) {SEL selector = NSSelectorFromString(BUGLY_AGENT_METHOD_USER);NSMethodSignature* signature = [clazz methodSignatureForSelector:selector];if (signature) {LOGI("Set user id: %s", userId);NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:signature];[invocation setTarget:clazz];[invocation setSelector:selector];[invocation setArgument:&pUserId atIndex:2];[invocation invoke];}} else {NSLog(@"Warning: Fail to get class by NSSelectorFromString(%@)", BUGLY_AGENT_CLASS);}#endif}void CrashReport::reportException(int category, const char* type, const char* msg, const char* traceback) {#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)cocos2d::JniMethodInfo t;if (cocos2d::JniHelper::getStaticMethodInfo(t,CRASHREPORT_CLASS,METHOD_POST_EXCEPTION,METHOD_POST_EXCEPTION_PARAMETER)){LOGI("ReportException %d %s %s %s", category, type, msg, traceback);jstring typeStr = t.env->NewStringUTF(type);jstring msgStr = t.env->NewStringUTF(msg);jstring traceStr = t.env->NewStringUTF(traceback);t.env->CallStaticVoidMethod(t.classID, t.methodID, category, typeStr, msgStr, traceStr, false); t.env->DeleteLocalRef(typeStr);t.env->DeleteLocalRef(msgStr);t.env->DeleteLocalRef(traceStr);}#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)NSUInteger pCategory = category;NSString * pType = NSStringMake(type);NSString * pMsg = NSStringMake(msg);NSString * pTraceStack = NSStringMake(traceback);NSDictionary * nullObject = nil;BOOL terminateApp = NO;Class clazz = NSClassFromString(BUGLY_AGENT_CLASS);if (clazz) {SEL selector = NSSelectorFromString(BUGLY_AGENT_METHOD_EXCEPTION);NSMethodSignature* signature = [clazz methodSignatureForSelector:selector];if (signature) {LOGE("Report exception: %s, %s\n%s", type, msg, traceback);NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:signature];[invocation setTarget:clazz];[invocation setSelector:selector];[invocation setArgument:&pCategory atIndex:2];[invocation setArgument:&pType atIndex:3];[invocation setArgument:&pMsg atIndex:4];[invocation setArgument:&pTraceStack atIndex:5];[invocation setArgument:&nullObject atIndex:6];[invocation setArgument:&terminateApp atIndex:7];[invocation invoke];}} else {NSLog(@"Warning: Fail to get class by NSSelectorFromString(%@)", BUGLY_AGENT_CLASS); }#endif}void CrashReport::setAppChannel(const char * channel){#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)LOGI("No impl");#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)NSString * pUserId = NSStringMake(channel);Class clazz = NSClassFromString(BUGLY_AGENT_CLASS);if (clazz) {SEL selector = NSSelectorFromString(BUGLY_AGENT_METHOD_CHANNEL);NSMethodSignature* signature = [clazz methodSignatureForSelector:selector];if (signature) {LOGI("Set channel: %s", channel);NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:signature];[invocation setTarget:clazz];[invocation setSelector:selector];[invocation setArgument:&pUserId atIndex:2];[invocation invoke];}}#endif}void CrashReport::setAppVersion(const char * version){#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)LOGI("No impl");#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)NSString * pUserId = NSStringMake(version);Class clazz = NSClassFromString(BUGLY_AGENT_CLASS);if (clazz) {SEL selector = NSSelectorFromString(BUGLY_AGENT_METHOD_VERSION);NSMethodSignature* signature = [clazz methodSignatureForSelector:selector];if (signature) {LOGI("Set version: %s", version);NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:signature];[invocation setTarget:clazz];[invocation setSelector:selector];[invocation setArgument:&pUserId atIndex:2];[invocation invoke];}}#endif}void CrashReport::log(CRLogLevel level, const char * tag, const char * fmts, ...) {#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)cocos2d::JniMethodInfo t;if (cocos2d::JniHelper::getStaticMethodInfo(t,CRASHREPORT_CLASS,METHOD_SET_LOG,METHOD_SET_LOG_PARAMETER)){LOGI("[cocos2d-x] set log: %s - %s", tag, fmts);t.env->CallStaticVoidMethod(t.classID, t.methodID, (int)level, t.env->NewStringUTF(tag), t.env->NewStringUTF(fmts)); }#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)if (NULL == fmts) {return;}//Error=4,Warn=3,Info=2,Debug=1,Verbose=0//LogError=1<<0,Warn=1<<1,Info=1<<2,Debug=1<<3,Verbose=1<<4NSInteger pLevel = (level >= 4 ? 1 : (level == 3 ? 2 : (level == 2 ? 4 : (level == 1 ? 8 : 16))));NSString * pTag = NSStringMake(tag);char msg[256] = {0};va_list args;va_start(args, fmts);vsprintf(msg, fmts, args);va_end(args);NSString * pMsg = NSStringMake(msg);Class clazz = NSClassFromString(BUGLY_AGENT_CLASS);if (clazz) {SEL selector = NSSelectorFromString(BUGLY_AGENT_METHOD_LOG);NSMethodSignature* signature = [clazz methodSignatureForSelector:selector];if (signature) {NSInvocation* invocation = [NSInvocation invocationWithMethodSignature:signature];[invocation setTarget:clazz];[invocation setSelector:selector];[invocation setArgument:&pLevel atIndex:2];[invocation setArgument:&pTag atIndex:3];[invocation setArgument:&pMsg atIndex:4];[invocation invoke];}}#endif}//special for lua#if (BUGLY_REPORT_LUA)int CrashReport::buglyReportLuaException(lua_State* luaState) {const char* type = "";const char* msg = lua_tostring(luaState, 1);const char* traceback = lua_tostring(luaState, 2);CrashReport::reportException(CATEGORY_LUA_EXCEPTION, type, msg, traceback);return 0;}int CrashReport::buglyLuaPutUserData(lua_State* luaState) {const char* key = lua_tostring(luaState, 1);我⾃⼰做测试是通过的,截图如下:IOS接⼊遇到的坑,初始化注意延时处理,防⽌崩溃初始化Bugly,处理处理防⽌崩溃,修改AppController.mm剩下就是设置环境路径和测试了,按上⾯的官⽅⽂档就好了。
网狐游戏客户端环境搭建文档
一、软件1.jdk 1.8(/otn-pub/java/jdk/8u101-b13/jdk-8u101-windows-x64.e xe)2.CocosForWin-v3.10.exe(/filedown/CocosForWin-v3.10.exe)3.vs2013.5_ult_chs.iso(/download/9/3/E/93EA27FF-DB02-4822-8771-DCA02389 57E9/vs2013.5_ult_chs.iso?type=ISO)4. ndk : android-ndk-r10c-windows-x86_64.exe( https:///s/1dDxRT6L)5.adt-bundle-windows-x86_64-20140702.zip( /android/adt/adt-bundle-windows-x86_64-20140702.zip )6.python 2.7.3 https:///ftp/python/2.7.3/python-2.7.3.amd64.msi二、软件安装与环境配置1、VS环境安装(用来编译win32 直接打开编译即可,这里就不详细说了)2、JDK环境安装:右击计算机->属性->高级系统设置->环境变量(分为用户变量和系统变量);1)安装:直接点击下一步即可安装完成。
2)配置环境变量:a)在系统或用户变量中新加环境变量JAVA_HOME为JDK的路径,如:C:\Program Files\Java\jdk1.8.0_101,java为JDK安装文件夹;b)把”%JAVA_HOME%/bin”加入到系统变量的Path中,记得用分号隔开。
在用户变量中添加CLASSPATH变量为“.;%JAVA_HOME%/lib;”注意前面还有个点。
JDK环境配置完成。
c) 添加环境变量CLASSPATH值为:%JAVA_HOME%lib\dt.jar;%JAVA_HOME%\lib\tools.jar3)开始->运行->cmd或win+R进入DOS窗口:输入java -version查看JDK是否安装成功。
安卓应用开发:入门指南和开发环境配置
安卓应用开发:入门指南和开发环境配置随着智能手机的普及和移动互联网的飞速发展,安卓应用开发已成为一个备受关注的领域。
越来越多的开发者希望能够利用自己的技术能力和创意开发出各种不同的安卓应用,以满足用户日益增长的需求。
本文将为读者介绍安卓应用开发的基础知识和入门指南,同时也会详细说明如何配置开发环境,帮助读者快速上手安卓应用开发。
一、安卓应用开发入门指南1.了解安卓操作系统在开始安卓应用开发之前,首先要了解安卓操作系统的基本知识。
安卓操作系统是Google推出的一款基于Linux内核的移动设备操作系统,它被广泛应用于智能手机、平板电脑、智能手表、智能电视等多种设备上。
安卓操作系统具有开放性、灵活性和丰富的应用生态,这也为安卓应用开发提供了广阔的发展空间。
2.掌握Java编程语言安卓应用开发主要使用Java编程语言,因此开发者需要掌握Java 编程的基本语法和常用类库。
如果读者已经具备了Java编程基础,那么可以直接开始学习安卓应用开发;如果读者对Java编程一窍不通,建议先学习一些入门的Java编程教程,例如《Java核心技术》或者《Java编程思想》等。
3.学习安卓应用开发相关知识安卓应用开发涉及到很多专业的知识,例如安卓应用的UI设计、多媒体处理、数据存储、网络通信等。
为了快速上手安卓应用开发,读者可以学习一些相关的教程和视频课程,例如《Head First Android Development》或者《Learning Android: Develop Mobile Apps Using Java and Eclipse》等。
4.选择合适的开发工具为了进行安卓应用开发,开发者需要选择一款合适的开发工具。
目前比较流行的安卓应用开发工具有Android Studio、Eclipse和IntelliJ IDEA等,其中Android Studio是Google官方推荐的安卓应用开发工具,具有丰富的功能和强大的性能,因此建议读者使用Android Studio进行安卓应用开发。
cocos2d-x的安装操作流程
cocos2d-x安装流程一、安装准备:首先:要xp(我用的是xp);安装了vs2008 或2010,要求有c++模块(用2010演示)再次:下载cocos2d-1.0.1-x-0.12.0.zip (用这个演示的)下载地址:/projects/cocos2d-x/wiki/Download二、安装步骤:A运行自己带的例子HelloWorld:1.cocos2d-1.0.1-x-0.12.0.zip直接解压到cocos2d-1.0.1-x-0.12.0中2.直接运行cocos2d-1.0.1-x-0.12.0中的2.1运行显示2.2 重新生成解决方案(以后会用到)2.3把HelloWorld设为启动项2.4 点击或F5启动程序,显示:这个表示自己带的例子已经运行成功;B创建自己的工程1.模板安装,在加压的文件包中找到的批处理文件运行里面的脚本安装模版2.创建项目显示3.选择Cocos2d-x中的Cocos2d-win32 Application 并设置项目名字和位置(演示:名字Apptest,位置d盘)确定显示下一步也可Finish 演示下一步:对号可以消去但初学者不必改,因为以后项目中会用到(不考虑效率都带着吧)4.Finish 显示此时还不能运行需要把cocos2d-1.0.1-x-0.12.0中的(debug.win32 有点多余的东西,暂不考虑)Copy到自己的工程文件下:刚刚建建的Apptest下及D:\Apptest,copy后的图示:5.运行Apptest这个新建的项目点击F5或,显示结果Ok --------成功啦!撒花花。
备注:如有不懂或错误;请加:two zero seven three one nine five four 探讨。
cocos-2dx4.0win10环境搭建血泪史
cocos-2dx4.0win10环境搭建⾎泪史这⼏天在win10 x64系统上搭建了cocos-2dx 4.0的环境,终于成功了,⾎泪史啊!!献上官⽅教程(他太简单了,要是有他说的那么顺利就好了):(这沙雕博客园cnblog的编辑器,竟然不能ctrl + v,提⽰你的浏览器不⽀持该功能请⽤快捷键代替,好在编辑器换成markdown就⾏了,换了也不⾏!但是重新打开编辑器后能粘贴⼀下)(https:///cocos2d-x/v4/zh/installation/Windows.html)[https:///cocos2d-x/v4/zh/installation/Windows.html]注意这个链接,是v4,cocos2dx的版本的教程都不同,别看错了!我这⾥就不把详细流程复述⼀遍了,我也是参考⽹上的教程,但是⽹上的教程良莠不齐,所以本⽂主要是讲解关键步骤,⾼屋建瓴。
装coscos2d-x 需要cmake、python2.7、Visual Studio 2017/2019(注意勾选安装VC编译环境),这个要提前装好。
当然如果不⽤VS,应该也是可以的,那需要的⼯具集就是 cmake、python2.7、mingGw编译环境。
cmake、python2.7 的安装教程⽹上⼀⼤把,⽽且都没什么问题。
visual studio的安装我得专门提⼀下,因为这玩意⼉真是要我⽼命。
⾸先,针对cocos2dx 4.0,安装VS2019是完全可以的!安装VS时,需要下载visual studio installer,打开后,勾选 “使⽤C++的桌⾯开发”,如下图:这时,VS installer会⾃动帮你选择最⼩安装组件,切记,千万不要⾃作主张取消他的安装组件如下所⽰才是正常的:红⾊框是VC编译环境(VS称之为⽣成⼯具)、绿⾊框是win10 SDK,这两者⾮常重要,取消其中任⼀后⾯都会有问题。
我当时,由于⾃⼰已经装过win10 SDK 10.0.20xxxx,于是就取消了勾选绿⾊框,结果后⾯安装好的VS连Hello world都跑不了,提⽰缺少 windowsSDKdir 属性,⽽这玩意⼉,我搜了全⽹也没搞懂怎么弄(据说是注册表的事⼉)。
使用cocos2d-x进行android开发
使用cocos2d-x进行android开发环境搭建1>安装eclipse+adt插件或者adt bundle见eclipse配置android开发环境2>安装sdk和ndk2.1>安装sdk,解压后放在某个目录即可如果采用eclipse+adt插件,那么你还得单独下载sdk。
如果下载adt bundle,那么压缩包中已经含有sdk。
最后在eclipse或adt bundle中配置sdk路径。
2.2>安装ndk,为了使用c++/c进行android开发下载android-ndk-r8e,然后在eclipse或adt bundle中配置ndk路径。
3>无需安装cygwin,新版本的ndk不依赖该编译环境。
4>安装vs 2012,vs2010也可以。
5>安装cocos2d-x下载cocos2d-x-2.1.4,注:cocos2d-x的2.x版本和以前版本有差异。
官网推荐2.x以后的版本使用python脚本建立项目。
5.1>下载python并安装,然后设置环境变量。
5.2>使用python脚本建立项目进入cocos2d-x-2.1.4\tools\project-creator目录下,执行:python create_project.py -project HelloWorld -package com.wanrue.wuchao -language cpp 其中,HelloWorkd为项目名,com.wanrue.wuchao为包名。
执行后效果如图:执行之后,会在相应的cocos2d-x-2.1.4\cocos2d-x-2.1.4\projects目录下找到刚建立的HelloWorld工程,其目录结构如下图:在proj.win32中进行windows环境的开发。
等功能成熟,再引入android环境。
用eclipse 或adt bundle打开proj.android即可进行android调用cocos2d-x开发。
cocos2dx菜鸟教程
cocos2dx菜鸟教程Cocos2dx菜鸟教程Cocos2dx是一个开源的跨平台游戏开发框架,适用于开发2D和3D游戏。
本教程将介绍Cocos2dx的基本概念和使用方法,适合初学者。
第一步,安装Cocos2dx1. 下载Cocos2dx框架并解压至指定目录。
2. 配置Cocos2dx环境变量。
3. 创建新的Cocos2dx项目。
第二步,了解Cocos2dx的基本概念1. 游戏场景(Scene):游戏中的一个场景,包含角色、背景、音效等内容。
2. 图层(Layer):作为场景的一部分,可以添加和显示游戏对象。
3. 精灵(Sprite):游戏中的角色或游戏对象,可以移动、旋转等。
4. 动画(Animation):将连续的帧组合成一个动画效果。
5. 物理引擎(Physics Engine):模拟物体之间的力学效果,使游戏更加真实。
第三步,创建一个简单的游戏1. 新建一个Cocos2dx项目。
2. 创建游戏场景,并在场景中添加精灵和动画。
3. 添加游戏逻辑,如碰撞检测、得分计算等。
4. 编译并运行游戏。
第四步,进阶1. 学习使用Cocos Studio创建UI界面。
2. 使用Cocos2dx实现多人联网游戏。
3. 优化游戏性能,减少资源占用和加载时间。
4. 发布游戏,将其打包成可执行文件或移植到其他平台。
总结本教程介绍了Cocos2dx的基本概念和使用方法,希望能帮助菜鸟们快速入门。
在学习过程中,可以参考官方文档和其他教程,不断提升自己的技术水平。
祝大家在Cocos2dx游戏开发的道路上取得成功!。
Cocos2d-JS极速调试技巧资料
素材归纳不易,仅供学习参考主要介绍:JavaScript强化教程—— Cocos2d-JS极速调试技巧本文教大家一个调试Cocos2d-JS的小技巧,我都是这么用的,特意来告诉大家这个轻量快速的调试技巧。
1.首先我们需要安装官方的cocos引擎,没错,银色图标那个qq1.png,全名有且仅有"Cocos"那个(很多人都搞错)。
安装完进入安装目录E:\DevelopTools\cocos\Cocos\cocos-simulator-bin\win32,记得这里有个Simulator.exeqq2.png,所以我们要把这个目录路径添加到系统环境变量path中。
qq3.png添加完就可以在命令行用Simulator.exe打开模拟器了,方便吧。
如果打不开就重新打开命令行窗口,再不行就注销或者重启。
1437016091479310.png2.在cocos商店下载安装cocos Framwork3.6,有了这个就可以新建工程了qq5.png准备工作完成了。
进入正题。
cmd输入cocos new -l js TestJs -d E:\来新建项目。
qq6.png进入项目目录,新建debug.bat文件,记事本打开,内容如下:1437016185135960.pngSimulator -workdir E:\TestJsqq8.png双击debug.bat文件运行,是不是运行了?很快,还能F5刷新,而且带了一个命令行窗口,我们log日志就输出在这个命令窗口。
1437016415466008.png我们接下来试试log输出。
我们在main.js的cc.game.onStart函数的最开头加入1cc.log('test debug skill');qw1.png运行,在小黑窗上真的有输出了。
qw2.png再修改log代码qw3.pngF5一下,小黑窗又重新打开了(log日志清空了)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
COCOS2D-X配置手册(Win32、Android)编制:刘勤熙李育完成日期:2012-1-19目录1. 引言 (3)2. cocos2d-x Win32环境配置 (3)2.1 win32开发环境配置 (3)2.1.1 Visual Studio 2008 (3)2.1.2 cocos2d-x (3)2.1.3 (可选)Visual Assist X (3)2.1.4 (可选)doxygen (4)2.2 Win32 可执行文件生成过程 (5)2.3 常见问题总汇 (7)3 cocos2d-x Android 环境配置 (8)3.1 android开发环境配置 (8)3.1.1 Eclipse 3.7.1 (8)3.1.2 Eclipse ADT插件 (8)3.1.3 Eclipse CDT插件 (10)3.1.4 AndroidSDK (12)3.1.5 AndroidNDK (13)3.1.6 Cygwin (13)3.2 Android可执行文件生成过程 (15)3.2.1 前期准备 (15)3.2.2 生成Android空工程 (15)3.2.3 交叉编译so文件 (15)3.2.4 生成android系统可用的apk文件 (16)3.3 常见问题汇总 (18)4其它 (18)1.引言略……一切需要的软件及插件版本号以笔者使用为准,其它版本号的软件及插件不保证有效。
文件下载地址在2012-1-19确认有效,不保证因各种原因导致下载地址失效。
开发平台操作系统为win32(WindowsXP、WindowsVista、Windows7)2.cocos2d-x Win32环境配置2.1 win32开发环境配置2.1.1 Visual Studio 2008安装VisualStudio2008,默认安装即可,如果是自定义安装,VisualC++组件应选中。
2.1.2 cocos2d-x1. 下载cocos2d-x引擎最新版官方下载地址为:/p/cocos2d-x/downloads/list(当前使用版本为cocos2d-1.0.1-x-0.10.0.zip)2.将cocos2d-1.0.1-x-0.10.0.zip解压缩至硬盘任意目录(建议D:\Work7\cocos2d-1.0.1-x-0.10.0\, 因为现在wophone的开发环境必须安装至此, 以下以此为例)3. 如果想查看引擎源代码,可以在.\cocos2dx\proj.win32目录下找到代码配置文件。
2.1.3 (可选)Visual Assist X用来提高VisualStudio2008的工作效率, 可以安装此工具。
安装支持VS2008版本的任意一版,无需配置。
本软件是收费软件,需要注册。
技巧:如果不想让V AX对注释中的拼写进行校正(即去掉单词下面的波浪线提示),可以选择Visual Assist X Option,进行如下配置:2.1.4 (可选)doxygen安装工具 doxygen 1.7.6.1 Win32版本(本例用, 本工具为开源软件)运行 doxygen, 选择 file->open找到 "D:\Work7\cocos2d-1.0.1-x-0.10.0\doxygen\" 目录下的doxygen.cocos2d-x文件, 并打开(此文件为cocos2d-x代码的 doxygen 配置文档)然后选择 run 选项卡, 点击 rundoxygen 按钮开始生成.生成完成后, 在 "D:\Work7\cocos2d-1.0.1-x-0.10.0\doxygen\" 目录下, 可以看到帮助文件夹通过修改doxygen的一些设置, 可以很方便的生成各种标准的帮助文档.2.2 Win32 可执行文件生成过程1. 运行cocos2d-x 解压目录根目录下面的build-win32.bat(..\..\build-win32.bat), 生成debug库文件, 执行成功后, 库文件保存在.\Debug.win32 下.2. 运行..\..\install-templates-msvc.bat, 将项目模板加入VS2008模板库。
3. 将.\Debug.win32目录下的所有dll文件拷贝至Windows\system32\4. 打开VS2008 IDE, 选择VisualC++工程. 新建一个项目, 可以看到新加入的cocos2d模板选择第一项, cocos2d-win32 applivation, 为项目任意命名(因为这一版无论怎样命名, 生成的工程文件都是helloword), 然后在向导栏选择默认值, 直接点finish.进入项目设计界面.5. 依次选择工具->选项->项目和解决方案->VC++目录在包含文件栏, 加入下列项目D:\Work7\cocos2d-1.0.1-x-0.10.0\Box2DD:\Work7\cocos2d-1.0.1-x-0.10.0\CocosDenshion\includeD:\Work7\cocos2d-1.0.1-x-0.10.0\cocos2dx\platform\third_party\win32\OGLES D:\Work7\cocos2d-1.0.1-x-0.10.0\cocos2dx\platform\win32D:\Work7\cocos2d-1.0.1-x-0.10.0\cocos2dx\platformD:\Work7\cocos2d-1.0.1-x-0.10.0\cocos2dx\includeD:\Work7\cocos2d-1.0.1-x-0.10.0\cocos2dxD:\Work7\cocos2d-1.0.1-x-0.10.0D:\Work7\cocos2d-1.0.1-x-0.10.0\chipmunk\include\chipmunkD:\Work7\cocos2d-1.0.1-x-0.10.0\cocos2dx\platform\third_party\win32(上面红色部分第一个是重力引擎, 第二个应该是个网络连接的东西)在库文件栏, 加入D:\Work7\cocos2d-1.0.1-x-0.10.0\Debug.win32(引用的是该目录下的所有Lib文件)(发布时用release目录下的!!)6. 点击VS9 IDE的启动调试按钮, 正常情况可以编译通过, 并显示 helloworld页面看到这个页面, 表示win32环境配置成功.2.3 常见问题总汇1. 错误:"error PRJ0019: 某个工具从以下位置返回了错误代码"(及类似错误)"引用了一个%$#$#@.."处理:include 设置有误.dll没有放在正确位置2. 错误:"LNK1000: Internal error during IncrBuildImage""....上一个增量链接没有生成它;正在执行完全链接..."处理:这是微软的一个漏洞, 下载KB948127补丁, 安装即可.如果不能正常安装, 也可以把VS9中的增量编译关掉:项目名处点右键, 依次选择->属性->配置属性->链接器->常规->启用增量链接(否)以后再遇上此类问题, 可以尝试再次编译或者清理后重新生成.3. 错误:"....error LNK2019: 无法解析的外部符号...."处理:lib没有添加依赖工程点右键->属性->配置属性->链接器->输入附加依赖项填入以下lib文件libcocos2d.lib libgles_cm.lib libBox2d.lib libchipmunk.lib libcurl_imp.lib libCocosDenshion.liblibjpeg.lib libpng.lib liblua.lib libxml2.lib libEGL.lib libzlib.lib libzlib.lib libiconv.libpthreadVCE2.lib(根据实际使用情况填写)3cocos2d-x Android 环境配置3.1 android开发环境配置Android开发需要用到JDK,做程序的都知道……3.1.1 Eclipse 3.7.1下载地址:/downloads/packages/eclipse-classic-371/indigosr1选择对应的连接进行下载(32位操作系统或64位操作系统)eclipse为全绿色开发工具,直接解压缩后即可使用。
3.1.2 Eclipse ADT插件该插件是Eclipse平台下用来开发Android 应用程序的插件。
打开eclipse3.7.1选择Help-> Software Updates,在Work with栏填入https:///android/eclipse/等待eclipse 搜索完成后,会在主视窗中列出ADT插件下载项目,全部选择,点击Next按钮。
再次点选Next按钮后出现软件许可窗口,需要勾选同意,然后点击Finish按钮eclipse会开始下载ADT插件。
完成后重新启动可以在File->New->Project菜单下找到Android Project 证明ADT更新成功3.1.3 Eclipse CDT插件安装CDT插件的目的为令eclipse可以识别由C/C++开发的代码,对其进行编译。
CDT可以从/cdt/downloads.php下载到,对应eclipse3.7.1的CDT插件版本为CDT8.0.1。
下载完成后,启动eclipse,选择Help-> Software Updates,点击ADD按钮选择archive,选择下载好的CDT插件zip文件(cdt-master-8.0.1.zip)然后OK确认,勾选全部安装项目,点击next按钮eclipse会开始安装。
同样,在安装过程中有一次同意软件协议选项的勾选。
完成后eclipse会要求重启软件,OK即可。
重启eclipse后选择New->Projec会发现eclipse 已经支持C/C++项目。
3.1.4 AndroidSDKAndroid SDK可以从/sdk/index.html下载到,截止到2012-1-19最新版本为r16,请选择对应windows操作系统位数进行下载。
下载完成后解压到任意路径即可,解压后路径内不包含任何SDK,还需要运行SDK Manager.exe进行SDK包下载。