懒骨头(http://blog.csdn.com/iamlazybone)
谢谢原作者
com.stickycoding.rokon包:
Rokon:提供静态函数和属性
属性:circle,Polygon实例,圆形
rectangle,Polygon实例,矩形。Sprite类的polygon属性默认为该矩形
函数:getActivity(),获取当前activity实例
----------------------------------------------------------------------------------------------------------------------
RokonActivity:Activity子类,提供基本的引擎参数设置和视图转换
onCreate(),入口函数,子类须覆写该函数,在该函数中设置全屏,横(竖)屏,界面尺寸,创建引擎,实例化自定义类
createEngine(),创建只包含SurfaceView的引擎
createEngine(boolean createRelativeLayout),参数为true创建包含SurfaceView和RelativeLayout的引擎,RalativeLayout可添加其他Android组件。以下4个函数须在createEngine前调用:
forceFullscreen(),全屏
forceGameSize(float width, float height),设置游戏界面尺寸
forceLandscape(),横屏,同时须在AndroidManifest.xml中设置属性android:screenOrientation="landscape"
forcePortrait(),竖屏,同时须在AndroidManifest.xml中设置属性android:screenOrientation="portrait"
onLoadComplete(),引擎创建成功后自动调用,须在子类中覆写,在该函数中初始化要使用到的所有图片Texture,以及调用setScene显示当前的Scene
dispose(),退出游戏时自动调用进行垃圾回收,若子类有自定义的类实例,须覆写该函数并在函数体内设置object = null
getGameHeight(),获取界面高
getGameWidth(),获取界面宽
getInterface(),获取createEngine中创建的RalativeLayout实例,可向其添加其他组件
getScene(),获取当前显示的Scene实例
setDrawPriority(int drawPriority),设置绘图模式,0-VBO模式,1-一般模式,默认为0,一般不需要自己调用
setGameSize(float width, float height),设置游戏界面尺寸,和forceGameSize不同之处在于:若参数宽高与实际手机屏幕尺寸不一致,会根据屏幕宽高比重新设置界面宽,并返回宽度值
setGraphicsPath(java.lang.String path),设置图片资源根目录路径,游戏图片资源均放在assets/graphics下
setScene(Scene scene),设置当前要显示的Scene实例
disableBack(),back键不起作用,若自定义了退出按钮事件,则可调用该函数屏蔽back键的退出功能
enableBack(),back键起作用,默认值
----------------------------------------------------------------------------------------------------------------------
Scene:场景类,包含若干层(Layer)
属性:activity,RokonActivity实例引用
构造函数:
Scene(),创建默认只有1个层,该层最多包含32个绘制对象的场景
Scene(int layerCount),创建layerCount个层,每个层都最多包含32个绘制对象的场景
Scene(int layerCount, int layerObjectCount),创建layerCount个层,每个层都最多包含layerObjectCount个绘制对象的场景
Scene(int layerCount, int[] layerObjectCount),创建layerCount个层,每个层包含的绘制对象个数由layerObjectCount数组指定
抽象函数,须在子类中覆写,覆写的函数体可为空
onReady(),在RokonActivity的setScene中自动调用,在该函数中可获取到activity,构造函数中获取activity为空
onGameLoop(),游戏逻辑循环,一直都在调用
onPause(),游戏暂停时调用,比如来电
onResume(),游戏恢复时调用,比如挂断电话重新回到游戏
add(GameObject drawableObject),添加一个GameObject到第一层(索引号为0)
add(int layerIndex, GameObject drawableObject),添加一个GameObject到指定层(索引号)
clear(),删除所有绘制对象
clearLayer(int index),删除某层中的所有绘制对象
moveLayer(int startIndex, int endIndex),移动层序
switchLayers(int layer1, int layer2),互换层序
例:初始层序〔0,1,2...〕,调用moveLayer(0,2)后,层序变为〔1,2,0...〕;调用switchLayer(0,2)后,层序变为〔2,1,0...〕
getLayer(int index),根据索引号获取某层实例
getWindow(),获取窗体实例
getWorld(),获取World实例,box2d使用
setBackground(Background background),设置界面背景,参数其实为FixedBackground实例(Background的子类)
setLayer(int index, Layer layer),替换某层
setWindow(Window window),设置游戏窗体
setWorld(World world),设置box2d世界
remove(DrawableObject drawableObject),删除某个绘制对象
removeWindow(),删除游戏窗体
removeWorld(),删除box2d世界
onTouch(float x, float y, MotionEvent event, int pointerCount, int pointerId) ,游戏区域点击
onTouchReal(float x, float y, MotionEvent event, int pointerCount, int pointerId),实际屏幕点击
isPhysicsPaused(),物理引擎是否暂停
pausePhysics(),暂停物理引擎
resumePhysics(),恢复物理引擎
noPhysics(),不使用物理引擎,默认设置
usePhysics(),使用物理引擎,setWorld中会调用
stopInvoke(),关闭类外函数调用
useInvoke(),启动类外函数调用,在Sprite类中某些动作执行开始和结束时会调用Scene类的函数,函数名参看Sprite类源代码
toastLong(java.lang.String message),显示长消息
toastShort(java.lang.String message),显示短消息
invoke(Callback callback)
invoke(java.lang.String methodName)
invoke(java.lang.String method,java.lang.Class<?>[] param,java.lang.Object[] paramVal)
invoke(java.lang.String methodName, java.lang.Object[] paramValues)
以上4个函数作用都是调用该类的方法,等同于直接:函数名(参数)的调用方式
onFad