catcake-android 3D游戏编程 第一章 catcake-android环境搭建

   最近迷恋上了3d游戏,于是开始寻找android智能终端上的3d引擎,终于找到了一个性能和易用度都比较高的开源引擎catcake,经过一晚上的折腾,终于在andriod模拟器上跑起来了第一个helloworld程序。具体的步骤如下:

 

1、从catcake的google托管地址(http://code.google.com/p/catcake/)下载catcake-0.9.5-android.tar.gz文件,

    下载后随便解压该文件到磁盘目录,这个目录称为${CATCAKE_HOME}

2、打开eclipse,导入${CATCAKE_HOME}\sample\project\android\hello-catcake工程。(没有安装好eclipse的   android环境和配置好ndk 的朋友,请百度或者google)


catcake-android 3D游戏编程 第一章 catcake-android环境搭建

 

3、进入hello-catcake中的jni目录,在dos或者shell下输入ndk-build,开始编译libhello-catcake.so

 

4、本人的开发环境是windows,于是打开cygwin开始编译,但是报了一大堆错误,百度一下发现需要catcake的include目录中的.h和.c文件,于是${CATCAKE_HOME}\include和${CATCAKE_HOME}\lib文件夹拷贝到工程中的jni目录中

 

5、切换到cygwin,执行ndk-build,结果神奇般的通过了,cygwin打印如下:

    Install        : libhello_catcake.so => libs/armeabi/libhello_catcake.so

 

6、好了,在eclipse中运行该项目,我选择的目标模拟器的api版本为3.0,几分钟后发现项目在模拟中安装好了,但是点击运行该apk时,屏幕一闪而过,eclipse中logcat也没有任何的调试信息。百度,goole没有发现任何有价值的信息,于是怀疑是否模拟器版本问题。于是马上换了3个2.0的,2.2和2.3的版本的模拟器,结果还是一样。没辙了,切换到eclipse中的jni目录,打开main.cpp文件,发现以下代码:

 

ckMain()
{
    ckCreateCatcake("Hello Catcake ", 320, 480, 30);

    /*
        The resource files need to be copied to the target by using 'adb push' command like this:
            adb push hello_catcake/data /data/data/catcake_application.hello_catcake/data

        And they must be specified by the absolute paths in ckResMgr::loadResource.
    */
    ckResMgr::loadResource("/data/data/catcake_application.hello_catcake/data/catcake_logo_71x14.png", true);
    ckResMgr::loadResource("/data/data/catcake_application.hello_catcake/data/stonsans.ttf", true);

    newHelloCatcake();

    /*
        ckStartCatcake doesn't block in Catcake for Android.
        So you must not write finalization process such as ckDestroyCatcake after it.
    */
    ckStartCatcake();

 注意其中的注释部分

/*
        The resource files need to be copied to the target by using 'adb push' command like this:
            adb push hello_catcake/data /data/data/catcake_application.hello_catcake/data

        And they must be specified by the absolute paths in ckResMgr::loadResource.
    */

恍然大悟,原来需要将工程下的data目录下的文件push到模拟器中/data/data/catcake_application.hello_catcake/data目录下,于是使用adb push命令将文件推送过去,然后在编译该项目,等待几十秒钟后,出现了如下界面:

下图中的catcake的方框会不停的转动,由于是png截图,因此看不到该效果,有心的读者可以下载附件中的源码,进行编译并运行就可以看到效果。



catcake-android 3D游戏编程 第一章 catcake-android环境搭建

大功告成

 

接下来几章会详细介绍如何使用catcake-android在andriod下开发3D游戏。

 

 

 

你可能感兴趣的:(android)