asysbang
标题:
入门教程
[打印本页]
作者:
admin
时间:
2013-6-5 11:55
标题:
入门教程
本地环境
ubuntu:11.04 -32位
ndk:android-ndk-r8e
gcc:4.5.2
1、下载Cocos2d-x
http://cocos2d.cocoachina.com/download
2、编译samples/Cpp/HelloCpp
运行proj.android/build_native.sh生成libhellocpp.so
遇到问题
/home/test/android-ndk-r8/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: Dwarf Error:
mangled line number section.
这个是本地gcc版本和ndk不一致导致的问题
解决办法:下载最新的ndk :android-ndk-r8e
3、运行apk
先把cocos2d-2.1rc0-x-2.1.2/cocos2dx/platform/android/java 这个导入到eclipse
再把HelloCpp导入eclipse运行(因为project.properties 里面定义了android.library.reference.1=../../../../cocos2dx/platform/android/java)
4、修改main.cpp
例如添加LOGD("add log just for test"); 需要重新运行build_native.sh 才能生效
5、创建自己的项目
修改create-android-project.sh配置本地的NDK_ROOT_LOCAL和ANDROID_SDK_ROOT_LOCAL
运行create-android-project.sh 根据提示完成项目创建
运行自己的项目,需要把android:icon修改下。。。。。
作者:
admin
时间:
2013-10-22 17:01
cocos2d-x-2.2创建项目
cocos2d-x-2.2/tools/project-creator/ 下面create_project.py
Usage: create_project.py -project PROJECT_NAME -package PACKAGE_NAME -language PROGRAMING_LANGUAGE
Options:
-project PROJECT_NAME Project name, for example: MyGame
-package PACKAGE_NAME Package name, for example: com.MyCompany.MyAwesomeGame
-language PROGRAMING_LANGUAGE Major programing lanauge you want to used, should be [cpp | lua | javascript]
Sample 1: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame
Sample 2: ./create_project.py -project MyGame -package com.MyCompany.AwesomeGame -language javascript
创建成功:(创建的是Cpp程序)
New project has been created in this path: /home/xxxx/coco2d-x/cocos2d-x-2.2/projects/MyGame
Have Fun!
创建成功,还是执行proj.android下面build_native.sh 生成so,然后载入项目到eclipse运行(可以考虑用makefile或者ant编译生成apk)
分析项目目录结构
proj.xxxx目录 这个只是一个“壳”,里面的资源保证能够生成对应平台的应用程序
Classes 这个目录里面才是最重要的代码
android应用的“壳”,回调用so库,而库文件会调用AppDelegate 进而调用cocos2d的CCDirector CCScene 等类
Resources 这个目录存放所有资源 (注意执行build_native.sh 会把proj.android下面的asset删掉,然后把Resources目录下面的重新拷贝过去)
修改:
1、去掉左下的FPS
Classes/AppDelegate.cpp 中pDirector->setDisplayStats(true); true 改成 false 即可
2、添加log
CCLOG("=======%s=", "log");
3、添加menu
CCMenuItemImage *menu1 = CCMenuItemImage::create("Images/r1.png", "Images/r2.png", this, menu_selector(HelloWorld::mymenu) );
menu1->setPosition(ccp(origin.x + visibleSize.width /2 , origin.y + menu1->getContentSize().height/2));
CCMenu* pMenu = CCMenu::create(pCloseItem,menu1, NULL);
4、切换场景
参考HelloWorldScene.cpp和HelloWorldScene.h 写一个MyScene.cpp和MyScene.h
修改上面添加的menu的函数
CCScene *pScene = MyScene::scene();
CCDirector::sharedDirector()->replaceScene(pScene);
(注意在proj.android/jni/Android.mk 中添加 ../../Classes/MyScene.cpp \ )
5、添加可以滑动的精灵
参考cocos2d-x-2.2/samples/Cpp/TestCpp/Classes/TouchesTest/Paddle.cpp 在场景中添加一个可以滑动的精灵
6、添加按钮
主要用了CCControlButton这个类
参考EdxtensionsTest/ControlExtensionTest/CCControlButtonTest/CCControlButtonTest.cpp
欢迎光临 asysbang (http://www.asysbang.com/)
Powered by Discuz! X2.5