码迷,mamicode.com
首页 > 其他好文 > 详细

Cocos2dx学习笔记一

时间:2015-06-15 23:30:39      阅读:381      评论:0      收藏:0      [点我收藏+]

标签:

目录:

第一部分:Cocos2d-x介绍

第二部分:Windows 7环境下Visual Studio 2012中搭建Cocos2d-x 3.3beta0集成开发环境

第三部分:HelloWorld示例详解

 

一、        Cocos2d-x介绍

  1. Cocos2d-x是一个开源的移动2D游戏框架,MIT许可证下发布的。这是一个C++ Cocos2d-iPhone项目的版本。Cocos2d-X发展的重点是围绕Cocos2d跨平台,Cocos2d-x提供的框架。手机游戏,可以写在C++或者Lua中,使用API是Cocos2d-iPhone完全兼容。Cocos2d-x项目可以很容易地建立和运行在iOS,Android,黑莓Blackberry等操作系统中。Cocos2d-x还支持Windows、Mac和Linux等桌面操作系统,因此,开发者编写的源代码很容易在桌面操作系统中编辑和调试。
  2. 为什么使用这个游戏框架?

——它使用标准C和C++语音开发,跨平台性非常好,目前来说主流的平台它都支持。如:只需要写一份代码就可以在Android平台和IOS平台运行。目前我们所看见的几乎所有的2D游戏都是使用这个游戏框架来开发的(原因在于其API设计非常合理,使用非常方便)

  3. Cocos2d  -iPhone是使用objective C语音进行开发,只能运行在ios平台。

                Cocos2d-x是这个框架的一个C++语言版的实现,是跨平台的。

       Cocos2d-html5使用javascript语言开发。

  4. http://cocos2d-x.org/官网

  5. learn中可以看到开发人员的帮助文档http://cocos2d-x.org/wiki/Cocos2d-x

  6. Reference中可以看到该框架中每个类的说明http://www.cocos2d-x.org/reference/native-cpp/V3.3rc0/index.html

 

二、Windows 7环境下Visual Studio 2012中搭建Cocos2d-x 3.3beta0集成开发环境。

步骤:

  1. windows下Cocos2d-x 3.3beta0集成开发环境配置
  2. 创建并运行Cocos2d-x工程
  3. 如何把cocos2d-x程序编译成Android程序

需要的文件:

  1. cocos2d-x-3.3beta0.zip
  2. python-2.7.8.msi
  3. apache-ant-1.9.4-bin.zip
  4. adt-bundle-windows-x86_64-20140702.zip
  5. android-ndk-r9d-windows-x86_64.zip

(实际上还需要先安装好Eclipse和Visual Studio 2012并配置好相应环境变量)

 

(一) windows下Cocos2d-x 3.3beta0集成开发环境配置

1.  安装Python,设置环境变量(计算机—右键属性—高级系统设置—环境变量—用户变量)Path,添加路E:\Cocos2D\Python27,测试:cmd-python;

2.  将上面的几个压缩包解压到一个自定义安装目录中(需要注意的是路径不可以有空格,这是后面配置NDK的必要条件);

3.  cmd-进入cocos2d-x-3.3beta0路径,dir一下,然后运行setup.py

1)       配置NDK_ROOT(该路径绝对不可以有空格):

E:\Cocos2D\adt-bundle-windows-x86_64-20140702\android-ndk-r9d

(这个是我自己解压到adt-bundle-windows-x86_64-20140702中去的)

2)       配置ANDROID_SDK_ROOT:

E:\Cocos2D\adt-bundle-windows-x86_64-20140702\sdk

3)       配置ANT_ROOT:

E:\Cocos2D\Cocos2D\apache-ant-1.9.4\bin

4.  测试:cmd-cocos;

 技术分享

(二)创建并运行Cocos2d-x工程

方法一:使用cocos2d-x-3.0beta2\tools\project-creator中的create_project.py来创建

 技术分享

双击create_project.py

 技术分享

如图键入工程名、包名,选择工程路径和所使用的语言,单击creat按钮。

 技术分享

创建成功后可以在E:\Cocos2D\cocos2dx\HelloC++看到它有Android、mac、linux、win32平台,选择win32平台

 技术分享

双击打开HelloC++,使用Visual Studio 2012打开解决方案。并按F5运行。

 技术分享

 技术分享

方法二:在命令行中创建

1.  cmd-进入想要用来创建Cocos2d-x工程的目录(①e: ②cd E:\Cocos2D\cocos2dx),使用cocos new HelloCC -l cpp -p com.jikexueyuan.hellocc -d .在当前目录下创建HelloCC工程,使用c++语言,包名为com.jikexueyuan.hellocc;

2.  创建完成后使用explorer .来打开用来创建Cocos2d-x工程的目录,打开proj.win32目录,双击HelloCC.sln使用Visual Studio 2012打开解决方案。

3.  在解决方案资源管器中打开Classes目录,双击HelloWorldScene.cpp,这就是程序源代码,按F5编译运行。

 技术分享

(三)把cocos2d-x程序编译成Android程序

1. 方法一cmd-进入想要编译成Android程序的Cocos2d-x工程HelloCC的目录(①e: ②

E:\Cocos2D\cocos2dx\HelloCC),使用cocos compile -p android编译直接生成apk;

在此过程中遇到的问题如下:

1)       报错“java 显示不是内部或外部命令,也不是可运行程序”,原因是java的环境变量没有设置好。新建系统变量JAVA_HOME,值为:e:\Program Files\Java\jdk1.7.0_67\,然后在系统变量path里面增加%JAVA_HOME%\bin;

2)       报错“Unable to resolve project target ‘android-10‘”,意思是本机的安卓AVD版本没有Cocos2d-x工程指定的版本。解决方法是Download the API10 for Android, I did it from the Android SDK manager.

3)       另外遇到两个奇葩的问题,但不影响编译成apk:

①在一开始编译的时候会报错。我们使用cocos compile –p android>1.txt将编译信息放到1这个txt文本文件中。可以看到一开始的报错如下:

ERROR: SWT folder ‘‘ does not exist.

Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.

 技术分享

网查原因为Android环境配置中出现了空格,测试cmd-android h是可以成功的:

 技术分享

②报错如下:

 技术分享

但是检查C:\Windows\System32下的java.exe是没有问题的:

 技术分享

 技术分享

     以上这两个问题虽然一直出现,但不会影响编译成api,成功的截图如下:

 技术分享

编译成功。

Apk目录为E:\Cocos2D\cocos2dx\HelloCC\bin\debug\android,可直接将其发送到手机上安装运行,下图为在手机中运行的截图。

 技术分享

  1. 方法二 手动将本机代码编译成库,然后用Eclipse把它打包成Android应用程序。

1)       cmd-进入E:\Cocos2D\cocos2dx\HelloCC\proj.android,执行build_native.py生成so文件。

2)       打开Eclipse(注意Eclipse的工作空间不能和myEclipse一致),import

E:\Cocos2D\cocos2dx\HelloCC\proj.android(导入时就已经在执行编译的操作,此时cmd中也在编译,可将cmd关闭)。

 技术分享

 技术分享

如果导入Eclipse后报错:”Cocos2dxActivity cannot be resolved…”。解决的方法是将

E:\Cocos2D\cocos2dx\HelloCC\cocos2d\cocos\platform\android\java\src目录下的org目录(此为Android为我们提供的源代码)直接拖到Eclipse中的HelloCC的src目录下(-copy films and folders-yes),这样就将系统提供的类拷贝进来了。

3)       此时打开libs目录下可以看到它已经生成的本机库文件

 技术分享

Run as android application:

技术分享 

这种方法在Eclipse中运行有时成功有时失败,至今还没有找到原因。无妨,可以直接用前一种方法自动生成APK文件。

三、    HelloWorld示例详解

在Visual Studio 2012打开项目解决方案

  1. 应用程序的开始方法:

 技术分享

bool AppDelegate::applicationDidFinishLaunching() {

    // initialize director

    auto director = Director::getInstance();//获取一个Director:

    auto glview = director->getOpenGLView();//创建一个EGLView来呈现图形

    if(!glview) {

        glview = GLViewImpl::create("My Game");

        director->setOpenGLView(glview);

    }

 

    // turn on display FPS

    director->setDisplayStats(true);// 设置是否呈现帧频数据

 

    // set FPS. the default value is 1.0/60 if you don‘t call this

    director->setAnimationInterval(1.0 / 60);// 设置帧频

 

    // create a scene. it‘s an autorelease object

    auto scene = HelloWorld::createScene();//创建Scene(场景)

 

    // run

director->runWithScene(scene);// 开始执行,启动这个场景(启动后就可以呈现内容)

 

    return true;

}

  2. class HelloWorld : public cocos2d::Layer

 技术分享

class HelloWorld : public cocos2d::Layer

{// HelloWorld是一个layer类,继承自layer,其父级容器是一个scene

public:

    // there‘s no ‘id‘ in cpp, so we recommend returning the class instance pointer

    static cocos2d::Scene* createScene();//创建scene

 

    // Here‘s a difference. Method ‘init‘ in cocos2d-x returns bool, instead of returning ‘id‘ in cocos2d-iphone

    virtual bool init(); 

   

    // a selector callback

    void menuCloseCallback(cocos2d::Ref* pSender);

   

    // implement the "static create()" method manually

    CREATE_FUNC(HelloWorld);

};

  3. Scene* HelloWorld::createScene()

 技术分享

Scene* HelloWorld::createScene()

{

    // ‘scene‘ is an autorelease object

    auto scene = Scene::create();//创建一个scene

   

    // ‘layer‘ is an autorelease object

    auto layer = HelloWorld::create();//创建一个layer

 

    // add layer as a child to scene

    scene->addChild(layer);//将layer添加到scene中

 

    // return the scene

    return scene;//将scene实例返回

}

Cocos2dx学习笔记一

标签:

原文地址:http://www.cnblogs.com/qianqianjun/p/4579409.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!