对于想了解Cocos2D-Android-1之源码详解:1.Cocos2D的读者,本文将提供新的信息,我们将详细介绍cocos2d源码分析,并且为您提供关于关于cocos2dx接Androidsdk的
对于想了解Cocos2D-Android-1之源码详解:1.Cocos2D的读者,本文将提供新的信息,我们将详细介绍cocos2d源码分析,并且为您提供关于
- Cocos2D-Android-1之源码详解:1.Cocos2D(cocos2d源码分析)
关于cocos2dx接Android sdk的一些坑 - android cocos2d-x 放到 vs 项目下,用于拷贝 cocos2s 及 GUILibs 的脚本
- Bullet(Cocos2dx)之交叉编译Android,集成到cocos2dx3.x
- Cocos2d Android 移植手记(二)——cocos2d Android 包框架设计
Cocos2D-Android-1之源码详解:1.Cocos2D(cocos2d源码分析)
/*
* copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License,Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.cocos2d;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.ListActivity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;
public class Cocos2D extends ListActivity {//这个类用了ListActivity
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //继承 ListActivity 的onCreate方法 //以下是设置list里的适配器
setlistadapter(new SimpleAdapter(this,//新的简单适配器,运用了自己的上下文
(List<Map<String,?>>)getData("org.cocos2d.tests"),//getData是个方法,getData(String)往下看有方法的声明
android.R.layout.simple_list_item_1,new String[]{"title"},
new int[]{android.R.id.text1}));
getListView().setTextFilterEnabled(true);//启用过滤窗口
}
protected List<?> getData(String prefix) {//即上述方法
List<Map<String,?>> myData = new ArrayList<Map<String,?>>();//一个用来盛放map的list,map立盛放String
Intent mainIntent = new Intent(Intent.ACTION_MAIN,null);//意图指定跳到系统桌面
mainIntent.addCategory(Intent.CATEGORY_TEST);//供测试使用
PackageManager pm = getPackageManager();//包控制器,用来获得现在有的进程
List<ResolveInfo> list = pm.queryIntentActivities(mainIntent,0);//通过Intent查找相关的Activity,更准确
if (null == list)//没找到那个测试意图
return myData;//就结束
/* 以下是个没有被使用的方法用来分割字符串,用/
String[] prefixPath;
if (prefix.equals("")) {
prefixPath = null;
} else {
prefixPath = prefix.split("/");
}*/
int len = list.size();//得到list的长度
// Map<String,Boolean> entries = new HashMap<String,Boolean>();//一个没有被使用的map,用了哈希类型的map
for (int i = 0; i < len; i++) {
ResolveInfo info = list.get(i);//用来循环刚才得到的那个list
String activityName = info.activityInfo.name;//得到activity的名字
if (prefix.length() == 0 || activityName.startsWith(prefix)) {//如果要查找的那个activity的包名长度为0或者与我们要找的那个名字是以这个开头的
String[] labelPath = activityName.split("\\.");//把包名用.分开
String nextLabel = labelPath[labelPath.length - 1];//得到最后一个.后面的名字,即类名
addItem(myData,nextLabel,activityIntent(//现在把他添加到mydata的集合,这个方法在后面会出现,就是分别把各种信息用map区分了
info.activityInfo.applicationInfo.packageName,
info.activityInfo.name));
}
}
Collections.sort(myData,sdisplayNameComparator);//Collections是个很有用的集合,其中有个sort是用来排序的,参数中sdisplayNameComparator是个比较方法
return myData;
}
//下面这个定义,乍一看是方法,其实是个字段,定义一个比较方法的引用
private final static Comparator<Map<String,?>> sdisplayNameComparator = new Comparator<Map<String,?>>() {//对那个引用的实现
private final Collator collator = Collator.getInstance();//新疆一个集合
public int compare(Map<String,?> map1,Map<String,?> map2) {//两个的比较规则
return collator.compare(map1.get("title"),map2.get("title"));//就是比较他们字符的那种方法,就是从左到右一个一个字母,比ascll码
}
};
protected Intent activityIntent(String pkg,String componentName) {
Intent result = new Intent();
result.setClassName(pkg,componentName);//设置意图从哪个包到哪个类
return result;
}
protected Intent browserIntent(String path) {
Intent result = new Intent();
result.setClass(this,Cocos2D.class);//设置从哪个class到哪
result.putExtra("org.cocos2d.tests.Path",path);//加一个额外的变量
return result;
}
protected void addItem(List<Map<String,?>> data,String name,Intent intent) {
Map<String,Object> temp = new HashMap<String,Object>();
temp.put("title",name);
temp.put("intent",intent);
data.add(temp);//对data添加项目
}
@Override
protected void onListItemClick(ListView l,View v,int position,long id) {
Map<String,?> map = (Map<String,?>) l.getItemAtPosition(position);//得到点击了哪个包
Intent intent = (Intent) map.get("intent");//找到那个类全名
startActivity(intent);//打开那个类
}
}
关于cocos2dx接Android sdk的一些坑
简单说说UI线程 :在Android中,有个非常重要的家伙非常霸道,那就是UI线程。这霸道之一:不能被阻塞。 之二:系统对每一个组件的调用都从UI线程分发出去。
简单说说openGL线程:但凡cocos2dx 启动的绘制线程都是openGL线程。就这么多
任何SDK界面的调用,必须从UI线程中调用,所以需要放到主线程中。如果我们直接从GL线程中调用,轻则调用不了,重者程序蹦死。
解决办法:
得到主线程的handler,这里简单说一种,就是在onCreate中new一个静态handler。
或者new Handler(Looper.getMainLooper()),且叫mainHandler吧,
启动一个线程,
Thread sendThread=new Thread(new Runnable(){ public void run() { mainHandler.post(sendRun); } });
public Runnable sendRun=new Runnable() { @Override public void run() { // //这里就可以调用sdk里面的东西了
} };
</pre><pre name="code"><span>如何从UI线程中调用OpenGL线程呢,直接调用,我以前也干过,感觉没什么问题被发现(he he),如果发现了问题我觉得还是这么调用的好</span>
</pre><pre name="code">Cocos2dxGLSurfaceView.getInstance().queueEvent(new Runnable() { public void run() { <span> </span>//回调什么马的 } });至于想知道,jni native什么的 还请出门右拐,不送
android cocos2d-x 放到 vs 项目下,用于拷贝 cocos2s 及 GUILibs 的脚本

echo. echo.
set LOG=InstallWizardLog.txt set Project_DIR=.
set Source_DIR=D:\cocos2dx\cocos2d-2.1rc0-x-2.1.2
set CocoStudioLib_DIR=D:\cocos2dx\templates\
if not exist %Project_DIR%cocos2dx md %Project_DIR%cocos2dx xcopy %Source_DIR%cocos2dx %Project_DIR%cocos2dx /S/E/Y/Q
if not exist %Project_DIR%CocosDenshion md %Project_DIR%CocosDenshion xcopy %Source_DIR%CocosDenshion %Project_DIR%CocosDenshion /S/E/Y/Q
if not exist %Project_DIR%external md %Project_DIR%external xcopy %Source_DIR%external %Project_DIR%external /S/E/Y/Q
if not exist %Project_DIR%extensions md %Project_DIR%extensions xcopy %CocoStudioLib_DIR%extensions %Project_DIR%extensions /S/E/Y/Q
echo 按任意键结束 pause exit
Bullet(Cocos2dx)之交叉编译Android,集成到cocos2dx3.x
首先将src文件夹复制到jni文件夹,没有可以新建一个
新建两个文件Android.mk,Application.mk
Application.mk内容如下:
APP_ABI:=armeabiarmeabi-v7ax86
APP_PLATFORM:=android-8
APP_STL:=stlport_static
Android.mk内容如下:
LOCAL_PATH:=$(callmy-dir)
include$(CLEAR_VARS)
LOCAL_MODULE :=bullet_static(可随便起)
LOCAL_MODULE_FILENAME:=libbullet(可随便起)
LOCAL_C_INCLUDES:=src/(头文件位置)
(源文件,要列出所有用到的,这里用到BulletSoftBodyBulletDynamics
BulletCollisionsLinearMath)
LOCAL_SRC_FILES := src/BulletSoftBody/btSoftBody.cpp\ src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp \ src/BulletSoftBody/btSoftBodyHelpers.cpp \ src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp \ src/BulletSoftBody/btSoftRigidCollisionAlgorithm.cpp \ src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp \ src/BulletSoftBody/btSoftSoftCollisionAlgorithm.cpp \ src/BulletSoftBody/btDefaultSoftBodySolver.cpp \ src/BulletDynamics/Character/btKinematicCharacterController.cpp \ src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp \ src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp \ src/BulletDynamics/ConstraintSolver/btFixedConstraint.cpp \ src/BulletDynamics/ConstraintSolver/btGearConstraint.cpp \ src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp \ src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp \ src/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp \ src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp \ src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp \ src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp \ src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp \ src/BulletDynamics/ConstraintSolver/btNNCGConstraintSolver.cpp \ src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp \ src/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp \ src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp \ src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp \ src/BulletDynamics/Dynamics/btdiscreteDynamicsWorld.cpp \ src/BulletDynamics/Dynamics/btRigidBody.cpp \ src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp \ src/BulletDynamics/Vehicle/btRaycastVehicle.cpp \ src/BulletDynamics/Vehicle/btWheelInfo.cpp \ src/BulletDynamics/Featherstone/btMultiBody.cpp \ src/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp \ src/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp \ src/BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.cpp \ src/BulletDynamics/Featherstone/btMultiBodyConstraint.cpp \ src/BulletDynamics/Featherstone/btMultiBodyPoint2Point.cpp \ src/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp \ src/BulletDynamics/MLcpsolvers/btDantzigLCP.cpp \ src/BulletDynamics/MLcpsolvers/btMLcpsolver.cpp \ src/BulletDynamics/MLcpsolvers/btLemkeAlgorithm.cpp \ src/BulletCollision/broadphaseCollision/btAxisSweep3.cpp \ src/BulletCollision/broadphaseCollision/btbroadphaseProxy.cpp \ src/BulletCollision/broadphaseCollision/btCollisionAlgorithm.cpp \ src/BulletCollision/broadphaseCollision/btDbvt.cpp \ src/BulletCollision/broadphaseCollision/btDbvtbroadphase.cpp \ src/BulletCollision/broadphaseCollision/btdispatcher.cpp \ src/BulletCollision/broadphaseCollision/btMultiSapbroadphase.cpp \ src/BulletCollision/broadphaseCollision/btOverlappingPairCache.cpp \ src/BulletCollision/broadphaseCollision/btQuantizedBvh.cpp \ src/BulletCollision/broadphaseCollision/btSimplebroadphase.cpp \ src/BulletCollision/Collisiondispatch/btActivatingCollisionAlgorithm.cpp \ src/BulletCollision/Collisiondispatch/btBoxBoxCollisionAlgorithm.cpp \ src/BulletCollision/Collisiondispatch/btBox2dBox2dCollisionAlgorithm.cpp \ src/BulletCollision/Collisiondispatch/btBoxBoxDetector.cpp \ src/BulletCollision/Collisiondispatch/btCollisiondispatcher.cpp \ src/BulletCollision/Collisiondispatch/btCollisionObject.cpp \ src/BulletCollision/Collisiondispatch/btCollisionWorld.cpp \ src/BulletCollision/Collisiondispatch/btCollisionWorldImporter.cpp \ src/BulletCollision/Collisiondispatch/btCompoundCollisionAlgorithm.cpp \ src/BulletCollision/Collisiondispatch/btCompoundCompoundCollisionAlgorithm.cpp \ src/BulletCollision/Collisiondispatch/btConvexConcaveCollisionAlgorithm.cpp \ src/BulletCollision/Collisiondispatch/btConvexConvexAlgorithm.cpp \ src/BulletCollision/Collisiondispatch/btConvexPlaneCollisionAlgorithm.cpp \ src/BulletCollision/Collisiondispatch/btConvex2dConvex2dAlgorithm.cpp \ src/BulletCollision/Collisiondispatch/btDefaultCollisionConfiguration.cpp \ src/BulletCollision/Collisiondispatch/btEmptyCollisionAlgorithm.cpp \ src/BulletCollision/Collisiondispatch/btGhostObject.cpp \ src/BulletCollision/Collisiondispatch/btHashedSimplePairCache.cpp \ src/BulletCollision/Collisiondispatch/btInternalEdgeUtility.cpp \ src/BulletCollision/Collisiondispatch/btManifoldResult.cpp \ src/BulletCollision/Collisiondispatch/btSimulationIslandManager.cpp \ src/BulletCollision/Collisiondispatch/btSphereBoxCollisionAlgorithm.cpp \ src/BulletCollision/Collisiondispatch/btSphereSphereCollisionAlgorithm.cpp \ src/BulletCollision/Collisiondispatch/btSphereTriangleCollisionAlgorithm.cpp \ src/BulletCollision/Collisiondispatch/btUnionFind.cpp \ src/BulletCollision/Collisiondispatch/SphereTriangleDetector.cpp \ src/BulletCollision/CollisionShapes/btBoxShape.cpp \ src/BulletCollision/CollisionShapes/btBox2dShape.cpp \ src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp \ src/BulletCollision/CollisionShapes/btCapsuleShape.cpp \ src/BulletCollision/CollisionShapes/btCollisionShape.cpp \ src/BulletCollision/CollisionShapes/btCompoundShape.cpp \ src/BulletCollision/CollisionShapes/btConcaveShape.cpp \ src/BulletCollision/CollisionShapes/btConeshape.cpp \ src/BulletCollision/CollisionShapes/btConvexHullShape.cpp \ src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp \ src/BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp \ src/BulletCollision/CollisionShapes/btConvexpolyhedron.cpp \ src/BulletCollision/CollisionShapes/btConvexShape.cpp \ src/BulletCollision/CollisionShapes/btConvex2dShape.cpp \ src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp \ src/BulletCollision/CollisionShapes/btCylinderShape.cpp \ src/BulletCollision/CollisionShapes/btEmptyShape.cpp \ src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp \ src/BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp \ src/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.cpp \ src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp \ src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp \ src/BulletCollision/CollisionShapes/btpolyhedralConvexShape.cpp \ src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp \ src/BulletCollision/CollisionShapes/btShapeHull.cpp \ src/BulletCollision/CollisionShapes/btSphereShape.cpp \ src/BulletCollision/CollisionShapes/btStaticPlaneshape.cpp \ src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp \ src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp \ src/BulletCollision/CollisionShapes/btTriangleBuffer.cpp \ src/BulletCollision/CollisionShapes/btTriangleCallback.cpp \ src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp \ src/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp \ src/BulletCollision/CollisionShapes/btTriangleMesh.cpp \ src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp \ src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp \ src/BulletCollision/Gimpact/btContactProcessing.cpp \ src/BulletCollision/Gimpact/btGenericPoolAllocator.cpp \ src/BulletCollision/Gimpact/btGImpactBvh.cpp \ src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp \ src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp \ src/BulletCollision/Gimpact/btGImpactShape.cpp \ src/BulletCollision/Gimpact/btTriangleShapeEx.cpp \ src/BulletCollision/Gimpact/gim_Box_set.cpp \ src/BulletCollision/Gimpact/gim_contact.cpp \ src/BulletCollision/Gimpact/gim_memory.cpp \ src/BulletCollision/Gimpact/gim_tri_collision.cpp \ src/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp \ src/BulletCollision/NarrowPhaseCollision/btConvexCast.cpp \ src/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.cpp \ src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp \ src/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp \ src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp \ src/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp \ src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp \ src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp \ src/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.cpp \ src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp \ src/BulletCollision/NarrowPhaseCollision/btpolyhedralContactClipping.cpp \ src/LinearMath/btAlignedAllocator.cpp \ src/LinearMath/btConvexHull.cpp \ src/LinearMath/btConvexHullComputer.cpp \ src/LinearMath/btGeometryUtil.cpp \ src/LinearMath/btPolarDecomposition.cpp \ src/LinearMath/btQuickprof.cpp \ src/LinearMath/btSerializer.cpp \ src/LinearMath/btVector3.cpp
最后还要加上一句,表示生成静态库如果将STATIC该文SHARED则生成动态库
include$(BUILD_STATIC_LIBRARY)
然后进入命令行
进入jni所在目录
ndk-build
等待编译完成
将三个目录下的libbullet.a分别复制到cocos2dx的安装目录下的
安装目录\Cocos\frameworks\cocos2d-x\prebuilt\android\相应文件下
进入Cocos\frameworks\cocos2d-x\external
新建文件夹Bullet,在Bullet下新建prebuild-mk
将Box2D\prebuild-mk下的Android.mk复制到Bullet/prebuild-mk
修改如下3行
LOCAL_MODULE:=bullet_static
LOCAL_MODULE_FILENAME:=libbullet
LOCAL_SRC_FILES:=../../../prebuilt/android/$(TARGET_ARCH_ABI)/libbullet.a
复制头文件
将bullet3的src的所有文件复制到新建的Bullet文件下
删除不是.h的所有文件
下一步任务繁重,
将所有用到BulletCollisionBulletDynamicsBulletSoftBodyLinearMath目录下的include都加上Bullet/,可以使用Notepad++在Bullet目录搜索Bullet,并替换为Bullet/Bullet,LinearMath并替换为Bullet/LinearMath
进入Cocos\frameworks\cocos2d-x\cocos\prebuilt-mk
在Android.mk
在LOCAL_WHOLE_STATIC_LIBRARIES+=Box2d_static下面添加
LOCAL_WHOLE_STATIC_LIBRARIES+=bullet_static
$(callimport-module,Box2D/prebuilt-mk)下面添加
$(callimport-module,Bullet/prebuilt-mk)
至此已经完成编译静态库
下载地址
Cocos2d Android 移植手记(二)——cocos2d Android 包框架设计
随着 android 平台的推广和 android 手机的大量推出,有人预言 android 将是一个嵌入式的统一平台。果真如此吗?Apple,Microsoft, nokia 不会坐视不管的,在想想 unix 各种混乱的版本,总让人忧心忡忡。不过有 google 这位大神做东,至少在短期内,android 会很稳定,市场会有一席之地。目前,网上很少有使用 java 开发的开源游戏引擎,大多数情况下都因为 java 的执行效率问题。不过,既然 google 官方提供了 opengles 的支持,为什么不试下呢?至少程序员可以不担心硬件层的差异了。
“万事开头难”,由于第一次研究游戏引擎,脑子里也是一头雾水,所以模仿 cocos2d 的结构,初步定义了部分包和类。欢迎大家多提意见。
cocos2d android 包框架图:
com.moandroid: 包含程序的入口类 | |
Class: | |
main:派生自 ListActivity 的入口类,可以浏览 tests 包中的所有 Activity。 | |
R:android 资源类 | |
com.moandroid.cocos2d: cocos2d 中的常用高级类 | |
Class: | |
Cocos2d:保存 cocos2d 的基本信息,例如:当前的版本号,移植的版本号等 | |
com.moandroid.cocos2d.action: cocos2d 中用于定义对象行为的类 | |
Class: | |
Action: 所有行为的基类 | |
Animate | |
BezierBy | |
Blink | |
CameraAction | |
DelayTime | |
EaseAction | |
EaseExponentialIn | |
EaseExponentialOut | |
EaseIn | |
EaseInOut | |
EaseOut | |
EaseRateAction | |
EaseSineIn | |
EaseSineInOut | |
EaseSineOut | |
FadeIn | |
FadeOut | |
FadeTo | |
FiniteTimeAction | |
IntervalAction | |
JumpBy | |
JumpTo | |
MoveBy | |
MoveTo | |
OrbitCamera | |
Repeat | |
RepeatForever | |
ReverseTime | |
RotateBy | |
RotateTo | |
ScaleBy | |
ScaleTo | |
Sequence | |
Spawn | |
Speed | |
TintTo | |
TintBy | |
com.moandroid.cocos2d.cocoslive: cocos2d 用于网络通讯的类 | |
Class: | |
com.moandroid.cocos2d.effects: cocos2d 中各种特效类 | |
Class: | |
com.moandroid.cocos2d.experimental: cocos2d 中实验阶段的类 | |
Class: | |
com.moandroid.cocos2d.external: cocos2d 中使用到的其他第三方的库和类 | |
Class: | |
com.moandroid.cocos2d.image: cocos2d 中用于处理图片的类 | |
Class: | |
com.moandroid.cocos2d.nodes:cocos2d 中可用于渲染的数据类型 | |
Class: | |
CocosNode:所有可渲染对象的基类 | |
Layer:层 | |
Scene:场景 |
com.moandroid.cocos2d.opengles:cocos2d 中支持 opengles 的视图类 | |
Class: | |
GLSurfaceView:用于绘制 Opengl ES 的视图类 |
com.moandroid.cocos2d.particles: cocos2d 中的用于粒子效果的类 | |
Class: | |
com.moandroid.cocos2d.renderer:cocos2d 中的渲染类 | |
Class: | |
CubeRenderer:渲染 cube 对象的 render | |
Director | |
FastDirector |
com.moandroid.cocos2d.tests:cocos2d 中用于测试的类 | |
Class: | |
OpenglesTest: 测试 OpenglES 基本框架的类 |
com.moandroid.cocos2d.types: cocos2d 中使用的基本数据类型 | |
Class: | |
ccColorB: 颜色值(字节表示) | |
ccColorF: 颜色值(浮点数表示) | |
ccGridSize: 网格大小 | |
ccPointSprite: 点精灵 | |
ccQuad2:2 维变换矩阵 | |
ccQuad3:3 维变换矩阵 | |
ccRGBB:RGB 值(字节表示) | |
ccTime: 时间类 | |
ccVertex3D: 顶点 |
目前工程只完成了部分类的实现,所以类结构可能会不断变化,我会在以后持续更新上面的表格。
文章出处:http://www.moandroid.com/?p=729
关于Cocos2D-Android-1之源码详解:1.Cocos2D和cocos2d源码分析的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于
本文标签: