1、Rokon+summaryRokon引擎主要类介绍com.stickycoding.rokon包:Rokon:提供静态函数和属性属性:circle,Polygon实例,圆形 rectangle,Polygon实例,矩形。Sprite类的polygon属性默认为该矩形函数:getActivity(),获取当前activity实例-RokonActivity:Activity子类,提供基本的引擎参数设置和视图转换onCreate(),入口函数,子类须覆写该函数,在该函数中设置全屏,横(竖)屏,界面尺寸,创建引擎,实例化自定义类createEngine(),创建只包含SurfaceView的引擎cr
2、eateEngine(booleancreateRelativeLayout),参数为true创建包含SurfaceView和RelativeLayout的引擎,RalativeLayout可添加其他Android组件。以下4个函数须在createEngine前调用:forceFullscreen(),全屏forceGameSize(floatwidth, floatheight),设置游戏界面尺寸forceLandscape(),横屏,同时须在AndroidManifest.xml中设置属性android:screenOrientation=landscapeforcePortrait(),
3、竖屏,同时须在AndroidManifest.xml中设置属性android:screenOrientation=portraitonLoadComplete(),引擎创建成功后自动调用,须在子类中覆写,在该函数中初始化要使用到的所有图片Texture,以及调用setScene显示当前的Scenedispose(),退出游戏时自动调用进行垃圾回收,若子类有自定义的类实例,须覆写该函数并在函数体内设置object = nullgetGameHeight(),获取界面高getGameWidth(),获取界面宽getInterface(),获取createEngine中创建的RalativeLayo
4、ut实例,可向其添加其他组件getScene(),获取当前显示的Scene实例setDrawPriority(intdrawPriority),设置绘图模式,0VBO模式,1一般模式,默认为0,一般不需要自己调用setGameSize(floatwidth, floatheight),设置游戏界面尺寸,和forceGameSize不同之处在于:若参数宽高与实际手机屏幕尺寸不一致,会根据屏幕宽高比重新设置界面宽,并返回宽度值setGraphicsPath(java.lang.Stringpath),设置图片资源根目录路径,游戏图片资源均放在assets/graphics下setScene(Sce
5、nescene),设置当前要显示的Scene实例disableBack(),back键不起作用,若自定义了退出按钮事件,则可调用该函数屏蔽back键的退出功能enableBack(),back键起作用,默认值-Scene:场景类,包含若干层(Layer)属性:activity,RokonActivity实例引用构造函数:Scene(),创建默认只有1个层,该层最多包含32个绘制对象的场景Scene(intlayerCount),创建layerCount个层,每个层都最多包含32个绘制对象的场景Scene(intlayerCount, intlayerObjectCount),创建layerCo
6、unt个层,每个层都最多包含layerObjectCount个绘制对象的场景Scene(intlayerCount, intlayerObjectCount),创建layerCount个层,每个层包含的绘制对象个数由layerObjectCount数组指定抽象函数,须在子类中覆写,覆写的函数体可为空onReady(),在RokonActivity的setScene中自动调用,在该函数中可获取到activity,构造函数中获取activity为空onGameLoop(),游戏逻辑循环,一直都在调用onPause(),游戏暂停时调用,比如来电onResume(),游戏恢复时调用,比如挂断电话重新回
7、到游戏add(GameObjectdrawableObject),添加一个GameObject到第一层(索引号为0)add(intlayerIndex, GameObjectdrawableObject),添加一个GameObject到指定层(索引号)clear(),删除所有绘制对象clearLayer(intindex),删除某层中的所有绘制对象moveLayer(intstartIndex, intendIndex),移动层序switchLayers(intlayer1, intlayer2),互换层序例:初始层序0,1,2.,调用moveLayer(0,2)后,层序变为1,2,0.;调用
8、switchLayer(0,2)后,层序变为2,1,0.getLayer(intindex),根据索引号获取某层实例getWindow(),获取窗体实例getWorld(),获取World实例,box2d使用setBackground(Backgroundbackground),设置界面背景,参数其实为FixedBackground实例(Background的子类)setLayer(intindex, Layerlayer),替换某层setWindow(Windowwindow),设置游戏窗体setWorld(Worldworld),设置box2d世界remove(DrawableObject
9、drawableObject),删除某个绘制对象removeWindow(),删除游戏窗体removeWorld(),删除box2d世界onTouch(floatx, floaty, MotionEventevent, intpointerCount, intpointerId) ,游戏区域点击onTouchReal(floatx, floaty, MotionEventevent, intpointerCount, intpointerId),实际屏幕点击isPhysicsPaused(),物理引擎是否暂停pausePhysics(),暂停物理引擎resumePhysics(),恢复物理引擎
10、noPhysics(),不使用物理引擎,默认设置usePhysics(),使用物理引擎,setWorld中会调用stopInvoke(),关闭类外函数调用useInvoke(),启动类外函数调用,在Sprite类中某些动作执行开始和结束时会调用Scene类的函数,函数名参看Sprite类源代码toastLong(java.lang.Stringmessage),显示长消息toastShort(java.lang.Stringmessage),显示短消息invoke(Callbackcallback)invoke(java.lang.StringmethodName)invoke(java.la
11、ng.Stringmethod,java.lang.Classparam,java.lang.ObjectparamVal)invoke(java.lang.StringmethodName, java.lang.ObjectparamValues)以上4个函数作用都是调用该类的方法,等同于直接:函数名(参数)的调用方式onFadeEnd(DrawableObject object),绘制对象渐现(失)完后调用,可在子类覆写onMoveEnd(DimensionalObject object),画布对象移动完后调用,可在子类覆写,注:只有调用DimensionalObject的move函数来移
12、动对象,最后运动停止才会调用该方法onEndScene(),转换到另一场景时释放当前场景资源,自动调用,需在子类中覆写该函数以释放自定义类实例-Layer:层,包含在Scene中,所有绘制对象均添加于层中。Layer实例已在Scene有初始化,若需要自定义子类继承Layer,则应调用Scene.setLayer函数设置为自定义层显示构造函数:Layer(SceneparentScene, intmaximumDrawableObjects),创建位于父场景parentScene中,最多包含maximumDrawableObjects个绘制对象的层add(GameObjectdrawableOb
13、ject),添加一个Gameobject对象clear(),删除层中的所有对象getGameObject(intindex),获取某个绘制对象setDrawOrder(inttype),设置绘图次序类型,一共6种类型,取值0,1,2,3,4,5,默认为0,详见DrawOrder类ignoreWindow(),忽略窗体绘制useWindow(),依赖窗体绘制,默认使用isUsingWindow(),是否依赖窗体-Sprite:精灵类,继承GameObject,该类为一层层继承下来,请熟悉其继承关系!子类包含:LineSprite, PhysicalSprite, PolygonSprite, T
14、extSprite, TiledSprite构造函数:Sprite(floatx, floaty, floatwidth, floatheight),根据坐标和宽高创建精灵onRemove(),精灵被删除时自动调用,子类需覆写该函数,设置类变量为nullonUpdate(),状态属性更新函数,在该函数中改变精灵的位移,旋转角度等accelerate(floatacceleration, floatangle),沿某一角度(弧度为单位)加速运动,该角度相对于y轴accelerate(floatacceleration, floatangle, floatterminalVelocity)沿某一角
15、度(弧度为单位)加速运动,当线速度大于等于terminalVelocity时,以terminalVelocity值匀速运动accelerateX(floataccelerationX),水平方向加速运动accelerateX(floataccelerationX, floatterminalSpeedX),水平方向加速运动,当线速度大于等于terminalSpeedX时,以terminalSpeedX值匀速运动accelerateY(floataccelerationY),垂直方向加速运动accelerateY(floataccelerationY, floatterminalSpeedY)
16、,垂直方向加速运动,当线速度大于等于terminalSpeedY时,以terminalSpeedY值匀速运动addModifier(Modifiermodifier),添加一个Modifier实例,最多能同时添加8个modifier。Modifier类作用:持续一段时间改变Sprite属性值,需要自定义其子类,在子类中实现函数体。比如alpha值,可呈现闪动效果removeModifier(Modifiermodifier),删除某一个modifierclearModifiers(),删除添加的所有modifiersgetPolygon(),获取精灵的外观形状,一般为矩形getVertex(i
17、ntindex),获取精灵的某一个顶点坐标,会依据旋转和缩放而改变setPolygon(Polygonpolygon),设置精灵的形状,box2d使用setSpeed(intx, inty),设置水平和垂直方向上的速度(位移)setVelocity(floatvelocity, floatangle),设置沿某一角度方向运动的速度intersects(Spritesprite),碰撞检测,判断是否和其他精灵相交stop(),停止所有运动,旋转和位移moveTo(floatx, floaty, longtime)moveTo(floatx, floaty, longtime, inttype)m
18、oveTo(floatx, floaty, longtime, inttype, Callbackcallback)以上3个函数均为设置一段时间内移动到某点,type通常设置为Movement.LINEAR,详见Movement 类;callback可设置运动完后的回调函数,若Scene的useInvoke为true,运动完后则会调用Scene中名为(name)_onMoveToComplete的函数(须在Scene子类中自定义),请参看Sprite源代码!rotateTo(floatangle, intdirection, inttime, inttype)rotateTo(floatang
19、le, intdirec, inttime, inttype, Callbackcallback)以上2个函数为设置一段时间旋转到某个角度,direction为精灵类自定义常量ROTATE_TO_ANTI_CLOCKWISE(逆时针),ROTATE_TO_CLOCKWISE(顺时针),ROTATE_TO_AUTOMATIC(根据当前精灵角度和要旋转至的角度自动判断逆或顺时针旋转);callback可设置旋转完后的回调函数,若Scene的useInvoke为true,运动完后则会调用Scene中名为(name)_onRotateToComplete的函数(须在Scene子类中自定义),请参看Sp
20、rite源代码!-GameObject:继承DrawableObject,Sprite的父类isAdded(),是否已添加到场景中isTouchable(),是否接收触摸事件removeTouchable(),设置为不可触摸setTouchable(),设置为可触摸-DrawableObject,继承BasicGameObject,GameObject的父类,不能接收触摸事件animate(intanimationTiles, longframeTime),自定义播放动画帧序列,以frameTime时间间隔一直循环播放animate(intanimationTiles, longframeTi
21、me, intloops, booleanreturnToStart),自定义播放动画帧序列,以frameTime时间间隔播放loops次,returnToStart为true表示动画结束显示第一帧animate(intstartTile, intendTile, longframeTime),从startTile帧播放至endTile帧,以frameTime时间间隔一直循环播放animate(intstartTile, intendTile, longframeTime, intloops, booleanreturnToStart),从startTile帧播放至endTile帧,以fram
22、eTime时间间隔播放loops次,returnToStart为true表示动画结束显示第一帧fade(floatstartAlpha, floatalpha, inttime, intmovementType),从初始startAlpha值经历一段时间time后变为alpha值,movementType取值通常为Movement.LINEAR,实现对象的渐现(失)fade(floatalpha, inttime)fade(floatalpha, inttime, intmovementType)从当前透明度值经历一段时间time后变为alpha值forceDrawType(intdrawTy
23、pe),设置对象绘制类型,3种类型,取值0,1,2,详见DrawPriority,一般不需要调用该函数getParentLayer(),获取父层getTextureTile(),获取当前显示的帧序号getZ(),获取该对象的层序setAlpha(floatalpha),设置透明度setBorder(booleanborder),设置是否有边框setBorder(floatred, floatgreen, floatblue, floatalpha),设置边框颜色,仅对没有图片呈现的对象起作用,会绘制一个边框setZ(intz),设置该对象层序,影响对象绘制先后顺序。调用该函数后,须调用laye
24、r.setDrawOrder(DrawOrder.Z_ORDER)才会起作用noBorder(),设置无填充setTexture(Texturetexture),设置需呈现的图片Texture实例setTextureTile(inttileIndex),设置显示某帧图片,从0计数setTextureTile(intcolumn, introw),设置显示图片上某行某列的帧图片setTextureTile(Texturetexture, inttileIndex),设置需呈现的图片Texture实例和要显示的某帧图片show(),显示对象hide(),隐藏对象isAlive(),对象是否存活,若
25、已删除了该对象,则为false,否则为trueisOnScreen(),是否在屏幕可视区域内isVisible(),是否可见stopFade(),停止渐现(失)动画remove(),删除该对象,等价于Scene.remove(drawableObject)onRemove(),删除对象时自动调用,如有必要,须在子类中覆写onUpdate(),动画播放和渐现(失)更新函数-BasicGameObject:继承RotationalObject,DrawableObject的父类attemptInvoke(Callbackcallback)attemptInvoke(java.lang.String
26、methodSuffix) attemptInvoke(java.lang.StringmethodSuffix, java.lang.ClassparameterTypes, java.lang.Objectparameters)attemptInvoke(java.lang.StringmethodSuffix, java.lang.Objectparameters)调用父场景(Scene)的函数,相当于scene.name_methodName()getParentScene(),获取父场景getId(),获取该对象id号getName(),获取该对象名setId(intid),设置对象
27、id号setName(java.lang.Stringname),设置对象名,若不设置对象名,attemptInvoke不会调用scene的函数-RotationalObject:继承DimensionalObject,BasicGameObject的父类,只是比DimensionalObject多了旋转属性的控制rotate(floatrotation),旋转rotation(弧度)rotateAboutCentre(),设置以中心点旋转rotateAboutPoint(floatrotationPivotX, floatrotationPivotY),设置以参数指定参考点旋转setRotation(floatrotation),设置角度setRotation(floatrotation, floatrotationPivotX, floatrotationPivotY),以参考点设置角度-DimensionalObject:继承Point,子类包括RotationalObject和Windowcentre(floatx, floaty),以中心点为参考点放置对象move(floatx, floaty, floatwidth, floatheight, inttime)move(floatx, floaty, floatwidth, floatheight
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1