Hilo游戏引擎——game模块

Camera

Camera类表示摄像机

构造函数
Camera(properties:Object)
properties:Object — 创建对象的属性参数。可包含此类所有可写属性。

属性概览

bounds:Array
摄像机移动边界的矩形区域 [x, y, width, height]

deadzone:Array
摄像机不移动的矩形区域 [ x, y, width, height]

height:Number
镜头高

scroll:Object
滚动值 {x:0, y:0}

target:View
摄像机跟随的目标

width:Number
镜头宽

方法概览

Camera(properties:Object)

构造函数

follow(target:Object, deadzone:Array)
跟随目标
target:Object — 跟随的目标,必须是有x,y属性的对象
deadzone:Array — 摄像机不移动的矩形区域 [ x, y, width, height]

tick(deltaTime:Number)
更新
deltaTime:Number —时间增量

Camera3d

Camera3d 伪3D虚拟摄像机。

属性概览

fv:Number
镜头视点距离(屏幕视点相对眼睛距离,绝对了坐标缩放比例)。

fx:Number
镜头视点X(屏幕视点相对屏幕左上角X距离)。

fy:Number
镜头视点Y(屏幕视点相对屏幕左上角Y距离)。

rotationX:Number
X轴旋转角度。

rotationY:Number
Y轴旋转角度。

rotationZ:Number
Z轴旋转角度。

stage:Object
3D对象所在容器,可以是stage或container,结合ticker时是必须参数,用来Z深度排序。

x:Number
镜头三维坐标x。

y:Number
镜头三维坐标y。

z:Number
镜头三维坐标z。

方法概览

Camera3d()
构造函数

project(vector3D:object, view:View):Object
将三维坐标转换投影为二维坐标。
vector3D:object — 三维坐标对象,必须含有x, y, z属性。
view:View — Hilo.View对象,用于自动转换坐标。
return
Object — 二维坐标对象,包括缩放和z属性,例子:{x:x, y:y, z:z, scale}

rotateX(angle:Number)
旋转X轴方向角度,相当于欧拉角系统的 beta。
angle:Number — 旋转角度。

rotateY(angle:Number)
旋转Y轴方向角度,相当于欧拉角系统的 gamma。
angle:Number — 旋转角度。

rotateZ(angle:Number)
旋转Z轴方向角度,相当于欧拉角系统的 alpha。
angle:Number — 旋转角度

sortZ()
Z深度排序。

tick()
Ticker 轮询使用。

translate(x:Number, y:Number, z:Number)
仿射矩阵位移变换,不同于直接修改Camera3d.x/y/z

重点:粒子系统ParticleSystem

单独开页面详细解释下请看我另外一篇文章,Hilo游戏引擎——粒子系统详解

Hilo游戏引擎——event事件模块

EventMixin (混入)

EventMixin是一个包含事件相关功能的mixin。可以通过 Class.mix(target, EventMixin) 来为target增加事件功能。

方法概览

fire(type:String, detail:Object):Boolean
发送事件。当第一个参数类型为Object时,则把它作为一个整体事件对象。
type:String — 要发送的事件类型。
detail:Object — 要发送的事件的具体信息,即事件随带参数。
return(返回值)
Boolean — 是否成功调度事件

off(type:String, listener:Function):Object
删除一个事件监听。如果不传入任何参数,则删除所有的事件监听;如果不传入第二个参数,则删除指定类型的所有事件监听。
type:String — 要删除监听的事件类型。
listener:Function — 要删除监听的回调函数。
return(返回值)
Object — 对象本身。链式调用支持

on(type:String, listener:Function, once:Boolean):Object
增加一个事件监听。
type:String — 要监听的事件类型。
listener:Function — 事件监听回调函数。
once:Boolean — 是否是一次性监听,即回调函数响应一次后即删除,不再响应。
return(返回值)
Object — 对象本身。链式调用支持。

Hilo的API文档——core核心模块

不管哪个模块,他们或许会有很多共同方法比如 on,off等,off(type:String, listener:Function):Object一般方法是这样写的,那个:Object是返回值,真正引用时不要加上去。

Class

提供类的创建的辅助工具。
创建类示例:


var Bird=Hilo.Class.create({
Extends:Animal  // 扩展:动物
Mixes:EventMixin	//混合
constructor: functionn(name){		//构造函数
	this.name=name;
},
    fly: function(){
        console.log('I am flying');
    },
    Statics: {
        isBird: function(bird){
            return bird instanceof Bird;	//这句话的意思是判断bird是否存在(属于)Bird实例,是的话返回ture,反之false
        // instanceof运算符,用于识别正在处理的对象的类型,该类型必须指定出来
	}
    }
});
var swallow = new Bird('swallow');
swallow.fly();
Bird.isBird(swallow);

方法概览

create(properties:Object):Object
根据参数指定的属性和方法创建类。
mix(target:Object, source:Object):Object
混入属性或方法。

方法详情

create(properties:Object):Object
根据参数指定的属性和方法创建类
properties:Object — 要创建的类的相关属性和方法。主要有:
Extends – 指定要继承的父类。
Mixes – 指定要混入的成员集合对象。
Statics – 指定类的静态属性或方法。
constructor – 指定类的构造函数。
其他创建类的成员属性或方法。
return(返回值)
Object — 创建的类。

mix(target:Object, source:Object):Object
混入属性或方法
target:Object — 混入目标对象。
source:Object — 要混入的属性和方法来源。可支持多个来源参数。
return(返回值)
Object — 混入目标对象。

Hilo

Hilo的基础核心方法集合。

属性概览

browser
浏览器特性集合。
align
可视对象对齐方式枚举对象。包括:
TOP_LEFT – 左上角对齐。
TOP – 顶部居中对齐。
TOP_RIGHT – 右上角对齐。
LEFT – 左边居中对齐。
CENTER – 居中对齐。
RIGHT – 右边居中对齐。
BOTTOM_LEFT – 左下角对齐。
BOTTOM – 底部居中对齐。
BOTTOM_RIGHT – 右下角对齐。

version:String
Hilo version Hilo的版本

event
事件类型枚举对象。包括:(很重要)
POINTER_START – 鼠标或触碰开始事件。对应touchstart或mousedown。
POINTER_MOVE – 鼠标或触碰移动事件。对应touchmove或mousemove。
POINTER_END – 鼠标或触碰结束事件。对应touchend或mouseup。

方法概览

getElementRect(elem:HTMLElement):Object
获取DOM元素在页面中的内容显示区域。
elem:HTMLElement — DOM元素。
return(返回值)
Object — DOM元素的可视区域。格式为:{left:0, top:0, width:100, height:100}。

createElement(type:String, properties:Object):HTMLElement
创建一个DOM元素。可指定属性和样式。
type:String — 要创建的DOM元素的类型。比如:’div’。
properties:Object — 指定DOM元素的属性和样式。
return(返回值)
HTMLElement — 一个DOM元素。

viewToString(view:View):String
为指定的可视对象生成一个包含路径的字符串表示形式。如Stage1.Container2.Bitmap3。

getUid(prefix:String):String
获取一个全局唯一的id。如Stage1,Bitmap2等。

getElement(id:String):HTMLElement
根据参数id获取一个DOM元素。此方法等价于document.getElementById(id)。
id:String — 要获取的DOM元素的id。
return(返回值)
HTMLElement — 一个DOM元素。

copy(target:Object, source:Object, strict:Boolean):Object
简单的浅复制对象。废弃
使用 Hilo.util.copy
return(返回值)
Object — 复制后的对象

getTransformCSS(obj:View):String
生成可视对象的CSS变换样式。
obj:View — 指定生成CSS变换样式的可视对象。
return(返回值)
String — 生成的CSS样式字符串。

解释下View
View类是所有可视对象或组件的基类。
属性
align:String|Function
可视对象相对于父容器的对齐方式。取值可查看Hilo.align枚举对象。

alpha:Number
可视对象的透明度。默认值为1。

background:Object
可视对象的背景样式。可以是CSS颜色值、canvas的gradient或pattern填充。

boundsArea:Array
可视对象的区域顶点数组。格式为:[{x:10, y:10}, {x:20, y:20}]。

depth:Number
可视对象的深度,也即z轴的序号。只读属性。

drawable:Drawable
可视对象的可绘制对象。供高级开发使用。

height:Number
可视对象的高度。默认值为0。

id:String
可视对象的唯一标识符。

mask:Graphics
可视对象的遮罩图形。

onUpdate:Function
更新可视对象,此方法会在可视对象渲染之前调用。此函数可以返回一个Boolean值。若返回false,则此对象不会渲染。默认值为null。 限制:如果在此函数中改变了可视对象在其父容器中的层级,当前渲染帧并不会正确渲染,而是在下一渲染帧。可在其父容器的onUpdate方法中来实现。

parent:Container
可视对象的父容器。只读属性。

pivotX:Number
可视对象的中心点的x轴坐标。默认值为0。

pivotY:Number
可视对象的中心点的y轴坐标。默认值为0。

pointerEnabled:Boolean
可视对象是否接受交互事件。默认为接受交互事件,即true。

rotation:Number
可视对象的旋转角度。默认值为0。

scaleX:Number
可视对象在x轴上的缩放比例。默认为不缩放,即1。

scaleY:Number
可视对象在y轴上的缩放比例。默认为不缩放,即1。

tint:Number
可视对象的附加颜色,默认0xFFFFFF,只支持WebGL模式。

transform:Matrix
可视对象的transform属性,如果设置将忽略x, y, scaleX, scaleY, rotation.pivotX, pivotY 属性。默认null。

visible:Boolean
可视对象是否可见。默认为可见,即true。

width:Number
可视对象的宽度。默认值为0。

x:Number
可视对象的x轴坐标。默认值为0。

y:Number
可视对象的y轴坐标。默认值为0。

方法概览

View(properties:Object)
构造函数

addTo(container:Container, index:Uint):View
添加此对象到父容器。
container:Container — 一个容器。
index:Uint — 要添加到索引位置。
return(返回值)
View — 可视对象本身。

fire(type:String, detail:Object):Boolean
发送事件。当第一个参数类型为Object时,则把它作为一个整体事件对象。
type:String — 要发送的事件类型。
detail:Object — 要发送的事件的具体信息,即事件随带参数。
return(返回值)
Boolean — 是否成功调度事件

getBounds():Array
获取可视对象在舞台全局坐标系内的外接矩形以及所有顶点坐标。
return(返回值)
Array — 可视对象的顶点坐标数组vertexs。另vertexs还包含属性:
x – 可视对象的外接矩形x轴坐标。
y – 可视对象的外接矩形y轴坐标。
width – 可视对象的外接矩形的宽度。
height – 可视对象的外接矩形的高度。

getScaledHeight():Number
返回可视对象缩放后的高度。
return(返回值)
Number — 可视对象缩放后的高度。

getScaledWidth():Number
返回可视对象缩放后的宽度。
return(返回值)
Number — 可视对象缩放后的宽度。

getStage():Stage
返回可视对象的舞台引用。若对象没有被添加到舞台,则返回null。
return(返回值)
Stage — 可视对象的舞台引用。

hitTestObject(object:View, usePolyCollision:Boolean)
检测object参数指定的对象是否与其相交。
object:View — 要检测的可视对象。
usePolyCollision:Boolean — 是否使用多边形碰撞检测。默认为false。

hitTestPoint(x:Number, y:Number, usePolyCollision:Boolean):Boolean
检测由x和y参数指定的点是否在其外接矩形之内。
x:Number — 要检测的点的x轴坐标。
y:Number — 要检测的点的y轴坐标。
usePolyCollision:Boolean — 是否使用多边形碰撞检测。默认为false。
return(返回值)
Boolean — 点是否在可视对象之内。

off(type:String, listener:Function):Object
删除一个事件监听。如果不传入任何参数,则删除所有的事件监听;如果不传入第二个参数,则删除指定类型的所有事件监听。
type:String — 要删除监听的事件类型。
listener:Function — 要删除监听的回调函数。
return(返回值)
Object — 对象本身。链式调用支持。

on(type:String, listener:Function, once:Boolean):Object
增加一个事件监听。
type:String — 要监听的事件类型。
listener:Function — 事件监听回调函数。
once:Boolean — 是否是一次性监听,即回调函数响应一次后即删除,不再响应。
return(返回值)
Object — 对象本身。链式调用支持。

removeFromParent():View
从父容器里删除此对象。
return(返回值)
View — 可视对象本身。

render(renderer:Renderer, delta:Number)
可视对象的具体渲染逻辑。子类可通过覆盖此方法实现自己的渲染。
renderer:Renderer — 渲染器。
delta:Number — 渲染时时间偏移量。

toString():String
返回可视对象的字符串表示。