- 浏览: 118313 次
- 性别:
- 来自: 上海
最新评论
-
dalin89:
...
Android游戏开发之旅五 Path和Typeface -
dalin89:
...
Android游戏开发之旅五 Path和Typeface -
dalin89:
统构造一个字体,这里参
Android游戏开发之旅五 Path和Typeface -
kevin2562:
kevin2562 写道shaobin0604 写道文字的 a ...
android Canvas用法 -
c1007857613:
Android中的Rect和java中的可能稍有区别,后两个 ...
android Canvas用法
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个函数作用都是调用该类的方法,等同于直接:函数名(参数)的调用方式
onFadeEnd(DrawableObject object),绘制对象渐现(失)完后调用,可在子类覆写
onMoveEnd(DimensionalObject object),画布对象移动完后调用,可在子类覆写,注:只有调用DimensionalObject的move函数来移动对象,最后运动停止才会调用该方法
onEndScene(),转换到另一场景时释放当前场景资源,自动调用,需在子类中覆写该函数以释放自定义类实例
----------------------------------------------------------------------------------------------------------------------
Layer:层,包含在Scene中,所有绘制对象均添加于层中。Layer实例已在Scene有初始化,若需要自定义子类继承Layer,则应调用Scene.setLayer函数设置为自定义层显示
构造函数:
Layer(Scene parentScene, int maximumDrawableObjects),创建位于父场景parentScene中,最多包含maximumDrawableObjects个绘制对象的层
add(GameObject drawableObject),添加一个Gameobject对象
clear(),删除层中的所有对象
getGameObject(int index),获取某个绘制对象
setDrawOrder(int type),设置绘图次序类型,一共6种类型,取值0,1,2,3,4,5,默认为0,详见DrawOrder类
ignoreWindow(),忽略窗体绘制
useWindow(),依赖窗体绘制,默认使用
isUsingWindow(),是否依赖窗体
----------------------------------------------------------------------------------------------------------------------
Sprite:精灵类,继承GameObject,该类为一层层继承下来,请熟悉其继承关系!子类包含:LineSprite, PhysicalSprite, PolygonSprite, TextSprite, TiledSprite
构造函数:
Sprite(float x, float y, float width, float height),根据坐标和宽高创建精灵
onRemove(),精灵被删除时自动调用,子类需覆写该函数,设置类变量为null
onUpdate(),状态属性更新函数,在该函数中改变精灵的位移,旋转角度等
accelerate(float acceleration, float angle),沿某一角度(弧度为单位)加速运动,该角度相对于y轴
accelerate(float acceleration, float angle, float terminalVelocity)
沿某一角度(弧度为单位)加速运动,当线速度大于等于terminalVelocity时,以terminalVelocity值匀速运动
accelerateX(float accelerationX),水平方向加速运动
accelerateX(float accelerationX, float terminalSpeedX),水平方向加速运动,当线速度大于等于terminalSpeedX时,以terminalSpeedX值匀速运动
accelerateY(float accelerationY),垂直方向加速运动
accelerateY(float accelerationY, float terminalSpeedY) ,垂直方向加速运动,当线速度大于等于terminalSpeedY时,以terminalSpeedY值匀速运动
addModifier(Modifier modifier),添加一个Modifier实例,最多能同时添加8个modifier。Modifier类作用:持续一段时间改变Sprite属性值,需要自定义其子类,在子类中实现函数体。比如alpha值,可呈现闪动效果
removeModifier(Modifier modifier),删除某一个modifier
clearModifiers(),删除添加的所有modifiers
getPolygon(),获取精灵的外观形状,一般为矩形
getVertex(int index),获取精灵的某一个顶点坐标,会依据旋转和缩放而改变
setPolygon(Polygon polygon),设置精灵的形状,box2d使用
setSpeed(int x, int y),设置水平和垂直方向上的速度(位移)
setVelocity(float velocity, float angle),设置沿某一角度方向运动的速度
intersects(Sprite sprite),碰撞检测,判断是否和其他精灵相交
stop(),停止所有运动,旋转和位移
moveTo(float x, float y, long time)
moveTo(float x, float y, long time, int type)
moveTo(float x, float y, long time, int type, Callback callback)
以上3个函数均为设置一段时间内移动到某点,type通常设置为Movement.LINEAR,详见Movement 类;callback可设置运动完后的回调函数,若Scene的useInvoke为true,运动完后则会调用Scene中名为(name)_onMoveToComplete的函数(须在Scene子类中自定义),请参看Sprite源代码!
rotateTo(float angle, int direction, int time, int type)
rotateTo(float angle, int direc, int time, int type, Callback callback)
以上2个函数为设置一段时间旋转到某个角度,direction为精灵类自定义常量ROTATE_TO_ANTI_CLOCKWISE(逆时针),ROTATE_TO_CLOCKWISE(顺时针),ROTATE_TO_AUTOMATIC(根据当前精灵角度和要旋转至的角度自动判断逆或顺时针旋转);callback可设置旋转完后的回调函数,若Scene的useInvoke为true,运动完后则会调用Scene中名为(name)_onRotateToComplete的函数(须在Scene子类中自定义),请参看Sprite源代码!
----------------------------------------------------------------------------------------------------------------------
GameObject:继承DrawableObject,Sprite的父类
isAdded(),是否已添加到场景中
isTouchable(),是否接收触摸事件
removeTouchable(),设置为不可触摸
setTouchable(),设置为可触摸
----------------------------------------------------------------------------------------------------------------------
DrawableObject,继承BasicGameObject,GameObject的父类,不能接收触摸事件
animate(int[] animationTiles, long frameTime),自定义播放动画帧序列,以frameTime时间间隔一直循环播放
animate(int[] animationTiles, long frameTime, int loops, boolean returnToStart),自定义播放动画帧序列,以frameTime时间间隔播放loops次,returnToStart为true表示动画结束显示第一帧
animate(int startTile, int endTile, long frameTime),从startTile帧播放至endTile帧,以frameTime时间间隔一直循环播放
animate(int startTile, int endTile, long frameTime, int loops, boolean returnToStart),从startTile帧播放至endTile帧,以frameTime时间间隔播放loops次,returnToStart为true表示动画结束显示第一帧
fade(float startAlpha, float alpha, int time, int movementType),从初始startAlpha值经历一段时间time后变为alpha值,movementType取值通常为Movement.LINEAR,实现对象的渐现(失)
fade(float alpha, int time)
fade(float alpha, int time, int movementType)
从当前透明度值经历一段时间time后变为alpha值
forceDrawType(int drawType),设置对象绘制类型,3种类型,取值0,1,2,详见DrawPriority,一般不需要调用该函数
getParentLayer(),获取父层
getTextureTile(),获取当前显示的帧序号
getZ(),获取该对象的层序
setAlpha(float alpha),设置透明度
setBorder(boolean border),设置是否有边框
setBorder(float red, float green, float blue, float alpha),设置边框颜色,仅对没有图片呈现的对象起作用,会绘制一个边框
setZ(int z),设置该对象层序,影响对象绘制先后顺序。调用该函数后,须调用layer.setDrawOrder(DrawOrder.Z_ORDER)才会起作用
noBorder(),设置无填充
setTexture(Texture texture),设置需呈现的图片Texture实例
setTextureTile(int tileIndex),设置显示某帧图片,从0计数
setTextureTile(int column, int row),设置显示图片上某行某列的帧图片
setTextureTile(Texture texture, int tileIndex),设置需呈现的图片Texture实例和要显示的某帧图片
show(),显示对象
hide(),隐藏对象
isAlive(),对象是否存活,若已删除了该对象,则为false,否则为true
isOnScreen(),是否在屏幕可视区域内
isVisible(),是否可见
stopFade(),停止渐现(失)动画
remove(),删除该对象,等价于Scene.remove(drawableObject)
onRemove(),删除对象时自动调用,如有必要,须在子类中覆写
onUpdate(),动画播放和渐现(失)更新函数
----------------------------------------------------------------------------------------------------------------------
BasicGameObject:继承RotationalObject,DrawableObject的父类
attemptInvoke(Callback callback)
attemptInvoke(java.lang.String methodSuffix) attemptInvoke(java.lang.String methodSuffix, java.lang.Class<?>[] parameterTypes, java.lang.Object[] parameters)
attemptInvoke(java.lang.String methodSuffix, java.lang.Object[] parameters)
调用父场景(Scene)的函数,相当于scene.name_methodName()
getParentScene(),获取父场景
getId(),获取该对象id号
getName(),获取该对象名
setId(int id),设置对象id号
setName(java.lang.String name),设置对象名,若不设置对象名,attemptInvoke不会调用scene的函数
----------------------------------------------------------------------------------------------------------------------
RotationalObject:继承DimensionalObject,BasicGameObject的父类,只是比DimensionalObject多了旋转属性的控制
rotate(float rotation),旋转rotation(弧度)
rotateAboutCentre(),设置以中心点旋转
rotateAboutPoint(float rotationPivotX, float rotationPivotY),设置以参数指定参考点旋转
setRotation(float rotation),设置角度
setRotation(float rotation, float rotationPivotX, float rotationPivotY),以参考点设置角度
----------------------------------------------------------------------------------------------------------------------
DimensionalObject:继承Point,子类包括RotationalObject和Window
centre(float x, float y),以中心点为参考点放置对象
move(float x, float y, float width, float height, int time)
move(float x, float y, float width, float height, int time, int movementType),在一段时间内移动并缩放对象
move(float x, float y, int time)
move(float x, float y, int time, int movementType)
在一段时间内移动到某点,当运动完成后会自动调用Scene.onMoveEnd(object)
resize(float width),根据参数宽等比例重新设置对象尺寸
resize(float width, float height, int time)
resize(float width, float height, int time, int movementType)
在一段时间内缩放对象
grow(float width, float height),参数为正,则放大对象;参数为负,缩小对象
shrink(float width, float height),与grow函数相反
scaleFromCentre(float width, float height, int time, int movementType)
以对象中心点为参考点,在一段时间内缩放对象
stopMove(),停止移动
stopScale(),停止缩放
----------------------------------------------------------------------------------------------------------------------
Point:继承Vector2,DimensionalObject的父类
move(float x, float y),移动参数指定的位移
setXY(float x, float y),设置坐标位置
getParent(),获取相对父坐标
setParent(Point point),设置相对父坐标
removeParent(),移除相对父坐标,还原为以原点为参考点
----------------------------------------------------------------------------------------------------------------------
Texture:图片显示的依附体,包含子类:DynamicTexture, FontTexture, TextTexture, TextureAtlas
构造函数:
Texture(java.lang.String filename),以图片名创建一个Texture实例
Texture(java.lang.String filename, int columns, int rows),以图片名和图片行列数创建一个Texture实例,用在小图集成在大图上的情况
getWidth(),获取图片宽度
getHeight(),获取图片高度
getTileWidth(),若图片是小图的集成图,获取单个小图的宽度
getTileHeight(),若图片是小图的集成图,获取单个小图的高度
----------------------------------------------------------------------------------------------------------------------
TextureAtlas:可理解为Texture实例的集合,除了DynamicTexture,其他类型的Texture都可以加入到TextureAtlas,可以提高游戏速度
构造函数:
TextureAtlas(),创建默认最多加载64个Texture,图片宽高最大为1024的实例
TextureAtlas(int maxTextureCount),创建允许加载maxTextureCount个Texture,图片宽高最大为1024的实例
TextureAtlas(int maxTextureCount, int texAtlasWidth, int texAtlasHeight)
创建允许加载maxTextureCount个Texture,图片宽最大为texAtlasWidth,高最大为texAtlasHeight的实例
complete(),添加完所有Texture后,要调用该函数
insert(Texture texture),添加一个Texture实例(除了DynamicTexture)
setUnloaded(),注销添加的所有Texture
----------------------------------------------------------------------------------------------------------------------
TextSprite:用来显示文本
属性:
text,显示的文本
构造函数:
TextSprite(float x, float y, float characterWidth, float height)
创建一个在坐标(x,y)上,单个字符宽为characterWidth,高为height的文本Sprite
setTexture(Texture texture),参数必须为TextTexture实例(通过Font.createTexture(string)创建的TextTexture)!
----------------------------------------------------------------------------------------------------------------------
PhysicalSprite:创建用于box2d物理引擎的sprite
createDynamicBox(FixtureDef fixtureDef)
createStaticBox(FixtureDef fixtureDef)
createKinematicBox(FixtureDef fixtureDef)
创建不同类型的,形状为矩形的PhysicalSprite
createDynamicCircle(FixtureDef fixtureDef)
createStaticCircle(FixtureDef fixtureDef)
createKinematicCircle(FixtureDef fixtureDef)
创建不同类型的,形状为圆形的PhysicalSprite
----------------------------------------------------------------------------------------------------------------------
Font:字体类
属性:
paint,绘制文本的画笔,可用来设置字体样式和颜色
构造函数:
Font(Typeface typeface),以Typeface实例为参数创建一个字体类,Typeface类详见android.graphics.Typeface
createTexture(java.lang.String text),创建一个TextTexture实例
createTexture(java.lang.String text, int width),创建一个指定宽度范围的TextTexture实例
setFontSize(float fontSize),设置字体大小,默认大小为64.0f
----------------------------------------------------------------------------------------------------------------------
Polygon:多边形类,有子类CirclePolygon
构造函数:
Polygon(),创建一个没有顶点的实例,实际编程不会用到这种初始方式
Polygon(float[] vertices),创建包含若干顶点x,y坐标的多边形,坐标以float数组形式提供
Polygon(Point[] vertices),创建包含若干顶点坐标的多边形,坐标以Point数组形式提供
addVertex(float x, float y),添加一个顶点,参数为x,y
addVertex(Point location),添加一个顶点,参数为Point
complete()
findEdges()
以上2个函数其实一样,complete直接调用的findEdges,顶点添加完毕后调用,若是调用了addVertex函数增加了新的顶点,则需要调用该函数
getPolygonShape(),初始化一个PolygonShape实例,box2d使用
getVertex(int index),获取某个顶点Point
getVertexCount(),获取多边形总顶点数
----------------------------------------------------------------------------------------------------------------------
MathHelper:提供实用的静态常量和函数
常量:
DEG_TO_RAD,角度到弧度的转化值,例:degree×DEG_TO_RAD
RAD_TO_DEG,弧度到角度的转化值,例:radians×RAD_TO_DEG
distanceToShape(float x, float y, Sprite sprite),计算某点到精灵的最短距离
intersects(Sprite sprite1, Sprite sprite2),精灵间的碰撞检测,等同于sprite.intersects(otherSprite)
pointInRect(float pointX, float pointY, float x, float y, float width, float height),判断某点是否在矩形内
pointInShape(float x, float y, Sprite sprite),判断某点是否在sprite内
rectOverlap(float rect1X1, float rect1Y1, float rect1X2, float rect1Y2, float rect2X1, float rect2Y1, float rect2X2, float rect2Y2)
判断两矩形是否相交
rotate(float angle, float x, float y, float pivotX, float pivotY)
计算某点(x,y)依照参考点(pivotX,pivotY)旋转angle角度后的新坐标
----------------------------------------------------------------------------------------------------------------------
Callback:回调函数类
Callback(java.lang.String methodName)
创建无参的函数名为methodName的回调
Callback(java.lang.String methodName, java.lang.Class<?>[] parameterTypes, java.lang.Object[] parameters)
创建包含若干参数数据类型,参数值的回调
Callback(java.lang.String methodName, java.lang.Class<?> parameterType, java.lang.Object parameter)
创建包含一个参数类型,参数值的回调
Callback(java.lang.String methodName, java.lang.Object parameter)
创建包含一个参数值的回调
Callback(java.lang.String methodName, java.lang.Object[] parameters)
创建包含若干参数值的回调
----------------------------------------------------------------------------------------------------------------------
Modifier:动态改变精灵属性的类,目前只有Blink子类。需自定义其他子类继承该类实现想要的效果,子类需覆写的函数包括以下3个:
onStart(Sprite sprite),初始化自定义变量函数
onUpdate(Sprite sprite),状态属性持续更新函数
onEnd(Sprite sprite),调用end()函数结束更新时调用
end(),移除modifier实例
getSprite(),获取运行该modifier的精灵引用
----------------------------------------------------------------------------------------------------------------------
Preferences:数据存储类
静态属性:
object,SharedPreferences实例
----------------------------------------------------------------------------------------------------------------------
其他未提及但需要了解的类:Debug,DrawOrder,DrawPriority,Movement,Physics,TextureManager,Time,Window
忽略不看的类:AllocationGuard,BlendFunction,BufferObject,ColourBuffer,FixedSizeArray<T>,FPSCounter,GLHelper,GLSurfaceView,MotionEventWrapper5,MotionEventWrapper8,QuickSorter<Type>,RokonRenderer,RokonSurfaceView,Sorter<Type>,StandardSorter<T>,VBOManager
com.stickycoding.rokon.audio包:提供声音播放的类
RokonAudio:播放音效的类,最多包含50个音效,同时可最多播放5种音效
createSoundFile(java.lang.String filename),根据音频文件名创建一个 SoundFile实例,音频文件必须放在assets文件夹中(子目录也可)
destroy(),释放音频资源,通常在退出游戏时调用
removeSoundFile(SoundFile soundFile),删除某一个SoundFile
setMasterVolume(float masterVolume),设置音量大小,参数取值范围0-1
mute(),静音,仅对音效起作用,对背景音乐无用
unmute(),取消静音
isMuted(),是否静音
----------------------------------------------------------------------------------------------------------------------
SoundFile:音效文件类
getId(),获取该音效id号
play(),播放音效
playContinuous(),重复播放音效
unload(),从内存中删除音效
----------------------------------------------------------------------------------------------------------------------
RokonMusic:播放背景音乐的类,该类均为静态函数
getMediaPlayer(),获取MediaPlayer实例,请见android.media.MediaPlayer
pause(),暂停播放
play(),开始播放
stop(),停止播放
play(java.lang.String file),播放一次某个音频文件
play(java.lang.String file, boolean loop)播放某个音频文件,loop指代是否循环
----------------------------------------------------------------------------------------------------------------------
com.stickycoding.rokon.background包
FixedBackground:背景图片类,继承Background
构造函数:
FixedBackground(Texture texture),创建一个背景图片实例,调用Scene.setBackground(bg)可将其添加到场景上显示
----------------------------------------------------------------------------------------------------------------------
com.stickycoding.rokon.device包
Graphics:获取设备信息的类,均为静态函数
determine(Activity activity),调用该函数后,可获取屏幕尺寸等信息。当调用RokonActivity.createEngine()时已调用该函数。
getWidthPixels(),获取屏幕宽
getHeightPixels(),获取屏幕高
isSupportsVBO(),设备是否支持VBO模式
setSupportsVBO(boolean supportsVBO),设置是否支持VBO模式。不能自己调用
----------------------------------------------------------------------------------------------------------------------
OS:软件API版本,设备支持VBO与否,均为静态变量和函数
属性:
API_LEVEL,软件使用的API最低版本号
determineAPI(),获取版本号并设置运行该应用程序的设备是否支持VBO。当调用RokonActivity.createEngine()时已调用该函数。
----------------------------------------------------------------------------------------------------------------------
Accelerometer:加速计,主要均为静态变量和函数
属性:
minShakeInterval,晃动手机的最小事件间隔,默认值1000ms
shakeThreshold,晃动手机的最小力度,默认值3000
startListening(OnAccelerometerChange onAccelerometerChange),注册一个加速计监听接口
stopListening(),注销监听
----------------------------------------------------------------------------------------------------------------------
OnAccelerometerChange接口:实现加速计处理的接口,包含2个函数需要实现该接口的类实现具体函数体
onAccelerometerChange(float x, float y, float z),手机倾斜时调用,参数为各方向上的值
onShake(float intensity),晃动手机时调用,参数为晃动手机的力度
----------------------------------------------------------------------------------------------------------------------
Vibrator:震动控制,均为静态函数。须在AndroidManifest.xml中添加<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
disable(),禁止震动
enable(),开启震动
vibrate(long time),震动多长时间
vibrate(long[] pattern, int repeat),以pattern定义的数组值在开启和关闭震动间转换,第一个数组值为开启震动前的等待时间,然后转换;repeat表示需要从数组的哪个索引开始循环如此的转换,若不需要循环,则该参数值为-1。
----------------------------------------------------------------------------------------------------------------------
com.stickycoding.rokon.modifiers包
Blink:Modifier子类,实现间隔500ms闪烁精灵,10s后停止闪烁的效果
----------------------------------------------------------------------------------------------------------------------
com.stickycoding.rokon.tileengine包
TiledLayer:继承Layer,包含子类RectangularLayer,呈现tile地图的类
TiledSprite:继承Sprite,添加到TiledLayer的专用精灵类
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个函数作用都是调用该类的方法,等同于直接:函数名(参数)的调用方式
onFadeEnd(DrawableObject object),绘制对象渐现(失)完后调用,可在子类覆写
onMoveEnd(DimensionalObject object),画布对象移动完后调用,可在子类覆写,注:只有调用DimensionalObject的move函数来移动对象,最后运动停止才会调用该方法
onEndScene(),转换到另一场景时释放当前场景资源,自动调用,需在子类中覆写该函数以释放自定义类实例
----------------------------------------------------------------------------------------------------------------------
Layer:层,包含在Scene中,所有绘制对象均添加于层中。Layer实例已在Scene有初始化,若需要自定义子类继承Layer,则应调用Scene.setLayer函数设置为自定义层显示
构造函数:
Layer(Scene parentScene, int maximumDrawableObjects),创建位于父场景parentScene中,最多包含maximumDrawableObjects个绘制对象的层
add(GameObject drawableObject),添加一个Gameobject对象
clear(),删除层中的所有对象
getGameObject(int index),获取某个绘制对象
setDrawOrder(int type),设置绘图次序类型,一共6种类型,取值0,1,2,3,4,5,默认为0,详见DrawOrder类
ignoreWindow(),忽略窗体绘制
useWindow(),依赖窗体绘制,默认使用
isUsingWindow(),是否依赖窗体
----------------------------------------------------------------------------------------------------------------------
Sprite:精灵类,继承GameObject,该类为一层层继承下来,请熟悉其继承关系!子类包含:LineSprite, PhysicalSprite, PolygonSprite, TextSprite, TiledSprite
构造函数:
Sprite(float x, float y, float width, float height),根据坐标和宽高创建精灵
onRemove(),精灵被删除时自动调用,子类需覆写该函数,设置类变量为null
onUpdate(),状态属性更新函数,在该函数中改变精灵的位移,旋转角度等
accelerate(float acceleration, float angle),沿某一角度(弧度为单位)加速运动,该角度相对于y轴
accelerate(float acceleration, float angle, float terminalVelocity)
沿某一角度(弧度为单位)加速运动,当线速度大于等于terminalVelocity时,以terminalVelocity值匀速运动
accelerateX(float accelerationX),水平方向加速运动
accelerateX(float accelerationX, float terminalSpeedX),水平方向加速运动,当线速度大于等于terminalSpeedX时,以terminalSpeedX值匀速运动
accelerateY(float accelerationY),垂直方向加速运动
accelerateY(float accelerationY, float terminalSpeedY) ,垂直方向加速运动,当线速度大于等于terminalSpeedY时,以terminalSpeedY值匀速运动
addModifier(Modifier modifier),添加一个Modifier实例,最多能同时添加8个modifier。Modifier类作用:持续一段时间改变Sprite属性值,需要自定义其子类,在子类中实现函数体。比如alpha值,可呈现闪动效果
removeModifier(Modifier modifier),删除某一个modifier
clearModifiers(),删除添加的所有modifiers
getPolygon(),获取精灵的外观形状,一般为矩形
getVertex(int index),获取精灵的某一个顶点坐标,会依据旋转和缩放而改变
setPolygon(Polygon polygon),设置精灵的形状,box2d使用
setSpeed(int x, int y),设置水平和垂直方向上的速度(位移)
setVelocity(float velocity, float angle),设置沿某一角度方向运动的速度
intersects(Sprite sprite),碰撞检测,判断是否和其他精灵相交
stop(),停止所有运动,旋转和位移
moveTo(float x, float y, long time)
moveTo(float x, float y, long time, int type)
moveTo(float x, float y, long time, int type, Callback callback)
以上3个函数均为设置一段时间内移动到某点,type通常设置为Movement.LINEAR,详见Movement 类;callback可设置运动完后的回调函数,若Scene的useInvoke为true,运动完后则会调用Scene中名为(name)_onMoveToComplete的函数(须在Scene子类中自定义),请参看Sprite源代码!
rotateTo(float angle, int direction, int time, int type)
rotateTo(float angle, int direc, int time, int type, Callback callback)
以上2个函数为设置一段时间旋转到某个角度,direction为精灵类自定义常量ROTATE_TO_ANTI_CLOCKWISE(逆时针),ROTATE_TO_CLOCKWISE(顺时针),ROTATE_TO_AUTOMATIC(根据当前精灵角度和要旋转至的角度自动判断逆或顺时针旋转);callback可设置旋转完后的回调函数,若Scene的useInvoke为true,运动完后则会调用Scene中名为(name)_onRotateToComplete的函数(须在Scene子类中自定义),请参看Sprite源代码!
----------------------------------------------------------------------------------------------------------------------
GameObject:继承DrawableObject,Sprite的父类
isAdded(),是否已添加到场景中
isTouchable(),是否接收触摸事件
removeTouchable(),设置为不可触摸
setTouchable(),设置为可触摸
----------------------------------------------------------------------------------------------------------------------
DrawableObject,继承BasicGameObject,GameObject的父类,不能接收触摸事件
animate(int[] animationTiles, long frameTime),自定义播放动画帧序列,以frameTime时间间隔一直循环播放
animate(int[] animationTiles, long frameTime, int loops, boolean returnToStart),自定义播放动画帧序列,以frameTime时间间隔播放loops次,returnToStart为true表示动画结束显示第一帧
animate(int startTile, int endTile, long frameTime),从startTile帧播放至endTile帧,以frameTime时间间隔一直循环播放
animate(int startTile, int endTile, long frameTime, int loops, boolean returnToStart),从startTile帧播放至endTile帧,以frameTime时间间隔播放loops次,returnToStart为true表示动画结束显示第一帧
fade(float startAlpha, float alpha, int time, int movementType),从初始startAlpha值经历一段时间time后变为alpha值,movementType取值通常为Movement.LINEAR,实现对象的渐现(失)
fade(float alpha, int time)
fade(float alpha, int time, int movementType)
从当前透明度值经历一段时间time后变为alpha值
forceDrawType(int drawType),设置对象绘制类型,3种类型,取值0,1,2,详见DrawPriority,一般不需要调用该函数
getParentLayer(),获取父层
getTextureTile(),获取当前显示的帧序号
getZ(),获取该对象的层序
setAlpha(float alpha),设置透明度
setBorder(boolean border),设置是否有边框
setBorder(float red, float green, float blue, float alpha),设置边框颜色,仅对没有图片呈现的对象起作用,会绘制一个边框
setZ(int z),设置该对象层序,影响对象绘制先后顺序。调用该函数后,须调用layer.setDrawOrder(DrawOrder.Z_ORDER)才会起作用
noBorder(),设置无填充
setTexture(Texture texture),设置需呈现的图片Texture实例
setTextureTile(int tileIndex),设置显示某帧图片,从0计数
setTextureTile(int column, int row),设置显示图片上某行某列的帧图片
setTextureTile(Texture texture, int tileIndex),设置需呈现的图片Texture实例和要显示的某帧图片
show(),显示对象
hide(),隐藏对象
isAlive(),对象是否存活,若已删除了该对象,则为false,否则为true
isOnScreen(),是否在屏幕可视区域内
isVisible(),是否可见
stopFade(),停止渐现(失)动画
remove(),删除该对象,等价于Scene.remove(drawableObject)
onRemove(),删除对象时自动调用,如有必要,须在子类中覆写
onUpdate(),动画播放和渐现(失)更新函数
----------------------------------------------------------------------------------------------------------------------
BasicGameObject:继承RotationalObject,DrawableObject的父类
attemptInvoke(Callback callback)
attemptInvoke(java.lang.String methodSuffix) attemptInvoke(java.lang.String methodSuffix, java.lang.Class<?>[] parameterTypes, java.lang.Object[] parameters)
attemptInvoke(java.lang.String methodSuffix, java.lang.Object[] parameters)
调用父场景(Scene)的函数,相当于scene.name_methodName()
getParentScene(),获取父场景
getId(),获取该对象id号
getName(),获取该对象名
setId(int id),设置对象id号
setName(java.lang.String name),设置对象名,若不设置对象名,attemptInvoke不会调用scene的函数
----------------------------------------------------------------------------------------------------------------------
RotationalObject:继承DimensionalObject,BasicGameObject的父类,只是比DimensionalObject多了旋转属性的控制
rotate(float rotation),旋转rotation(弧度)
rotateAboutCentre(),设置以中心点旋转
rotateAboutPoint(float rotationPivotX, float rotationPivotY),设置以参数指定参考点旋转
setRotation(float rotation),设置角度
setRotation(float rotation, float rotationPivotX, float rotationPivotY),以参考点设置角度
----------------------------------------------------------------------------------------------------------------------
DimensionalObject:继承Point,子类包括RotationalObject和Window
centre(float x, float y),以中心点为参考点放置对象
move(float x, float y, float width, float height, int time)
move(float x, float y, float width, float height, int time, int movementType),在一段时间内移动并缩放对象
move(float x, float y, int time)
move(float x, float y, int time, int movementType)
在一段时间内移动到某点,当运动完成后会自动调用Scene.onMoveEnd(object)
resize(float width),根据参数宽等比例重新设置对象尺寸
resize(float width, float height, int time)
resize(float width, float height, int time, int movementType)
在一段时间内缩放对象
grow(float width, float height),参数为正,则放大对象;参数为负,缩小对象
shrink(float width, float height),与grow函数相反
scaleFromCentre(float width, float height, int time, int movementType)
以对象中心点为参考点,在一段时间内缩放对象
stopMove(),停止移动
stopScale(),停止缩放
----------------------------------------------------------------------------------------------------------------------
Point:继承Vector2,DimensionalObject的父类
move(float x, float y),移动参数指定的位移
setXY(float x, float y),设置坐标位置
getParent(),获取相对父坐标
setParent(Point point),设置相对父坐标
removeParent(),移除相对父坐标,还原为以原点为参考点
----------------------------------------------------------------------------------------------------------------------
Texture:图片显示的依附体,包含子类:DynamicTexture, FontTexture, TextTexture, TextureAtlas
构造函数:
Texture(java.lang.String filename),以图片名创建一个Texture实例
Texture(java.lang.String filename, int columns, int rows),以图片名和图片行列数创建一个Texture实例,用在小图集成在大图上的情况
getWidth(),获取图片宽度
getHeight(),获取图片高度
getTileWidth(),若图片是小图的集成图,获取单个小图的宽度
getTileHeight(),若图片是小图的集成图,获取单个小图的高度
----------------------------------------------------------------------------------------------------------------------
TextureAtlas:可理解为Texture实例的集合,除了DynamicTexture,其他类型的Texture都可以加入到TextureAtlas,可以提高游戏速度
构造函数:
TextureAtlas(),创建默认最多加载64个Texture,图片宽高最大为1024的实例
TextureAtlas(int maxTextureCount),创建允许加载maxTextureCount个Texture,图片宽高最大为1024的实例
TextureAtlas(int maxTextureCount, int texAtlasWidth, int texAtlasHeight)
创建允许加载maxTextureCount个Texture,图片宽最大为texAtlasWidth,高最大为texAtlasHeight的实例
complete(),添加完所有Texture后,要调用该函数
insert(Texture texture),添加一个Texture实例(除了DynamicTexture)
setUnloaded(),注销添加的所有Texture
----------------------------------------------------------------------------------------------------------------------
TextSprite:用来显示文本
属性:
text,显示的文本
构造函数:
TextSprite(float x, float y, float characterWidth, float height)
创建一个在坐标(x,y)上,单个字符宽为characterWidth,高为height的文本Sprite
setTexture(Texture texture),参数必须为TextTexture实例(通过Font.createTexture(string)创建的TextTexture)!
----------------------------------------------------------------------------------------------------------------------
PhysicalSprite:创建用于box2d物理引擎的sprite
createDynamicBox(FixtureDef fixtureDef)
createStaticBox(FixtureDef fixtureDef)
createKinematicBox(FixtureDef fixtureDef)
创建不同类型的,形状为矩形的PhysicalSprite
createDynamicCircle(FixtureDef fixtureDef)
createStaticCircle(FixtureDef fixtureDef)
createKinematicCircle(FixtureDef fixtureDef)
创建不同类型的,形状为圆形的PhysicalSprite
----------------------------------------------------------------------------------------------------------------------
Font:字体类
属性:
paint,绘制文本的画笔,可用来设置字体样式和颜色
构造函数:
Font(Typeface typeface),以Typeface实例为参数创建一个字体类,Typeface类详见android.graphics.Typeface
createTexture(java.lang.String text),创建一个TextTexture实例
createTexture(java.lang.String text, int width),创建一个指定宽度范围的TextTexture实例
setFontSize(float fontSize),设置字体大小,默认大小为64.0f
----------------------------------------------------------------------------------------------------------------------
Polygon:多边形类,有子类CirclePolygon
构造函数:
Polygon(),创建一个没有顶点的实例,实际编程不会用到这种初始方式
Polygon(float[] vertices),创建包含若干顶点x,y坐标的多边形,坐标以float数组形式提供
Polygon(Point[] vertices),创建包含若干顶点坐标的多边形,坐标以Point数组形式提供
addVertex(float x, float y),添加一个顶点,参数为x,y
addVertex(Point location),添加一个顶点,参数为Point
complete()
findEdges()
以上2个函数其实一样,complete直接调用的findEdges,顶点添加完毕后调用,若是调用了addVertex函数增加了新的顶点,则需要调用该函数
getPolygonShape(),初始化一个PolygonShape实例,box2d使用
getVertex(int index),获取某个顶点Point
getVertexCount(),获取多边形总顶点数
----------------------------------------------------------------------------------------------------------------------
MathHelper:提供实用的静态常量和函数
常量:
DEG_TO_RAD,角度到弧度的转化值,例:degree×DEG_TO_RAD
RAD_TO_DEG,弧度到角度的转化值,例:radians×RAD_TO_DEG
distanceToShape(float x, float y, Sprite sprite),计算某点到精灵的最短距离
intersects(Sprite sprite1, Sprite sprite2),精灵间的碰撞检测,等同于sprite.intersects(otherSprite)
pointInRect(float pointX, float pointY, float x, float y, float width, float height),判断某点是否在矩形内
pointInShape(float x, float y, Sprite sprite),判断某点是否在sprite内
rectOverlap(float rect1X1, float rect1Y1, float rect1X2, float rect1Y2, float rect2X1, float rect2Y1, float rect2X2, float rect2Y2)
判断两矩形是否相交
rotate(float angle, float x, float y, float pivotX, float pivotY)
计算某点(x,y)依照参考点(pivotX,pivotY)旋转angle角度后的新坐标
----------------------------------------------------------------------------------------------------------------------
Callback:回调函数类
Callback(java.lang.String methodName)
创建无参的函数名为methodName的回调
Callback(java.lang.String methodName, java.lang.Class<?>[] parameterTypes, java.lang.Object[] parameters)
创建包含若干参数数据类型,参数值的回调
Callback(java.lang.String methodName, java.lang.Class<?> parameterType, java.lang.Object parameter)
创建包含一个参数类型,参数值的回调
Callback(java.lang.String methodName, java.lang.Object parameter)
创建包含一个参数值的回调
Callback(java.lang.String methodName, java.lang.Object[] parameters)
创建包含若干参数值的回调
----------------------------------------------------------------------------------------------------------------------
Modifier:动态改变精灵属性的类,目前只有Blink子类。需自定义其他子类继承该类实现想要的效果,子类需覆写的函数包括以下3个:
onStart(Sprite sprite),初始化自定义变量函数
onUpdate(Sprite sprite),状态属性持续更新函数
onEnd(Sprite sprite),调用end()函数结束更新时调用
end(),移除modifier实例
getSprite(),获取运行该modifier的精灵引用
----------------------------------------------------------------------------------------------------------------------
Preferences:数据存储类
静态属性:
object,SharedPreferences实例
----------------------------------------------------------------------------------------------------------------------
其他未提及但需要了解的类:Debug,DrawOrder,DrawPriority,Movement,Physics,TextureManager,Time,Window
忽略不看的类:AllocationGuard,BlendFunction,BufferObject,ColourBuffer,FixedSizeArray<T>,FPSCounter,GLHelper,GLSurfaceView,MotionEventWrapper5,MotionEventWrapper8,QuickSorter<Type>,RokonRenderer,RokonSurfaceView,Sorter<Type>,StandardSorter<T>,VBOManager
com.stickycoding.rokon.audio包:提供声音播放的类
RokonAudio:播放音效的类,最多包含50个音效,同时可最多播放5种音效
createSoundFile(java.lang.String filename),根据音频文件名创建一个 SoundFile实例,音频文件必须放在assets文件夹中(子目录也可)
destroy(),释放音频资源,通常在退出游戏时调用
removeSoundFile(SoundFile soundFile),删除某一个SoundFile
setMasterVolume(float masterVolume),设置音量大小,参数取值范围0-1
mute(),静音,仅对音效起作用,对背景音乐无用
unmute(),取消静音
isMuted(),是否静音
----------------------------------------------------------------------------------------------------------------------
SoundFile:音效文件类
getId(),获取该音效id号
play(),播放音效
playContinuous(),重复播放音效
unload(),从内存中删除音效
----------------------------------------------------------------------------------------------------------------------
RokonMusic:播放背景音乐的类,该类均为静态函数
getMediaPlayer(),获取MediaPlayer实例,请见android.media.MediaPlayer
pause(),暂停播放
play(),开始播放
stop(),停止播放
play(java.lang.String file),播放一次某个音频文件
play(java.lang.String file, boolean loop)播放某个音频文件,loop指代是否循环
----------------------------------------------------------------------------------------------------------------------
com.stickycoding.rokon.background包
FixedBackground:背景图片类,继承Background
构造函数:
FixedBackground(Texture texture),创建一个背景图片实例,调用Scene.setBackground(bg)可将其添加到场景上显示
----------------------------------------------------------------------------------------------------------------------
com.stickycoding.rokon.device包
Graphics:获取设备信息的类,均为静态函数
determine(Activity activity),调用该函数后,可获取屏幕尺寸等信息。当调用RokonActivity.createEngine()时已调用该函数。
getWidthPixels(),获取屏幕宽
getHeightPixels(),获取屏幕高
isSupportsVBO(),设备是否支持VBO模式
setSupportsVBO(boolean supportsVBO),设置是否支持VBO模式。不能自己调用
----------------------------------------------------------------------------------------------------------------------
OS:软件API版本,设备支持VBO与否,均为静态变量和函数
属性:
API_LEVEL,软件使用的API最低版本号
determineAPI(),获取版本号并设置运行该应用程序的设备是否支持VBO。当调用RokonActivity.createEngine()时已调用该函数。
----------------------------------------------------------------------------------------------------------------------
Accelerometer:加速计,主要均为静态变量和函数
属性:
minShakeInterval,晃动手机的最小事件间隔,默认值1000ms
shakeThreshold,晃动手机的最小力度,默认值3000
startListening(OnAccelerometerChange onAccelerometerChange),注册一个加速计监听接口
stopListening(),注销监听
----------------------------------------------------------------------------------------------------------------------
OnAccelerometerChange接口:实现加速计处理的接口,包含2个函数需要实现该接口的类实现具体函数体
onAccelerometerChange(float x, float y, float z),手机倾斜时调用,参数为各方向上的值
onShake(float intensity),晃动手机时调用,参数为晃动手机的力度
----------------------------------------------------------------------------------------------------------------------
Vibrator:震动控制,均为静态函数。须在AndroidManifest.xml中添加<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
disable(),禁止震动
enable(),开启震动
vibrate(long time),震动多长时间
vibrate(long[] pattern, int repeat),以pattern定义的数组值在开启和关闭震动间转换,第一个数组值为开启震动前的等待时间,然后转换;repeat表示需要从数组的哪个索引开始循环如此的转换,若不需要循环,则该参数值为-1。
----------------------------------------------------------------------------------------------------------------------
com.stickycoding.rokon.modifiers包
Blink:Modifier子类,实现间隔500ms闪烁精灵,10s后停止闪烁的效果
----------------------------------------------------------------------------------------------------------------------
com.stickycoding.rokon.tileengine包
TiledLayer:继承Layer,包含子类RectangularLayer,呈现tile地图的类
TiledSprite:继承Sprite,添加到TiledLayer的专用精灵类
相关推荐
下面是 Rokon 引擎的主要类介绍和 API 说明。 Rokon 类 Rokon 类是 Rokon 引擎的核心类,提供了静态函数和属性。该类的主要功能是提供了游戏引擎的基本设置和参数配置。 * `circle`:圆形实例 * `Polygon`:矩形...
### rokon引擎主要类与方法 1. **Scene管理**: rokon引擎的核心是场景(Scene)的概念,Scene是游戏中的一个独立单元,可以包含多个游戏对象(GameObject)。`RokonScene`类负责管理这些游戏对象的生命周期,以及...
接下来,我们将通过以下步骤介绍如何使用Rokon引擎制作一个小游戏: 1. **安装与设置**:首先,你需要下载Rokon SDK并按照官方指南配置你的开发环境,通常包括集成开发环境(IDE)如Eclipse或IntelliJ IDEA。 2. *...
以下将详细阐述Rokon引擎的关键特性、使用方法以及实例教程中的主要内容。 1. **Rokon引擎特性**: - **跨平台性**:Rokon不仅支持Android,还可在其他操作系统上运行,如iOS,这得益于它的Java基础。 - **2D渲染...
Rokon引擎的核心在于其封装的类和方法,这些类和方法帮助开发者处理游戏逻辑、图形渲染、用户交互等方面的工作。 在Rokon引擎中,`com.stickycoding.rokon`包是核心包,其中的`Rokon`类是整个引擎的入口点,提供了...
Rokon引擎以其高效、轻量级和跨平台的特性,深受独立开发者和小型团队的青睐。以下是关于Rokon游戏引擎的一些关键知识点: 1. **跨平台支持**:Rokon引擎设计的目标之一就是支持多种操作系统,包括Android、iOS、...
Rokon引擎主要类的介绍 中文文档 介绍每个类中经常使用的方法以及作用
在"Android应用源码之rokon_src_2-0-3_游戏引擎"这个压缩包中,包含了使用Rokon引擎开发的Android游戏源码,这对于学习Android游戏编程来说是一份宝贵的资源。 首先,我们要了解Rokon引擎的基础架构。Rokon的核心是...
本文档将详细介绍Rokon引擎的主要类及其功能。 首先,`Rokon`类是整个引擎的核心,提供了许多静态函数和属性。其中,`circle`和`polygon`属性分别用于创建圆形和多边形实例。`Sprite`类有一个`polygon`属性,它默认...
以下是关于Rokon引擎的一些关键知识点: 1. **跨平台支持**: Rokon虽然主要针对Android平台,但其源代码的开放性使得开发者有机会将其扩展到其他平台,如iOS或Windows Phone。 2. **图形渲染**: Rokon引擎利用...
在学习过程中,建议首先分析每个示例的代码结构,了解Rokon的主要类和方法,如`RokonActivity`、`GameScreen`、`GameObject`等。然后,逐行阅读和理解代码,尝试修改示例以实现不同的效果。最后,可以尝试将所学应用...
#### Rokon引擎的主要类及功能介绍 ##### 1. `com.stickycoding.rokon`包概述 此包包含了Rokon引擎的基础类和工具方法,是开发者进行游戏开发的重要起点。 **Rokon类** - **属性** - `circle`:`Polygon`实例,...
本文将详细介绍Rokon中的几个核心类及其使用方法,帮助读者更好地理解如何利用这个引擎来构建高质量的Android游戏。 #### 二、`Rokon`类详解 **1. 属性** - `circle`: Polygon实例,代表一个圆形。 - `rectangle`...
"Rokon_lib_2.0.3.zip" 是一个包含了Rokon引擎核心库的压缩文件,让我们一起深入探讨这个版本中的关键知识点。 首先,我们关注的是主文件 "rokon-2-0-3.jar"。这是一个Java Archive(JAR)文件,是Java平台用于封装...
介绍Rokon游戏引擎中常用的api 文档介绍 com stickycoding rokon包: Rokon:提供静态函数和属性 属性:circle Polygon实例 圆形 rectangle Polygon实例 矩形 Sprite类的polygon属性默认为该矩形 函数:...
rokon游戏引擎包及S其源码
在Rokon引擎的源代码中,你可以找到用于处理图形渲染、物理模拟、音频处理、输入管理以及游戏逻辑的类和函数。源代码的分析可以帮助我们理解游戏是如何运行的,如何与Android系统交互,并且可以针对特定需求进行定制...
【标签】"安卓"、"源码"、"android"指出了这个压缩包与Android操作系统紧密相关,意味着Rokon引擎是针对Android系统优化的,且提供了底层的源代码,开发者可以对其进行二次开发和定制。 【压缩包子文件的文件名称...
例如,`GameActivity.java`是Rokon引擎的主要入口点,负责初始化和管理游戏循环,而`Renderer.java`则包含了图形渲染的相关实现。 其次,Rokon引擎支持多种媒体资源,包括图像、音频和动画。在`libs`目录中,我们...