0%

客户端接口api对象

api控制接口,从客户端入口模块ClientMain.lua的sf_start参数中获得

  1. api.Constants.*** 所需常亮表,如键盘code和触摸种类TOUCH_*,详情请查看常亮说明文件[Constants]
  2. 音频引擎,可提出需求增加更多功能
    1. api.playOnce(path,cb) -> 播放一次音效,path: 音频事件相对路径,不需要扩展名,最后音频目录需要通过工程打包成dat格式。 cb -> 回调方法,每次播放完毕后,会回调该方法
    2. api.playOnce(path,pan) -> 播放一次音效,path: 音频事件相对路径,不需要扩展名,最后音频目录需要通过工程打包成dat格式。 pan -> 2d平移位置,从 -1.0 到 1.0, 从左声道到右声道。
    3. api.playOwn(name,path) -> 播放音频,并且给音频取名,之后可以通过名字控制音频,同名的音频互斥,例如播放会打断之前的声音。
    4. api.playWithPosition(path,x,y,z) -> 播放一次音效,根据位置,path: 音频事件相对路径,不需要扩展名,最后音频目录需要通过工程打包成dat格式。 x,y,z 音频声源在3D环境内的坐标,精确到小数点。x左右,y上下,z前后。
    5. api.stopAudio(name) -> 停止音频,但在内存中不释放。
    6. api.releaseAudio(name) -> 停止并释放音频
    7. api.getGain(name) -> 获得音频音量大小,参数 name-> 要获取音频的音量的名称, 返回值 音量大小, 0.0 到 1.0。
    8. api.setGain(name,g) -> 设置音频音量大小,name是该音效的名字,是playOwn的第一个参数; g -> 音量大小, 0.0 到 1.0。
    9. api.getPitch(name) -> 获得音频平率,参数 name-> 音频名称, 返回值 音频平率, 1.0是正常,取值范围0 ~ 100
    10. api.setPitch(name,p) -> 设置音频频率高低,name是该音效的名字; p -> 平率高低,取值范围0 ~ 100
    11. api.setPan(name,p) -> 设置音频左右平移,name是该音效的名字; p 2d平移位置,从 -1.0 到 1.0, 从左声道到右声道。
    12. api.setPosition(name,pos) -> 设置3D音效在3D环境内的声源坐标,name是该音效的名字; pos 坐标table,例如 {x=1.3,y=0,z=8.32}
    13. api.getTimeline(name) -> 获得当前播放时间线,参数 name-> 音频名称, 返回值 当前时间线,毫秒单位。
    14. api.setTimeline(name,t) -> 设置音频当前时间线,name是该音效的名字; t -> 时间线,单位毫秒。
    15. api.getPaused(name) -> 获得音频播放是否暂停,返回值true表明音频当前暂停,必须音频在播放状态下才确定是否暂停,音频播放状态参考13.
    16. api.setPaused(name,p) -> 设置音频暂停。 name > 音频名称, p 为true 则暂停, false是继续播放。
    17. api.getPlayState(name) -> 获得音频播放状态, name > 音频名称, 返回值,音频播放状态:如下:
      0 -> 正在播放
      1 -> The timeline cursor is paused on a sustain point.高级功能,暂停位于你指定的时间点上。
      2 -> 停止播放中。
      3 -> 加载进内存中,正在初始化,准备播放。
      4 -> 正在准备停止播放。
    18. api.getProperty(name,flag) -> 获得音频内置属性, name>音频名称; flag > 要获得的内置属性种类,参考15.
    19. api.setProperty(name,flag,value) -> 设置音频内置属性, name>音频名称; flag > 要获得的内置属性种类参考下方; value > 内置属性的具体数值
      0 -> 音频优先级,默认-1,取值范围-1~256,优先级越高的情况,则不会变成虚拟音频
      1 -> 以DSP时钟为单位计划延迟,默认值为-1。范围:-1,[0,inf)默认值:-1
      2 -> 以DSP时钟为单位在时间线上计划向前看,默认为-1。Range: -1, [0, inf) Default: -1
      3 -> Override the event’s 3D minimum distance, or -1 for default.Range: -1, [0, inf) Default: -1 Units: Distance units
      4 -> Override the event’s 3D maximum distance, or -1 for default.Range: -1, [0, inf) Default: -1 Units: Distance units
      5 -> 冷却时间, Override the event’s cooldown, or -1 for default.Range: -1, [0, inf) Default: -1
      6 -> 同时最大事件属性类型数。
    20. api.setListenerPosition(pos) -> 设置听众在3D环境内的坐标;pos 坐标table,例如 {x=1.3,y=0,z=8.32}
    21. api.setListenerVelocity(vel) -> 设置听众的声音在3d环境内的传播速度,默认是{x=0,y=0,z=0},该参数控制了听众在环境内听到的声波的多普勒效应,默认没多普勒效应
    22. api.setListenerForward(f) -> 设置听众的面朝方向;f 为面朝方向的坐标table,例如面相左 {x=-1,y=0,z=0}
    23. api.setListenerUp(up) -> 设置听众的偏差;up 偏差坐标table,例如:{x=0,y=0.5,z=0}
    24. api.getListenerPosition() -> 获取听众在3D环境内的坐标;return返回听众坐标 坐标table,例如 {x=1.3,y=0,z=8.32}
    25. api.getListenerVelocity() -> 获取听众在3d中的速度。return返回听众速度table
    26. getListenerForward() -> 获取听众在3d中的朝向。return返回听众朝向table
    27. api.getListenerUp() -> 获取听众在3d中的偏差。return返回听众偏差table
    28. api.getParameter(name,key) -> 获取和音效师商量好的事件实力的参数,name 要获取的音效实力名称, key 参数名
      28 api.setParameter(name,key,value) -> 设置音效引擎中的和音效师定义好的参数变量,name 音效实力名称; key 参数名; value 参数值,类型number
    29. api.setParameterLabel(name,key,label) -> 设置音效引擎中的和音效师定义好的枚举参数变量,name 音效实力名称; key 参数名; label 字符串枚举名,类型string
  3. 语音库引擎
    1. api.speak(text,appended) -> 离线TTS朗读,text朗读文本UTF8,appended是否需要排队朗读,默认省略参数打断朗读
    2. api.speakOnline(text,appended) -> 在线TTS朗读,text朗读文本UTF8,appended是否需要排队朗读,默认省略参数打断朗读,该朗读不会打断本地离线tts,一般用于通知类朗读。
  4. 传输引擎
    1. api.send(t) -> 发送数据到服务器 t 为lua table
  5. 计时器
    1. api.addTimer(ms,cb) -> 添加计时器,参数ms毫秒,cb回调函数,回调方法返回true计时器继续,返回false计时器结束,return 返回取消当前计时器的方法
    2. api.time() -> 获得返回值已秒为单位的小数,精确到毫秒
  6. 控制麦克风,在全局类游戏中无法使用
    1. api.muteMic(b) -> b为true则麦克风静音, false麦克风取消静音。
    2. api.isMuteMic() -> return返回麦克风是否静音,true为静音。
  7. 修改触摸模式
    1. api.selectGestureMode(mode) -> 参数mode,1 正常模式,全屏触摸,2 上下分屏模式,此时两边的触摸不会互相干扰同时能响应。
    2. 事件响应,选择分屏模式后,所有触摸事件响应方法中都多出一个参数,在fingers后,为gid,gid为200,表示在上半屏,gid为300,表示在下半屏。当全屏触摸模式下gid为100。
  8. 其他功能
    1. api.copy(appended) -> 拷贝刚用tts朗读的内容,appended为true表示追加拷贝
    2. api.vibrate(index,low,high,ms) -> 震动游戏控制器,index: 控制器手柄的索引ID;low: 滴瓶震动的平率,high: 高平震动的平率,平率从0开始到0xFFFF为最大;ms: 震动持续的时间,单位毫秒。
    3. api.moveMouse(x,y) -> 将鼠标指针移动到心的位置。