Skip to content

Entity类 ​

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

import KBEngine

成员函数 ​

def baseCall( self, methodName, methodArgs ):

def cellCall( self, methodName, methodArgs ):

def isPlayer( self ):

def getComponent( self, componentName, all ):

def fireEvent( self, eventName, *args ):

def registerEvent( self, eventName, callback ):

def deregisterEvent( self, eventName, callback ):

回调函数 ​

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可以通过ENTITYCALL访问在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 isPlayer( self ): ​

功能说明: 这个函数返回这个Entity是否为当前客户端所控制的Player。

返回:

bool, 如果是当前客户端所控制的Player返回True,否则返回False。


def getComponent( self, componentName, all ): ​

功能说明: 该函数用于获取实体所绑定的某一类组件实例。

参数:

componentName: string,组件类型名称,组件的模块名称。

all: bool,如果为True,返回所有同类组件实例,否则只返回第一个或空列表。


def fireEvent( self, eventName, *args ): ​

功能说明: 该函数用于触发实体事件。

参数:

eventName: string,要触发的事件名称。

args: 要附带的事件数据,可变参数。


def registerEvent( self, eventName, callback ): ​

功能说明: 该函数用于注册实体事件。

参数:

eventName: string,要注册监听的事件名称。

callback: 当事件触发时,用于响应该事件的回调方法。


def deregisterEvent( self, eventName, callback ): ​

功能说明: 该函数用于注销监听实体事件。

参数:

eventName: string,要注销监听的事件名称。

callback: 要注销监听的回调方法。

回调函数文档 ​


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

文档内容由 Comblock® 提供