API 1.0. More...
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是所要传递的值 |
API 1.0.
def get_game_room_msgmgr | ( | self ) |
获取消息管理类,用于消息列表的发送.
def show_rank | ( | self, | |
flag | |||
) |
排行榜显示/关闭
flag:True | 显示排行榜, False 关闭排行榜 |
def show_shop | ( | self, | |
flag | |||
) |
商城显示/关闭
flag:True | 显示, False 关闭 |
def friend_chat | ( | self, | |
uid, | |||
name | |||
) |
打开社交系统的聊天界面,与指定玩家对话
uid | int :指定玩家的UID |
name | str :指定玩家的昵称 |
def player_is_my_friend | ( | self, | |
uid | |||
) |
判断一个uid是否是自己的好友
uid | int 需要添加好友的uid |
bool | 是否为自己的好友 |
def add_friend | ( | self, | |
uid, | |||
set_name = "" , |
|||
msg = "" |
|||
) |
添加好友
uid | 需要添加好友的uid |
set_name | (此参数已经失效)添加到好友的分组名,空字符串代表进入默认分组 |
msg | (此参数已经失效)给对方的留言 |
def get_my_friend_data | ( | self ) |
获取自己好友的数据.
SDK远程服务器是有真正的好友服务器,所以返回值是准确的(ingame字段会为0)。
而离线服务器没有真正的好友服务器,因此返回的好友数据均随机生成,会随机10个好友数据(可能含有自己,但实际运营中是不会有的)。
dict | : 以uid为key,value为好友数据的信息 好友数据也是一个dict,内容是:{'nick':昵称, 'shape':玩家头像, 'online':是否在线,1代表在线,0代表不在线, 'ingame':是否在本游戏中,1代表在本游戏中,0代表在其他游戏中} 即整个返回格式如下: { uid: # 好友uid {'nick':'好友的昵称', 'shape':玩家头像, 'online':是否在线, 'ingame':是否在本游戏中} } |
def show_invite | ( | self, | |
flag | |||
) |
邀请界面打开/关闭.
目前提供好友的邀请,一些规范请查看《程序开发手册》.
flag:True | 显示, False 关闭 |
def register_game_room_msgdefine_and_callback | ( | self, | |
eventdef, | |||
eventmap | |||
) |
注册网络消息和回调
eventdef:消息定义 | |
eventmap:对应的回调函数字典 |
def set_network_log_open | ( | self, | |
open = True |
|||
) |
网络消息的开关设置
open,: | True:打开网络日志;False:关闭网络日志 |
def pause_network | ( | self, | |
flag = True |
|||
) |
暂停网络消息回调
被暂停的消息会在缓存中,等到恢复时会再进行回调。
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 |
|||
) |
向引擎注册各种回调
game_id | int : 为游戏gameid,由初始调用游戏入口(xxx_init.py 中的init函数)给出 |
logic | function : 为游戏主逻辑函数 |
render | function : 渲染帧的回调 |
post_logic | function : 逻辑帧之后的一个回调 |
on_key_msg(msg,key_code) | function: 键盘消息响应函数 |
on_mouse_msg(msg,key_code) | function : 鼠标按键消息响应函数 |
on_mouse_wheel(msg,delta,key_state) | function : 鼠标滚轮响应函数 |
on_device_lost | function : D3D设备丢失时的响应(此时不能进行渲染),一般发生在切换Windows用户或者休眠时 |
on_device_restored | function : D3D设备回复时的响应 |
def is_press_key | ( | self, | |
key, | |||
need_active = True |
|||
) |
检测键盘某个键是否按下
key | int 请参考game.VK_xxx,例如game.VK_A/game.VK_ENTER |
need_active | bool True的时候,游戏窗口必须是激活的才会判断键是否按下,也就是check_window_active()为True;为False的时候无论窗口是否激活,都返回键的状态 |
bool | 是否按下 |
def is_press_ctrl | ( | self, | |
need_active = True |
|||
) |
检测Ctrl键是否按下
need_active | bool True的时候,游戏窗口必须是激活的才会判断键是否按下,也就是check_window_active()为True;为False的时候无论窗口是否激活,都返回键的状态 |
bool | 是否按下 |
def is_press_alt | ( | self, | |
need_active = True |
|||
) |
检测Alt键是否按下
need_active | bool True的时候,游戏窗口必须是激活的才会判断键是否按下,也就是check_window_active()为True;为False的时候无论窗口是否激活,都返回键的状态 |
bool | 是否按下 |
def is_press_shift | ( | self, | |
need_active = True |
|||
) |
检测Shift键是否按下
need_active | bool True的时候,游戏窗口必须是激活的才会判断键是否按下,也就是check_window_active()为True;为False的时候无论窗口是否激活,都返回键的状态 |
bool | 是否按下 |
def exit_game | ( | self, | |
game_id, | |||
exit_to_lobby = False |
|||
) |
!!! 即将删除!!! 如果用到此函数,可参考程序开发手册的《游戏退出》一章,转用exit_and_join(0)
向引擎声明游戏退出,则logic/render等函数无效 如果使用独立公共大厅的方式(res目录下增加use_lobby文件),则不需要调用此函数。
game_id | int : 为游戏gameid |
exit_to_lobby | bool : 退出时是否需要保持网络链接,如果是用独立公共大厅,则此项必须为True。在SDK环境下,不提供退出到大厅后再次进入游戏。 |
def bye | ( | self ) |
向引擎声明退出整个游戏(包括公共大厅).
def exit_and_join | ( | self, | |
auto_login_mode = 0 |
|||
) |
退出游戏,然后再进入指定模式
这个过程会先销毁当前游戏资源再通过init函数进入游戏逻辑,建议慎用。
此函数必须使用独立公共大厅。
auto_login_mode | int : 退出房间后再自动创建指定模式的房间。默认为0,即会退出到公共大厅界面 |
def team_join | ( | self, | |
mode_id, | |||
uid_list | |||
) |
组队进入指定模式的房间
其中uid_list里面的玩家必须在同一个游戏中,而且该玩家也需要在房间内,否则无效。
此函数必须使用独立公共大厅。SDK下只能在远程服务器有效。
mode_id | int : 游戏模式 |
uid_list | list : 其他玩家的uid列表,注意不应该超过房间的人数上限,同时最大也不能超过10个。如果超过10个,只取前10个uid |
def chat_change_movie | ( | self, | |
swf = None |
|||
) |
更换聊天框接口
swf | str : swf文件名 |
def chat_min_btn_visible | ( | self, | |
v | |||
) |
隐藏/显示聊天框的最小化按钮
v | bool : 是否可见 |
def chat_set_sys_text_color | ( | self, | |
color_str = None |
|||
) |
设置聊天框默认颜色(系统消息)
color_str | str: 颜色代码RRGGBB,例如"ff0000"为红色 |
def chat_set_name_text_color | ( | self, | |
color_str = None |
|||
) |
设置聊天框默认颜色(名字)
color_str | str: 颜色代码RRGGBB,例如"ff0000"为红色 |
def chat_set_chat_text_color | ( | self, | |
color_str = None |
|||
) |
设置聊天框默认颜色(普通消息)
color_str | str: 颜色代码RRGGBB,例如"ff0000"为红色 |
def chat_set_private_text_color | ( | self, | |
color_str = None |
|||
) |
设置聊天框默认颜色(私聊消息)
color_str | str: 颜色代码RRGGBB,例如"ff0000"为红色 |
def chat_set_horn_text_color | ( | self, | |
color_str = None |
|||
) |
设置聊天框默认颜色(小喇叭消息)
color_str | str: 颜色代码RRGGBB,例如"ff0000"为红色 |
def chat_set_msg_send_time | ( | self, | |
send_time | |||
) |
设置聊天的发言间隔
send_time | int : 发言间隔,单位:秒。例如:send_time=5,则两次发言的间隔不能小于5秒 |
def chat_set_my_send_func | ( | self, | |
my_send_func = None |
|||
) |
设置发聊天消息时的回调函数
需要注意,设置的回调函数,需要有返回值:
若为True,则会发送消息;若为False,则不会发送消息
可以理解为这是一个check函数
my_send_func(msg) | function : 回调函数, 设置None为取消之前的设置 |
def chat_hide | ( | self, | |
flag = None |
|||
) |
隐藏公共聊天框的显示区域,但会保留最小化按钮
不调用时,默认为显示
flag | bool: True为隐藏, False为显示 |
def chat_show | ( | self ) |
显示整个公共聊天框.
def chat_close | ( | self ) |
隐藏整个公共聊天框.
def chat_get_movie | ( | self ) |
获取公共聊天框的movie对象.
flashui.moive | 注意:当聊天框没有被初始化时,返回值为None |
def chat_set_focus | ( | self, | |
focus | |||
) |
设置公共聊天框是否具有输入焦点
不调用此接口时,默认为获得焦点
focus | bool : True获得输入焦点 / False失去输入焦点 |
def chat_add_msg | ( | self, | |
text | |||
) |
在聊天框增加消息
text | str : |
def chat_set_movie_depth | ( | self, | |
depth = 0 |
|||
) |
设置聊天框的层次.
depth | : int 指定movie所在的层次,数字大的在上面,例如:depth=10的会一直在depth=0的上面。默认值为0。 |
def register_onchat_callback | ( | self, | |
callback | |||
) |
设置收到聊天消息的回调
callback | func : 回调函数,会传入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):
str | avatar的字符串 |
def get_my_nickname | ( | self ) |
获取iTown平台中自己的昵称.
str | 昵称 |
def show_performance | ( | self, | |
flag | |||
) |
打开/关闭性能曲线
flag | bool : True打开/False关闭 |
def get_render_fps | ( | self ) |
获取当前渲染帧率
float | 渲染帧率 |
def show_achieve_tip | ( | self, | |
name, | |||
score, | |||
pic = "" , |
|||
libao_flag = False , |
|||
pos = None |
|||
) |
显示成就获得提示框的接口 显示一个成就提示
name | str:成就名称,只能显示14个字节 |
score | str:成就分数,只能显示3个字节 |
pic | str:成就图标路径,图标大小必须是42*42 |
libao_flag | bool:是否赠送礼包,True的话会额外显示礼包图片 |
pos | : (x, y) 屏幕坐标,None为默认位置 |
def show_achieve_tip_by_id | ( | self, | |
achid, | |||
pos = None |
|||
) |
显示成就获得提示框的接口
achid | int:成就id,需要参考服务端设置成就的方法 |
pos | : (x, y) 屏幕坐标,None为默认位置 |
def callout | ( | self, | |
frequence, | |||
func, | |||
args = None , |
|||
callout_type = CALLOUT_TYPE_SEC , |
|||
forever = False |
|||
) |
设置定时器
frequence | float : 频率,单位是秒或者帧,由callout_type指定,如果是帧,则frequence会强制转换成int |
func(args) | function : 回调函数 |
args | 回调参数 |
callout_type | int : 频率类型,CALLOUT_TYPE_FRAME为帧,CALLOUT_TYPE_SEC为秒 |
forever | bool : 是否永久 |
int | 返回定时器ID,用于销毁定时器 |
def remove_callout | ( | self, | |
callout_index | |||
) |
删除指定计时器
callout_index | int : 计时器ID |
bool | True代表删除成功,False表示ID不存在 |
def callout_clear | ( | self ) |
清空计时器,建议退出游戏时调用.
def close_message_box | ( | self, | |
idx | |||
) |
关闭show_msg、show_alert、show_confirm接口打开的界面
idx | int :show_msg、show_alert、show_confirm返回的index值 |
def show_msg | ( | self, | |
msg, | |||
timeout = 2 , |
|||
title_label = "提示" , |
|||
is_color_text = False , |
|||
enable_keyboard = False |
|||
) |
公用的消息提示框
msg | str : 消息字符串。注意:实际显示效果依界面的显示区域而定 |
timeout | int : 指定时间(单位:秒)后自动关闭,默认参数为2,timeout<=0则不会显示 |
title_label | str: 警告框标题,默认值为“提示”,最大长度14字节 |
is_color_text | bool: msg是否是有颜色的文字,默认值为False(文字颜色的格式码示例:"#cff0000这是红色的文字") |
enable_keyboard | bool : 此提示框是否接收键盘消息,默认不接收 |
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 |
|||
) |
更换公用的警告框、公用的确认框的样式
swf_file_name | str : swf文件名 |
cursor_callback | func : 鼠标光标形态发生改变时的回调函数(参见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 |
|||
) |
公用的警告框(有确定按钮)
msg | str: 消息字符串。注意:实际显示效果依界面的显示区域而定 |
ok_func | func: 点击确定按钮后的回调函数,默认值None |
ok_func_arg | : 点击确定按钮后的回调函数的参数,默认值None |
title_label | str: 警告框标题,默认值为“提示”,最大长度14字节 |
ok_btn_label | str: 确定按钮的label,默认值为“确定” |
is_color_text | bool: msg是否是有颜色的文字,默认值为False(文字颜色的格式码示例:"#cff0000这是红色的文字") |
enable_keyboard | bool : 此提示框是否接收键盘消息,默认不接收 |
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 |
|||
) |
公用的确认框(有确定、取消按钮)
msg | str : 消息字符串。注意:实际显示效果依界面的显示区域而定 |
ok_func | func : 点击确定按钮后的回调函数,默认值None |
ok_func_arg | : 点击确定按钮后的回调函数的参数,默认值None |
cancel_func | func : 点击取消按钮后的回调函数,默认值None |
cancel_func_arg | : 点击取消按钮后的回调函数的参数,默认值None |
timeout | int : 指定时间(单位:秒)后自动关闭,默认参数为0。如果小于等于零时则一直显示 |
title_label | str: 警告框标题,默认值为“提示”,最大长度14字节 |
ok_btn_label | str: 确定按钮的label,默认值为“确定” |
cancel_btn_label | str: 取消按钮的label,默认值为“取消” |
is_color_text | bool: msg是否是有颜色的文字,默认值为False(文字颜色的格式码示例:"#cff0000这是红色的文字") |
enable_keyboard | bool : 此提示框是否接收键盘消息,默认不接收 |
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三个接口创建的内容
h | bool : 是否隐藏(为整体解决方案的显示/隐藏) |
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
pos | tuple : 屏幕坐标元组(x, y) |
size | tuple : button大小的元组(width, height) |
label | string : button的label |
simple_ui的button的实例 |
def remove_btn | ( | self, | |
button | |||
) |
删除一个button.
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(文字的大小)
pos | tuple : 屏幕坐标元组(x, y) |
size | tuple : label大小的元组(width, height) |
label | string : label的text |
simple_ui的label的实例 |
def remove_label | ( | self, | |
label | |||
) |
删除一个label.
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为横向和纵向的半径
simple_ui的movie的实例 |
def remove_movie | ( | self, | |
movie | |||
) |
删除一个movie.
movie | : 参数为create_movie的返回值 |
def show_achieve | ( | self, | |
uid, | |||
nickname = "" |
|||
) |
显示成就界面
uid | int : 玩家ID |
nickname | str : 玩家的昵称(需要调用者提供,默认值为空字符串) |
def close_achieve | ( | self ) |
关闭成就界面.
def show_card | ( | self, | |
uid | |||
) |
显示名片界面
uid | int : 玩家ID |
def update_module | ( | self, | |
module_name | |||
) |
热更新一个Python模块
注意,本接口与python的内置reload不同:
支持: (1)更新代码对象(function/method/static_method/class_method)
(2)保留数据对象原值(除了代码对象外都是数据对象)
不支持: (1)不支持命名空间的命名删除 (2)不支持类的继承关系的修改
module_name | str : 模块名。 |
module | 更新后的模块对象 |
def show_sys_mouse | ( | self, | |
flag | |||
) |
显示/隐藏鼠标鼠标
flag | bool : True时则显示鼠标光标/False为隐藏 |
def set_sys_cursor | ( | self, | |
cursor_file | |||
) |
设置系统的鼠标光标样式
cursor_file | : string 鼠标光标文件(*.cur或*.ani)路径, 相对于资源根目录,如果为空字符串表示使用回系统默认光标. 以pvz为例则是 "pvz/res/arrow.cur" |
None |
def lock_cursor_pos | ( | self, | |
flag | |||
) |
将鼠标的位置锁定.
在逻辑帧中进行调用. 用途:比如fps游戏,鼠标不能移出窗口,但需要获取每帧的鼠标的偏移量.
flag | : bool 需要锁定时为True,解除锁定时为False |
: | (int, int) 返回相对于锁定位置的偏移量dx,dy. 提示:如果没有锁定鼠标位置时,鼠标的每帧的偏移量在 game.mouse_dx , game.mouse_dy 中定义. |
def set_cursor_pos | ( | self, | |
x, | |||
y | |||
) |
设置鼠标的位置.
pos | : (int, int) 屏幕坐标. |
: | bool 设置成功返回True,设置失败返回False 提示:不要与 iapi.lock_cursor_pos 同时使用. |
def set_background_color | ( | self, | |
color | |||
) |
设置背景颜色
color | int : ARGB,因此范围必须在0x000000 - 0xFFFFFF |
def save_screen_to_file | ( | self ) |
截取当前屏幕,保存成文件(JPG格式).
在screenshot目录下生成截图文件.格式为 游戏名_年月日时分秒百分之一秒.jpg
: | bool 是否截图成功 |
def save_screen_to_image | ( | self, | |
name, | |||
layer_id, | |||
w, | |||
h | |||
) |
截取当前屏幕到一个 iworld2d.image2d 对象.
注意: 请确保 iworld2d 已初始化; 对象默认为隐藏.
name | : str 生成的对象名 |
layer_id | : iworld2d 中的层次 |
w | : 生成对象的宽度 |
h | : 生成对象的高度 |
: | iworld2d.image2d 图片对象,失败返回None |
def show_attach | ( | self, | |
image, | |||
offset = (0, 0 |
|||
) |
设置鼠标悬挂图片
image | str 图片文件名,以pvz为例则是"::pvz/res/ui/card/Shovel.png",必须添加两个冒号,如果为空则不会更换图片。另外图片不能过大,以64*64以内为宜。 |
offset | tuple 相对鼠标位置的偏移 |
def read_file | ( | self, | |
filename | |||
) |
读取res目录下的某个文件 只能读取自己项目下的文件,如果传入非自己项目的文件目录会自动转为读自己的项目目录.
filename | 文件名,相对路径下的,例如"pvz/res/version.ini"。文件名开头必须是xxx/res/或者xxx/config/的格式,否则不成功 |
str | 文件的内容,如果不存在,返回None |
def write_file | ( | self, | |
filename, | |||
is_binary, | |||
is_append, | |||
data | |||
) |
写config目录下的某个文件,目前是覆盖式写法或追加式写法 只能写自己项目下的文件.
如果传入非自己项目的文件目录会自动写到自己的项目目录.
filename | str 文件名,相对路径下的,例如"pvz/config/data.dat"。 文件名必须是xxx/config/filename 或 filename的格式,否则不成功.文件不存在,会创建该文件。 如果采用filename的形式,会自动转为xxx/config/filename |
is_binary | bool 是否是二进制格式 |
is_append | bool 是否是追加方式,是则在文件末尾追加内容,否则覆盖内容 |
data | str 需要写入的数据 |
返回None |
def check_window_active | ( | self ) |
当前客户端窗口是否为激活状态
bool | True为激活,False为非激活状态 |
def profile | ( | self, | |
is_active, | |||
filename = "presult.dat" |
|||
) |
开启/停止python的性能分析profile
is_active | bool 是否开启性能分析 |
filename | str 停止的时候才需要传入profile的文件路径 |
def show_tips | ( | self, | |
text | |||
) |
使用一个统一的界面显示tips.
text | str 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列表中玩家的指定排名(异步返回).
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_list | list 查询的UID列表. |
nickname_list | list 查询的UID对应的玩家昵称,长度需要与uid_list一致. |
game_id | int 游戏ID. |
rank_mode | int 需要查询的排行榜类型, 它的数值可以是:1-历史排行,2-今日排行,3-本周排行. |
rank_type | int 排行的升降序,需要与提供给服务端的配置一致:0-降序,1-升序. |
tag_name | int 需要查询的排行榜tag, 需要在hall_callback.set_rank_conf中设置过的tag*之一. |
def get_money_icon_source | ( | self ) |
获取“iTown消费点”的图标的资源路径.
str | 资源路径,可以直接赋值给UILoader的source属性 |
def set_game_exit_func | ( | self, | |
func | |||
) |
注册回调函数,当通过平台的“返回我的iTown”退出游戏,或者其他原因导致的退出游戏时,会调用.
方便开发者针对自己的游戏给出合适的提示.
func | function : 回调函数,无参数. 注意:. 需要开发者自己在此函数中、或者在此函数的后续执行中完成退出游戏的逻辑. 例如:此函数会触发一个“确认退出游戏么?”,则需要在玩家点击确认后,退出游戏. |
def get_ach_icon_source | ( | self, | |
ach_id | |||
) |
获取对应id的成就图标的资源路径.
注意:正式发布后的游戏,成就图标是不在/res/_test/achieve/目录下的,请通过此接口获取资源路径,来保证SDK环境和正式环境的效果一致.
ach_id | int : 成就id. |
str | 资源路径,可以直接赋值给UILoader的source属性 |
def report_objs | ( | self ) |
报告游戏脚本中现存的对象分类数量情况.
str | : 对象数量情况字符串.字符串格式举例如下: """ [76401] [TOTAL] 25778 <type 'tuple'> 4 <class 'iworld2d.layer2d'> ... """ |
def report_refs | ( | self, | |
str_type | |||
) |
绘制该type最多5个实例的引用图,每个引用图的深度为10.
str_type | str : 需要绘制的类型名称,格式为 iapi.report_objs 返回的类型名,例:‘<class 'iworld2d.layer2d'>’. |
str | : 提示字符串. 提示:1 绘制结果在iTownSDK的安装目录下的logs文件夹中. |
def report_growth | ( | self ) |
报告相比上次使用该接口时,当前的脚本对象有增长的种类及增长量。
str | : 增长对象数量情况字符串,格式举例如下: [46] [TOTAL] 1 <class 'td_game_player.CGamePlayer'> +45 <class 'td_struct.CTowerBase'> ... |
def report_refs_mass | ( | self, | |
str_type | |||
) |
大量绘制该type的实例引用图(最多打印20个对象),每个引用图的深度为5.
str_type | str : 需要绘制的类型名称,格式为 iapi.report_objs 返回的类型名,例:‘<class 'iworld2d.layer2d'>’. |
str | : 提示字符串. 提示:1 绘制结果在iTownSDK的安装目录下的logs文件夹中. |
def chat_cancel_ime | ( | self ) |
聊天框取消输入法状态,并使聊天框失去焦点.
def set_game_sysinfo_callback | ( | self, | |
func | |||
) |
设置系统广播公告回调函数,用于响应服务端 HallRoom.cghall_send_system_data 消息.
func | : 系统公告函数, 函数形式为 func(*arg):None 其中 arg 的形式为 (roomid, data, extra1, extra2, extra3) |
: | bool 是否成功 |
def get_shape_head_icon_path | ( | self, | |
shape, | |||
style | |||
) |
根据玩家SHAPE形状返回icon图片路径.
提示:如果用于UI,则资源请自行在路径前加上'::'
shape | : int 对应 hall_player.shape 字段,可从服务器发过来 |
style | : SHAPE_ICO_SMALL 或 SHAPE_ICO_LARGE |
: | str 图片路径,以'::'打头,可直接用于UI中的路径,若需要用于iworld2d,请自行去除打头的'::' 失败,则返回空字符串. |
def get_server_time | ( | self ) |
获取当前服务端的时间.
时间是unix时间戳,也就是1970年1月1日开始所经过的秒数.
即服务端的time.time()
SDK下是返回客户端本机时间,但正式环境返回的是服务器时间。
: | float 秒数 |
def show_exchange | ( | self, | |
flag | |||
) |
充值兑点界面显示/关闭
flag:True | 显示, False 关闭 |
def set_friend_list_change_callback | ( | self, | |
func = None |
|||
) |
设置好友数量发生变化时的回调函数
.
func() | function : 回调函数, 设置None为取消之前的设置 |
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.