Entity - KBEngine client 文档

KBEngine

KBEngine

Entity类

[KBEngine模块]

Entity是KBEngine模块的一部分。 更多...

import KBEngine

成员函数

def baseCall( self, methodName, methodArgs ):
def cellCall( self, methodName, methodArgs ):

回调函数

def onDestroy( self ):
def onEnterWorld( self ):
def onLeaveWorld( self ):
def onEnterSpace( self ):
def onLeaveSpace( self ):

属性

direction  Tuple of 3 floats as (roll, pitch, yaw)
id  只读 Integer
position  Vector3
spaceID  只读 uint32
isOnGround  只读 bool
inWorld  只读 bool
className  只读 string

详细描述

Entity的实例代表着在client上的游戏对象。



一个Entity可以通过MAILBOX访问在base和cell应用程序上的等价的实体。这需要 一组远程调用的函数(在实体的.def文件里指定)。

成员函数文档

def baseCall( self, methodName, methodArgs ):

功能说明:

调用该实体的base部分的方法。
注意:实体在服务端必须有base部分,在客户端只有客户端控制的玩家实体才可以访问该方法。

例子:
js插件: entity.baseCall("reqCreateAvatar", roleType, name);
c#插件: entity.baseCall("reqCreateAvatar", new object[]{roleType, name});

参数:

methodName string,方法名称。
methodArgs objects,方法参数列表。

返回:

由于是远程调用,不可能阻塞等待返回,因此无返回值。

def cellCall( self, methodName, methodArgs ):

功能说明:

调用该实体的cell部分的方法。
注意:实体在服务端必须有cell部分,在客户端只有客户端控制的玩家实体才可以访问该方法。

例子:
js插件: entity.cellCall("xxx", roleType, name);
c#插件: entity.cellCall("xxx", new object[]{roleType, name});

参数:

methodName string,方法名称。
methodArgs objects,方法参数列表。

返回:

由于是远程调用,不可能阻塞等待返回,因此无返回值。


回调函数文档

def onDestroy( self ):

实体被销毁时调用。

def onEnterWorld( self ):

如果实体非客户端控制实体,则表明实体进入了服务端上客户端控制的实体的View范围,此时客户端可以看见这个实体了。
如果实体是客户端控制的实体则表明该实体已经在服务端创建了cell并进入了space。

def onLeaveWorld( self ):

如果实体非客户端控制实体,则表明实体离开了服务端上客户端控制的实体的View范围,此时客户端看不见这个实体了。
如果实体是客户端控制的实体则表明该实体已经在服务端销毁了cell并离开了space。

def onEnterSpace( self ):

客户端控制的实体进入了一个新的space。

def onLeaveSpace( self ):

客户端控制的实体离开了当前的space。

属性文档

className

实体的类名。

类型:

只读,string

position

这个实体在世界空间中的坐标(x, y, z),数据由服务端同步到客户端。

类型:

Vector3

direction

这个属性描述的是Entity在世界空间中的朝向,数据由服务端同步到客户端。

类型:

Vector3, 其中包含(roll, pitch, yaw),以弧度表示。

isOnGround

如果这个属性的值为True,Entity在地面上,否则为False。
如果是客户端控制的实体该属性将会在改变时同步到服务端,其他实体则由服务端同步到客户端,客户端可以判断这个值来强制贴地避免精度带来的影响。

类型:

可读写, bool