Public Member Functions | Static Public Attributes

API_1_0 Class Reference

API 1.0. More...

List of all members.

Public Member Functions

def get_game_room_msgmgr
 获取消息管理类,用于消息列表的发送.
def show_rank
 排行榜显示/关闭
def show_shop
 商城显示/关闭
def friend_chat
 打开社交系统的聊天界面,与指定玩家对话
def player_is_my_friend
 判断一个uid是否是自己的好友
def add_friend
 添加好友
def get_my_friend_data
 获取自己好友的数据.
def show_invite
 邀请界面打开/关闭.
def register_game_room_msgdefine_and_callback
 注册网络消息和回调
def set_network_log_open
 网络消息的开关设置
def pause_network
 暂停网络消息回调
被暂停的消息会在缓存中,等到恢复时会再进行回调。
def register_callback
 向引擎注册各种回调
def is_press_key
 检测键盘某个键是否按下
def is_press_ctrl
 检测Ctrl键是否按下
def is_press_alt
 检测Alt键是否按下
def is_press_shift
 检测Shift键是否按下
def exit_game
 !!! 即将删除!!! 如果用到此函数,可参考程序开发手册的《游戏退出》一章,转用exit_and_join(0)
向引擎声明游戏退出,则logic/render等函数无效 如果使用独立公共大厅的方式(res目录下增加use_lobby文件),则不需要调用此函数。
def bye
 向引擎声明退出整个游戏(包括公共大厅).
def exit_and_join
 退出游戏,然后再进入指定模式
这个过程会先销毁当前游戏资源再通过init函数进入游戏逻辑,建议慎用。
此函数必须使用独立公共大厅。
def team_join
 组队进入指定模式的房间
其中uid_list里面的玩家必须在同一个游戏中,而且该玩家也需要在房间内,否则无效。
此函数必须使用独立公共大厅。SDK下只能在远程服务器有效。
def chat_change_movie
 更换聊天框接口
def chat_min_btn_visible
 隐藏/显示聊天框的最小化按钮
def chat_set_sys_text_color
 设置聊天框默认颜色(系统消息)
def chat_set_name_text_color
 设置聊天框默认颜色(名字)
def chat_set_chat_text_color
 设置聊天框默认颜色(普通消息)
def chat_set_private_text_color
 设置聊天框默认颜色(私聊消息)
def chat_set_horn_text_color
 设置聊天框默认颜色(小喇叭消息)
def chat_set_msg_send_time
 设置聊天的发言间隔
def chat_set_my_send_func
 设置发聊天消息时的回调函数
需要注意,设置的回调函数,需要有返回值:
若为True,则会发送消息;若为False,则不会发送消息
可以理解为这是一个check函数
def chat_hide
 隐藏公共聊天框的显示区域,但会保留最小化按钮
不调用时,默认为显示
def chat_show
 显示整个公共聊天框.
def chat_close
 隐藏整个公共聊天框.
def chat_get_movie
 获取公共聊天框的movie对象.
def chat_set_focus
 设置公共聊天框是否具有输入焦点
不调用此接口时,默认为获得焦点
def chat_add_msg
 在聊天框增加消息
def chat_set_top
 聊天框的层次提到最高
如果设置过chat_set_movie_depth,则只能在同depth中的最上面
def chat_set_movie_depth
 设置聊天框的层次.
def register_onchat_callback
 设置收到聊天消息的回调
def avatar_new_panel
 此接口无效.
def avatar_destroy
 销毁所有avatar.
def get_my_avatar
 获取iTown平台的自己avatar(self):
def get_my_nickname
 获取iTown平台中自己的昵称.
def show_performance
 打开/关闭性能曲线
def get_render_fps
 获取当前渲染帧率
def show_achieve_tip
 显示成就获得提示框的接口 显示一个成就提示
def show_achieve_tip_by_id
 显示成就获得提示框的接口
def callout
 设置定时器
def remove_callout
 删除指定计时器
def callout_clear
 清空计时器,建议退出游戏时调用.
def close_message_box
 关闭show_msg、show_alert、show_confirm接口打开的界面
def show_msg
 公用的消息提示框
def get_text_panel
 获取一个文字对象,注意此文字是在最上层
如果引用不存在,则会被回收
字符串长度必须1000以内
有以下方法:
set_color(0xAARRGGBB) 颜色代码(ARGB格式,例如0xFFFF0000代表红色)
set_text(str) 字符串
set_coord((x, y)) 屏幕坐标元组
有以下属性:
visible 只写 bool.
def message_box_change_movie
 更换公用的警告框、公用的确认框的样式
def show_alert
 公用的警告框(有确定按钮)
def show_confirm
 公用的确认框(有确定、取消按钮)
def simple_ui_hide
 简单的UI解决方案(有button、label、movie)
这只是简单的解决方案,所以不提供界面层次管理等高级功能,所有create_btn、create_label、create_movie三个接口创建的内容均在同一层

整体显示/隐藏create_btn、create_label、create_movie三个接口创建的内容
def simple_ui_destory
 销毁所有create_btn、create_label、create_movie创建的内容.
def create_btn
 创建一个button
button实例提供可修改属性: x,y,width,height,label,hide,func(button的响应函数),args(响应函数的参数),disabled,visible
def remove_btn
 删除一个button.
def create_label
 创建一个label
label实例提供可修改属性: x,y,width,height,text,hide,color(文字的颜色),size(文字的大小)
def remove_label
 删除一个label.
def create_movie
 创建一个movie
movie实例提供以下方法:
clear() : 清除所有该movie之前画出来的内容
line_style(color, thickness = 2, alpha = 100) : 设置在之后的绘画时线条的颜色/粗细/透明度(thickness取值范围1-255)
begin_fill(color, alpha = 100) :与end_fill对应,设置填充时的颜色和透明度
end_fill() :与begin_fill对应,对从上一次调用beginFill之后绘画出来的闭合形状应用填充。
draw_line(start_pos_x, start_pos_y, end_pos_x, end_pos_y) :画一条线,参数为起始点坐标
draw_oval(pos_x, pos_y, _w, _h) :画一个椭圆,pos_x/pos_y为中心点坐标,_w/_h为横向和纵向的半径
def remove_movie
 删除一个movie.
def show_achieve
 显示成就界面
def close_achieve
 关闭成就界面.
def show_card
 显示名片界面
def update_module
 热更新一个Python模块
注意,本接口与python的内置reload不同:
支持: (1)更新代码对象(function/method/static_method/class_method)
(2)保留数据对象原值(除了代码对象外都是数据对象)
不支持: (1)不支持命名空间的命名删除 (2)不支持类的继承关系的修改
def show_sys_mouse
 显示/隐藏鼠标鼠标
def set_sys_cursor
 设置系统的鼠标光标样式
def lock_cursor_pos
 将鼠标的位置锁定.
def set_cursor_pos
 设置鼠标的位置.
def set_background_color
 设置背景颜色
def save_screen_to_file
 截取当前屏幕,保存成文件(JPG格式).
def save_screen_to_image
 截取当前屏幕到一个 iworld2d.image2d 对象.
def show_attach
 设置鼠标悬挂图片
def hide_attach
 隐藏鼠标悬挂图片
def read_file
 读取res目录下的某个文件 只能读取自己项目下的文件,如果传入非自己项目的文件目录会自动转为读自己的项目目录.
def write_file
 写config目录下的某个文件,目前是覆盖式写法或追加式写法 只能写自己项目下的文件.
def check_window_active
 当前客户端窗口是否为激活状态
def profile
 开启/停止python的性能分析profile
def show_tips
 使用一个统一的界面显示tips.
def close_tips
 关闭show_tips接口显示的tips.
def close_fps_info
 关闭SDK版本左上角的帧率显示.
def req_rank_by_uid_list
 请求指定UID列表中玩家的指定排名(异步返回).
def get_money_icon_source
 获取“iTown消费点”的图标的资源路径.
def set_game_exit_func
 注册回调函数,当通过平台的“返回我的iTown”退出游戏,或者其他原因导致的退出游戏时,会调用.
def get_ach_icon_source
 获取对应id的成就图标的资源路径.
def report_objs
 报告游戏脚本中现存的对象分类数量情况.
def report_refs
 绘制该type最多5个实例的引用图,每个引用图的深度为10.
def report_growth
 报告相比上次使用该接口时,当前的脚本对象有增长的种类及增长量。
def report_refs_mass
 大量绘制该type的实例引用图(最多打印20个对象),每个引用图的深度为5.
def chat_cancel_ime
 聊天框取消输入法状态,并使聊天框失去焦点.
def set_game_sysinfo_callback
 设置系统广播公告回调函数,用于响应服务端 HallRoom.cghall_send_system_data 消息.
def get_shape_head_icon_path
 根据玩家SHAPE形状返回icon图片路径.
def get_server_time
 获取当前服务端的时间.
def show_exchange
 充值兑点界面显示/关闭
def set_friend_list_change_callback
 设置好友数量发生变化时的回调函数
.

Static Public Attributes

int CALLOUT_TYPE_FRAME = 1
 计时器频率类型(帧).
int CALLOUT_TYPE_SEC = 2
 计时器频率类型(秒).
int CHAT_CHANNEL_UNKNOW = 0
 聊天模块发言频道定义:未知频道(默认处理,原则上不会出现)
int CHAT_CHANNEL_BIG_HORN = 1
 聊天模块发言频道定义:大喇叭
int CHAT_CHANNEL_HORN = 2
 聊天模块发言频道定义:小喇叭
int CHAT_CHANNEL_ROOM = 3
 聊天模块发言频道定义:房间
int CHAT_CHANNEL_LOBBY = 4
 聊天模块发言频道定义:大厅
int SHAPE_ICO_SMALL = 0
 shape icon 小 20*20.
int SHAPE_ICO_LARGE = 1
 shape icon 大 40*40.
 sender = None
 消息发送
使用方法如下:
sender.msgdefine(arg1=value1, arg2=value2)
msgdefine就是 register_game_room_msgdefine_and_callback中所定义的
arg1是自己所定义消息的参数,value1是所要传递的值

Detailed Description

API 1.0.


Member Function Documentation

def get_game_room_msgmgr (   self )

获取消息管理类,用于消息列表的发送.

def show_rank (   self,
  flag 
)

排行榜显示/关闭

Parameters:
flag:True显示排行榜, False 关闭排行榜
def show_shop (   self,
  flag 
)

商城显示/关闭

Parameters:
flag:True显示, False 关闭
def friend_chat (   self,
  uid,
  name 
)

打开社交系统的聊天界面,与指定玩家对话

Parameters:
uidint :指定玩家的UID
namestr :指定玩家的昵称
def player_is_my_friend (   self,
  uid 
)

判断一个uid是否是自己的好友

Parameters:
uidint 需要添加好友的uid
Return values:
bool是否为自己的好友
def add_friend (   self,
  uid,
  set_name = "",
  msg = "" 
)

添加好友

Parameters:
uid需要添加好友的uid
set_name(此参数已经失效)添加到好友的分组名,空字符串代表进入默认分组
msg(此参数已经失效)给对方的留言
def get_my_friend_data (   self )

获取自己好友的数据.


SDK远程服务器是有真正的好友服务器,所以返回值是准确的(ingame字段会为0)。
而离线服务器没有真正的好友服务器,因此返回的好友数据均随机生成,会随机10个好友数据(可能含有自己,但实际运营中是不会有的)。

Return values:
dict: 以uid为key,value为好友数据的信息
好友数据也是一个dict,内容是:{'nick':昵称, 'shape':玩家头像, 'online':是否在线,1代表在线,0代表不在线, 'ingame':是否在本游戏中,1代表在本游戏中,0代表在其他游戏中}
即整个返回格式如下:
{
uid: # 好友uid
{'nick':'好友的昵称', 'shape':玩家头像, 'online':是否在线, 'ingame':是否在本游戏中}
}
def show_invite (   self,
  flag 
)

邀请界面打开/关闭.

目前提供好友的邀请,一些规范请查看《程序开发手册》.

Parameters:
flag:True显示, False 关闭
def register_game_room_msgdefine_and_callback (   self,
  eventdef,
  eventmap 
)

注册网络消息和回调

Parameters:
eventdef:消息定义
eventmap:对应的回调函数字典
def set_network_log_open (   self,
  open = True 
)

网络消息的开关设置

Parameters:
open,:True:打开网络日志;False:关闭网络日志
def pause_network (   self,
  flag = True 
)

暂停网络消息回调
被暂停的消息会在缓存中,等到恢复时会再进行回调。

Parameters:
flag,:True:暂停网络回调;False:恢复网络回调
def register_callback (   self,
  game_id,
  logic = None,
  render = None,
  post_logic = None,
  on_key_msg = None,
  on_mouse_msg = None,
  on_mouse_wheel = None,
  on_device_lost = None,
  on_device_restored = None 
)

向引擎注册各种回调

Parameters:
game_idint : 为游戏gameid,由初始调用游戏入口(xxx_init.py 中的init函数)给出
logicfunction : 为游戏主逻辑函数
renderfunction : 渲染帧的回调
post_logicfunction : 逻辑帧之后的一个回调
on_key_msg(msg,key_code)function: 键盘消息响应函数
on_mouse_msg(msg,key_code)function : 鼠标按键消息响应函数
on_mouse_wheel(msg,delta,key_state)function : 鼠标滚轮响应函数
on_device_lostfunction : D3D设备丢失时的响应(此时不能进行渲染),一般发生在切换Windows用户或者休眠时
on_device_restoredfunction : D3D设备回复时的响应
def is_press_key (   self,
  key,
  need_active = True 
)

检测键盘某个键是否按下

Parameters:
keyint 请参考game.VK_xxx,例如game.VK_A/game.VK_ENTER
need_activebool True的时候,游戏窗口必须是激活的才会判断键是否按下,也就是check_window_active()为True;为False的时候无论窗口是否激活,都返回键的状态
Return values:
bool是否按下
def is_press_ctrl (   self,
  need_active = True 
)

检测Ctrl键是否按下

Parameters:
need_activebool True的时候,游戏窗口必须是激活的才会判断键是否按下,也就是check_window_active()为True;为False的时候无论窗口是否激活,都返回键的状态
Return values:
bool是否按下
def is_press_alt (   self,
  need_active = True 
)

检测Alt键是否按下

Parameters:
need_activebool True的时候,游戏窗口必须是激活的才会判断键是否按下,也就是check_window_active()为True;为False的时候无论窗口是否激活,都返回键的状态
Return values:
bool是否按下
def is_press_shift (   self,
  need_active = True 
)

检测Shift键是否按下

Parameters:
need_activebool True的时候,游戏窗口必须是激活的才会判断键是否按下,也就是check_window_active()为True;为False的时候无论窗口是否激活,都返回键的状态
Return values:
bool是否按下
def exit_game (   self,
  game_id,
  exit_to_lobby = False 
)

!!! 即将删除!!! 如果用到此函数,可参考程序开发手册的《游戏退出》一章,转用exit_and_join(0)
向引擎声明游戏退出,则logic/render等函数无效 如果使用独立公共大厅的方式(res目录下增加use_lobby文件),则不需要调用此函数。

Parameters:
game_idint : 为游戏gameid
exit_to_lobbybool : 退出时是否需要保持网络链接,如果是用独立公共大厅,则此项必须为True。在SDK环境下,不提供退出到大厅后再次进入游戏。
def bye (   self )

向引擎声明退出整个游戏(包括公共大厅).

def exit_and_join (   self,
  auto_login_mode = 0 
)

退出游戏,然后再进入指定模式
这个过程会先销毁当前游戏资源再通过init函数进入游戏逻辑,建议慎用。
此函数必须使用独立公共大厅。

Parameters:
auto_login_modeint : 退出房间后再自动创建指定模式的房间。默认为0,即会退出到公共大厅界面
def team_join (   self,
  mode_id,
  uid_list 
)

组队进入指定模式的房间
其中uid_list里面的玩家必须在同一个游戏中,而且该玩家也需要在房间内,否则无效。
此函数必须使用独立公共大厅。SDK下只能在远程服务器有效。

Parameters:
mode_idint : 游戏模式
uid_listlist : 其他玩家的uid列表,注意不应该超过房间的人数上限,同时最大也不能超过10个。如果超过10个,只取前10个uid
def chat_change_movie (   self,
  swf = None 
)

更换聊天框接口

Parameters:
swfstr : swf文件名
def chat_min_btn_visible (   self,
  v 
)

隐藏/显示聊天框的最小化按钮

Parameters:
vbool : 是否可见
def chat_set_sys_text_color (   self,
  color_str = None 
)

设置聊天框默认颜色(系统消息)

Parameters:
color_strstr: 颜色代码RRGGBB,例如"ff0000"为红色
def chat_set_name_text_color (   self,
  color_str = None 
)

设置聊天框默认颜色(名字)

Parameters:
color_strstr: 颜色代码RRGGBB,例如"ff0000"为红色
def chat_set_chat_text_color (   self,
  color_str = None 
)

设置聊天框默认颜色(普通消息)

Parameters:
color_strstr: 颜色代码RRGGBB,例如"ff0000"为红色
def chat_set_private_text_color (   self,
  color_str = None 
)

设置聊天框默认颜色(私聊消息)

Parameters:
color_strstr: 颜色代码RRGGBB,例如"ff0000"为红色
def chat_set_horn_text_color (   self,
  color_str = None 
)

设置聊天框默认颜色(小喇叭消息)

Parameters:
color_strstr: 颜色代码RRGGBB,例如"ff0000"为红色
def chat_set_msg_send_time (   self,
  send_time 
)

设置聊天的发言间隔

Parameters:
send_timeint : 发言间隔,单位:秒。例如:send_time=5,则两次发言的间隔不能小于5秒
def chat_set_my_send_func (   self,
  my_send_func = None 
)

设置发聊天消息时的回调函数
需要注意,设置的回调函数,需要有返回值:
若为True,则会发送消息;若为False,则不会发送消息
可以理解为这是一个check函数

Parameters:
my_send_func(msg)function : 回调函数, 设置None为取消之前的设置
def chat_hide (   self,
  flag = None 
)

隐藏公共聊天框的显示区域,但会保留最小化按钮
不调用时,默认为显示

Parameters:
flagbool: True为隐藏, False为显示
def chat_show (   self )

显示整个公共聊天框.

def chat_close (   self )

隐藏整个公共聊天框.

def chat_get_movie (   self )

获取公共聊天框的movie对象.

Return values:
flashui.moive注意:当聊天框没有被初始化时,返回值为None
def chat_set_focus (   self,
  focus 
)

设置公共聊天框是否具有输入焦点
不调用此接口时,默认为获得焦点

Parameters:
focusbool : True获得输入焦点 / False失去输入焦点
def chat_add_msg (   self,
  text 
)

在聊天框增加消息

Parameters:
textstr :
def chat_set_movie_depth (   self,
  depth = 0 
)

设置聊天框的层次.

Parameters:
depth: int 指定movie所在的层次,数字大的在上面,例如:depth=10的会一直在depth=0的上面。默认值为0。
def register_onchat_callback (   self,
  callback 
)

设置收到聊天消息的回调

Parameters:
callbackfunc : 回调函数,会传入callback(channel, from_uid, from_name, text) 第一个参数channel是发送频道:CHAT_CHANNEL_UNKNOW、CHAT_CHANNEL_BIG_HORN、CHAT_CHANNEL_HORN、CHAT_CHANNEL_ROOM、CHAT_CHANNEL_LOBBY
第二个参数from_uid是发送者的uid
第三个参数from_name是发送者的昵称
第四个参数text是聊天内容
def avatar_new_panel (   self,
  parent,
  width = 256,
  height = 512,
  window_type = "flash" 
)

此接口无效.


目前avatar的生成请看iavatar_ui模块

def avatar_destroy (   self )

销毁所有avatar.

def get_my_avatar (   self )

获取iTown平台的自己avatar(self):

Return values:
stravatar的字符串
def get_my_nickname (   self )

获取iTown平台中自己的昵称.

Return values:
str昵称
def show_performance (   self,
  flag 
)

打开/关闭性能曲线

Parameters:
flagbool : True打开/False关闭
def get_render_fps (   self )

获取当前渲染帧率

Return values:
float渲染帧率
def show_achieve_tip (   self,
  name,
  score,
  pic = "",
  libao_flag = False,
  pos = None 
)

显示成就获得提示框的接口 显示一个成就提示

Parameters:
namestr:成就名称,只能显示14个字节
scorestr:成就分数,只能显示3个字节
picstr:成就图标路径,图标大小必须是42*42
libao_flagbool:是否赠送礼包,True的话会额外显示礼包图片
pos: (x, y) 屏幕坐标,None为默认位置
def show_achieve_tip_by_id (   self,
  achid,
  pos = None 
)

显示成就获得提示框的接口

Parameters:
achidint:成就id,需要参考服务端设置成就的方法
pos: (x, y) 屏幕坐标,None为默认位置
def callout (   self,
  frequence,
  func,
  args = None,
  callout_type = CALLOUT_TYPE_SEC,
  forever = False 
)

设置定时器

Parameters:
frequencefloat : 频率,单位是秒或者帧,由callout_type指定,如果是帧,则frequence会强制转换成int
func(args)function : 回调函数
args回调参数
callout_typeint : 频率类型,CALLOUT_TYPE_FRAME为帧,CALLOUT_TYPE_SEC为秒
foreverbool : 是否永久
Return values:
int返回定时器ID,用于销毁定时器
def remove_callout (   self,
  callout_index 
)

删除指定计时器

Parameters:
callout_indexint : 计时器ID
Return values:
boolTrue代表删除成功,False表示ID不存在
def callout_clear (   self )

清空计时器,建议退出游戏时调用.

def close_message_box (   self,
  idx 
)

关闭show_msg、show_alert、show_confirm接口打开的界面

Parameters:
idxint :show_msg、show_alert、show_confirm返回的index值
def show_msg (   self,
  msg,
  timeout = 2,
  title_label = "提示",
  is_color_text = False,
  enable_keyboard = False 
)

公用的消息提示框

Parameters:
msgstr : 消息字符串。注意:实际显示效果依界面的显示区域而定
timeoutint : 指定时间(单位:秒)后自动关闭,默认参数为2,timeout<=0则不会显示
title_labelstr: 警告框标题,默认值为“提示”,最大长度14字节
is_color_textbool: msg是否是有颜色的文字,默认值为False(文字颜色的格式码示例:"#cff0000这是红色的文字")
enable_keyboardbool : 此提示框是否接收键盘消息,默认不接收
Return values:
int: 一个index,可以作为close_message_box的参数
def get_text_panel (   self )

获取一个文字对象,注意此文字是在最上层
如果引用不存在,则会被回收
字符串长度必须1000以内
有以下方法:
set_color(0xAARRGGBB) 颜色代码(ARGB格式,例如0xFFFF0000代表红色)
set_text(str) 字符串
set_coord((x, y)) 屏幕坐标元组
有以下属性:
visible 只写 bool.

def message_box_change_movie (   self,
  swf_file_name,
  cursor_callback = None 
)

更换公用的警告框、公用的确认框的样式

Parameters:
swf_file_namestr : swf文件名
cursor_callbackfunc : 鼠标光标形态发生改变时的回调函数(参见flashui.movie.cursor_callback的说明),默认参数None表示使用平台提供的鼠标样式
def show_alert (   self,
  msg,
  ok_func = None,
  ok_func_arg = None,
  title_label = "提示",
  ok_btn_label = "确定",
  is_color_text = False,
  enable_keyboard = False 
)

公用的警告框(有确定按钮)

Parameters:
msgstr: 消息字符串。注意:实际显示效果依界面的显示区域而定
ok_funcfunc: 点击确定按钮后的回调函数,默认值None
ok_func_arg: 点击确定按钮后的回调函数的参数,默认值None
title_labelstr: 警告框标题,默认值为“提示”,最大长度14字节
ok_btn_labelstr: 确定按钮的label,默认值为“确定”
is_color_textbool: msg是否是有颜色的文字,默认值为False(文字颜色的格式码示例:"#cff0000这是红色的文字")
enable_keyboardbool : 此提示框是否接收键盘消息,默认不接收
Return values:
int: 一个index,可以作为close_message_box的参数
def show_confirm (   self,
  msg,
  ok_func,
  ok_func_arg = None,
  cancel_func = None,
  cancel_func_arg = None,
  timeout = 0,
  title_label = "提示",
  ok_btn_label = "确定",
  cancel_btn_label = "取消",
  is_color_text = False,
  enable_keyboard = False 
)

公用的确认框(有确定、取消按钮)

Parameters:
msgstr : 消息字符串。注意:实际显示效果依界面的显示区域而定
ok_funcfunc : 点击确定按钮后的回调函数,默认值None
ok_func_arg: 点击确定按钮后的回调函数的参数,默认值None
cancel_funcfunc : 点击取消按钮后的回调函数,默认值None
cancel_func_arg: 点击取消按钮后的回调函数的参数,默认值None
timeoutint : 指定时间(单位:秒)后自动关闭,默认参数为0。如果小于等于零时则一直显示
title_labelstr: 警告框标题,默认值为“提示”,最大长度14字节
ok_btn_labelstr: 确定按钮的label,默认值为“确定”
cancel_btn_labelstr: 取消按钮的label,默认值为“取消”
is_color_textbool: msg是否是有颜色的文字,默认值为False(文字颜色的格式码示例:"#cff0000这是红色的文字")
enable_keyboardbool : 此提示框是否接收键盘消息,默认不接收
Return values:
int: 一个index,可以作为close_message_box的参数
def simple_ui_hide (   self,
  h 
)

简单的UI解决方案(有button、label、movie)
这只是简单的解决方案,所以不提供界面层次管理等高级功能,所有create_btn、create_label、create_movie三个接口创建的内容均在同一层

整体显示/隐藏create_btn、create_label、create_movie三个接口创建的内容

Parameters:
hbool : 是否隐藏(为整体解决方案的显示/隐藏)
def simple_ui_destory (   self )

销毁所有create_btn、create_label、create_movie创建的内容.

def create_btn (   self,
  pos = (0, 0,
  size = (100, 100,
  label = "button" 
)

创建一个button
button实例提供可修改属性: x,y,width,height,label,hide,func(button的响应函数),args(响应函数的参数),disabled,visible

Parameters:
postuple : 屏幕坐标元组(x, y)
sizetuple : button大小的元组(width, height)
labelstring : button的label
Return values:
simple_ui的button的实例
def remove_btn (   self,
  button 
)

删除一个button.

Parameters:
button: 参数为create_btn的返回值
def create_label (   self,
  pos = (0, 0,
  size = (100, 100,
  text = "label" 
)

创建一个label
label实例提供可修改属性: x,y,width,height,text,hide,color(文字的颜色),size(文字的大小)

Parameters:
postuple : 屏幕坐标元组(x, y)
sizetuple : label大小的元组(width, height)
labelstring : label的text
Return values:
simple_ui的label的实例
def remove_label (   self,
  label 
)

删除一个label.

Parameters:
label: 参数为create_label的返回值
def create_movie (   self )

创建一个movie
movie实例提供以下方法:
clear() : 清除所有该movie之前画出来的内容
line_style(color, thickness = 2, alpha = 100) : 设置在之后的绘画时线条的颜色/粗细/透明度(thickness取值范围1-255)
begin_fill(color, alpha = 100) :与end_fill对应,设置填充时的颜色和透明度
end_fill() :与begin_fill对应,对从上一次调用beginFill之后绘画出来的闭合形状应用填充。
draw_line(start_pos_x, start_pos_y, end_pos_x, end_pos_y) :画一条线,参数为起始点坐标
draw_oval(pos_x, pos_y, _w, _h) :画一个椭圆,pos_x/pos_y为中心点坐标,_w/_h为横向和纵向的半径

Return values:
simple_ui的movie的实例
def remove_movie (   self,
  movie 
)

删除一个movie.

Parameters:
movie: 参数为create_movie的返回值
def show_achieve (   self,
  uid,
  nickname = "" 
)

显示成就界面

Parameters:
uidint : 玩家ID
nicknamestr : 玩家的昵称(需要调用者提供,默认值为空字符串)
def close_achieve (   self )

关闭成就界面.

def show_card (   self,
  uid 
)

显示名片界面

Parameters:
uidint : 玩家ID
def update_module (   self,
  module_name 
)

热更新一个Python模块
注意,本接口与python的内置reload不同:
支持: (1)更新代码对象(function/method/static_method/class_method)
(2)保留数据对象原值(除了代码对象外都是数据对象)
不支持: (1)不支持命名空间的命名删除 (2)不支持类的继承关系的修改

Parameters:
module_namestr : 模块名。
Return values:
module更新后的模块对象
def show_sys_mouse (   self,
  flag 
)

显示/隐藏鼠标鼠标

Parameters:
flagbool : True时则显示鼠标光标/False为隐藏
def set_sys_cursor (   self,
  cursor_file 
)

设置系统的鼠标光标样式

Parameters:
cursor_file: string 鼠标光标文件(*.cur或*.ani)路径,
相对于资源根目录,如果为空字符串表示使用回系统默认光标.
以pvz为例则是 "pvz/res/arrow.cur"
Return values:
None
def lock_cursor_pos (   self,
  flag 
)

将鼠标的位置锁定.

在逻辑帧中进行调用. 用途:比如fps游戏,鼠标不能移出窗口,但需要获取每帧的鼠标的偏移量.

Parameters:
flag: bool 需要锁定时为True,解除锁定时为False
Return values:
:(int, int) 返回相对于锁定位置的偏移量dx,dy. 提示:如果没有锁定鼠标位置时,鼠标的每帧的偏移量在 game.mouse_dx , game.mouse_dy 中定义.
def set_cursor_pos (   self,
  x,
  y 
)

设置鼠标的位置.

Parameters:
pos: (int, int) 屏幕坐标.
Return values:
:bool 设置成功返回True,设置失败返回False 提示:不要与 iapi.lock_cursor_pos 同时使用.
def set_background_color (   self,
  color 
)

设置背景颜色

Parameters:
colorint : ARGB,因此范围必须在0x000000 - 0xFFFFFF
def save_screen_to_file (   self )

截取当前屏幕,保存成文件(JPG格式).

在screenshot目录下生成截图文件.格式为 游戏名_年月日时分秒百分之一秒.jpg

Return values:
:bool 是否截图成功
def save_screen_to_image (   self,
  name,
  layer_id,
  w,
  h 
)

截取当前屏幕到一个 iworld2d.image2d 对象.

注意: 请确保 iworld2d 已初始化; 对象默认为隐藏.

Parameters:
name: str 生成的对象名
layer_id: iworld2d 中的层次
w: 生成对象的宽度
h: 生成对象的高度
Return values:
:iworld2d.image2d 图片对象,失败返回None
def show_attach (   self,
  image,
  offset = (0, 0 
)

设置鼠标悬挂图片

Parameters:
imagestr 图片文件名,以pvz为例则是"::pvz/res/ui/card/Shovel.png",必须添加两个冒号,如果为空则不会更换图片。另外图片不能过大,以64*64以内为宜。
offsettuple 相对鼠标位置的偏移
def read_file (   self,
  filename 
)

读取res目录下的某个文件 只能读取自己项目下的文件,如果传入非自己项目的文件目录会自动转为读自己的项目目录.

Parameters:
filename文件名,相对路径下的,例如"pvz/res/version.ini"。文件名开头必须是xxx/res/或者xxx/config/的格式,否则不成功
Return values:
str文件的内容,如果不存在,返回None
def write_file (   self,
  filename,
  is_binary,
  is_append,
  data 
)

写config目录下的某个文件,目前是覆盖式写法或追加式写法 只能写自己项目下的文件.

如果传入非自己项目的文件目录会自动写到自己的项目目录.

Parameters:
filenamestr 文件名,相对路径下的,例如"pvz/config/data.dat"。
文件名必须是xxx/config/filename 或 filename的格式,否则不成功.文件不存在,会创建该文件。 如果采用filename的形式,会自动转为xxx/config/filename
is_binarybool 是否是二进制格式
is_appendbool 是否是追加方式,是则在文件末尾追加内容,否则覆盖内容
datastr 需要写入的数据
Return values:
返回None
def check_window_active (   self )

当前客户端窗口是否为激活状态

Return values:
boolTrue为激活,False为非激活状态
def profile (   self,
  is_active,
  filename = "presult.dat" 
)

开启/停止python的性能分析profile

Parameters:
is_activebool 是否开启性能分析
filenamestr 停止的时候才需要传入profile的文件路径
def show_tips (   self,
  text 
)

使用一个统一的界面显示tips.

Parameters:
textstr tips的内容(注意:这里是使用文鼎特圆简体字库来显示,因此只支持简体中文、数字、英文)
def close_tips (   self )

关闭show_tips接口显示的tips.

def close_fps_info (   self )

关闭SDK版本左上角的帧率显示.

def req_rank_by_uid_list (   self,
  callback_func,
  uid_list,
  nickname_list,
  game_id,
  rank_mode,
  rank_type,
  tag_name 
)

请求指定UID列表中玩家的指定排名(异步返回).

Parameters:
callback_func异步返回的回调函数,函数定义为def callback_func(data). data为一个dict,内容为:. data["game_id"]、data["rank_mode"]、data["rank_type"]、data["tag_name"]均为调用时的传入参数. data["rankmap"]: dict,为排行榜数据。格式为:{uid:{"rank":名次, "tag_value":tag值}}. 名次: -1不在1w名,-2无效uid,-3该uid没有玩过game_id的游戏,None为服务器错误
uid_listlist 查询的UID列表.
nickname_listlist 查询的UID对应的玩家昵称,长度需要与uid_list一致.
game_idint 游戏ID.
rank_modeint 需要查询的排行榜类型, 它的数值可以是:1-历史排行,2-今日排行,3-本周排行.
rank_typeint 排行的升降序,需要与提供给服务端的配置一致:0-降序,1-升序.
tag_nameint 需要查询的排行榜tag, 需要在hall_callback.set_rank_conf中设置过的tag*之一.
def get_money_icon_source (   self )

获取“iTown消费点”的图标的资源路径.

Return values:
str资源路径,可以直接赋值给UILoader的source属性
def set_game_exit_func (   self,
  func 
)

注册回调函数,当通过平台的“返回我的iTown”退出游戏,或者其他原因导致的退出游戏时,会调用.

方便开发者针对自己的游戏给出合适的提示.

Parameters:
funcfunction : 回调函数,无参数. 注意:. 需要开发者自己在此函数中、或者在此函数的后续执行中完成退出游戏的逻辑. 例如:此函数会触发一个“确认退出游戏么?”,则需要在玩家点击确认后,退出游戏.
def get_ach_icon_source (   self,
  ach_id 
)

获取对应id的成就图标的资源路径.

注意:正式发布后的游戏,成就图标是不在/res/_test/achieve/目录下的,请通过此接口获取资源路径,来保证SDK环境和正式环境的效果一致.

Parameters:
ach_idint : 成就id.
Return values:
str资源路径,可以直接赋值给UILoader的source属性
def report_objs (   self )

报告游戏脚本中现存的对象分类数量情况.

Return values:
str: 对象数量情况字符串.字符串格式举例如下: """
[76401] [TOTAL]
25778 <type 'tuple'>
4 <class 'iworld2d.layer2d'> ... """
def report_refs (   self,
  str_type 
)

绘制该type最多5个实例的引用图,每个引用图的深度为10.

Parameters:
str_typestr : 需要绘制的类型名称,格式为 iapi.report_objs 返回的类型名,例:‘<class 'iworld2d.layer2d'>’.
Return values:
str: 提示字符串. 提示:1 绘制结果在iTownSDK的安装目录下的logs文件夹中.
def report_growth (   self )

报告相比上次使用该接口时,当前的脚本对象有增长的种类及增长量。

Return values:
str: 增长对象数量情况字符串,格式举例如下: [46] [TOTAL]
1 <class 'td_game_player.CGamePlayer'>
+45 <class 'td_struct.CTowerBase'>
...
def report_refs_mass (   self,
  str_type 
)

大量绘制该type的实例引用图(最多打印20个对象),每个引用图的深度为5.

Parameters:
str_typestr : 需要绘制的类型名称,格式为 iapi.report_objs 返回的类型名,例:‘<class 'iworld2d.layer2d'>’.
Return values:
str: 提示字符串. 提示:1 绘制结果在iTownSDK的安装目录下的logs文件夹中.
def chat_cancel_ime (   self )

聊天框取消输入法状态,并使聊天框失去焦点.

def set_game_sysinfo_callback (   self,
  func 
)

设置系统广播公告回调函数,用于响应服务端 HallRoom.cghall_send_system_data 消息.

Parameters:
func: 系统公告函数, 函数形式为 func(*arg):None 其中 arg 的形式为 (roomid, data, extra1, extra2, extra3)
Return values:
:bool 是否成功
def get_shape_head_icon_path (   self,
  shape,
  style 
)

根据玩家SHAPE形状返回icon图片路径.


提示:如果用于UI,则资源请自行在路径前加上'::'

Parameters:
shape: int 对应 hall_player.shape 字段,可从服务器发过来
style: SHAPE_ICO_SMALL 或 SHAPE_ICO_LARGE
Return values:
:str 图片路径,以'::'打头,可直接用于UI中的路径,若需要用于iworld2d,请自行去除打头的'::'
失败,则返回空字符串.
def get_server_time (   self )

获取当前服务端的时间.


时间是unix时间戳,也就是1970年1月1日开始所经过的秒数.
即服务端的time.time()
SDK下是返回客户端本机时间,但正式环境返回的是服务器时间。

Return values:
:float 秒数
def show_exchange (   self,
  flag 
)

充值兑点界面显示/关闭

Parameters:
flag:True显示, False 关闭
def set_friend_list_change_callback (   self,
  func = None 
)

设置好友数量发生变化时的回调函数
.

Parameters:
func()function : 回调函数, 设置None为取消之前的设置

Member Data Documentation

int CALLOUT_TYPE_FRAME = 1 [static]

计时器频率类型(帧).

int CALLOUT_TYPE_SEC = 2 [static]

计时器频率类型(秒).

int SHAPE_ICO_SMALL = 0 [static]

shape icon 小 20*20.

int SHAPE_ICO_LARGE = 1 [static]

shape icon 大 40*40.

 All Classes Namespaces Functions Variables Properties