跳到主要内容

game.client

简介

基础模块入口

组件接口

FConnStatus.gs

连接状态组件

函数原型函数作用
void check_connect_status()检测判断当前连接状态,是否需要重连

FUIControl.gs

UI控制组件

函数原型函数作用
string get_name()控件名
map get_layer_config()获取组件层级配置
string get_layer()获取组件层级
bool is_active()是否激活
void init()初始化
void hide()隐藏
void bind_widget_impl(mixed widget_impl)绑定控件
mixed get_widget_impl()获取UI控件
mixed get_child_widget(string display_name)获取子控件
string get_child_widget_class_name(string display_name)获取子控件类名
mixed load_gs_widget(string display_name)加载自定义子控件
mixed load_engine_widget(string display_name)加载默认子控件
void add_widget_event(mixed widget, string event_name, function callback)通用事件注册

GameClientD.gs

游戏网络客户端

函数原型函数作用
void frame_update(float DeltaTime = 0)帧循环刷新

LoginD.gs

登录模块

函数原型函数作用
void login_ok(object conn, string rid, mixed server_id, int login_time)登陆成功
void login_fail(object conn, string reason)登陆失败
void logout(object conn)强制登出

MsgClientD.gs

消息实例

函数原型函数作用
void MsgImplD.receive_msg(object conn, string cmd, array cmd_args)普通消息
void register_user_cmd(string cmd, function callback)用户消息注册

UI.gs

UI抽象层管理器

函数原型函数作用
object open_page(string uri, map context = , bool is_stack = true)打开UI页面
void hide_page()隐藏销毁页面
void drop_page()销毁当前页面
object load_common_widget(string uri, map context = )加载UI组件
void hide_common_widget(string class_name)隐藏组件
void drop_common_widget(string class_name)销毁组件
object get_common_widget(string class_name)获取UI组件
void drop_all_widgets()清理所有组件
void message_box(string title = "提示", string content = "提示", map params = , function callback = nil)弹窗提示,可设置按钮文字,有middle_btn_text只显示中间按钮,回调参数为left,middle,right,cancel
void show_tips(string tips, string hex_color = "#ffffff", string animation = "Fade")显示向上浮动的提示

UIConfD.gs

层级配置文件

函数原型函数作用
map get_config(string name)获取对应的层级配置
string get_layer(string name)获取对应的层级

UserD.gs

用户管理模块

函数原型函数作用
void bind_user(object user)绑定客户端用户对象
void unbind_user()取消绑定客户端用户对象
object get_user()获取用户对象

User.gs

用户对象

函数原型函数作用
object get_conn()获取连接
bool is_connected()是否连接中

co.gs

单域协程池,基于pkg.service_pool封装。 根据togs的实现,在一次unity的update中一个协程最多只能唤醒一次, 所以提交的任务有很低的概率不能在当前帧执行,要确保当前帧执行请另创协程处理。

函数原型函数作用
void dispatch_co(function fn, ...)抛到协程池中执行
void dispatch_co_timeout(int timeout, function fn, ...)抛到协程池中执行,如果等待超过时限后取消执行

coroutineex.gs

函数原型函数作用
void coroutine.wait_next_frame()等待下一帧

event_system.gs

函数原型函数作用
void send(string event, ...)发送事件
void register_by_ob(string event, object ob, function callback)注册,并传入ob,方便回调附带对象和注销操作
void unregister_by_ob(string event, object ob)注销指定对象的事件
void unregister_all_by_ob(object ob)注销指定对象注册的所有事件
void register(string event, function callback)注册事件回调
void unregister(string event, function callback)注销事件回调
void unregister_all(string event)清除事件的所有回调

extimer.gs

计时任务管理器。 gs的timer和togs的单域主线程不兼容,使用不方便,故实现一个extimer。 依赖主协程的update,所以不允许阻塞。 delay不允许重名,重名的任务会直接覆盖, 适合用在一些可能会重复触发相同任务但这个任务只需要被执行一次的地方。

函数原型函数作用
TimeTask create_timer(string name, float duration, int count, function fn, ...)创建一个计时任务
TimeTask create_once_timer(string name, float duration, function fn, ...)创建一个单次计时任务
void destroy_timer_by_name(string name)删除一个指定名字的timer
void destroy_timer(TimeTask tt)删除一个timer
void add_delay(string name, float duration, function fn, ...)创建一个延时任务,会在指定时间后执行
void add_frame_delay(string name, function fn, ...)创建一个延时任务,会在下一帧执行
void destroy_delay_by_name(string name)删除一个指定名字的delay task

stringex.gs

函数原型函数作用
string first_upper(string str)第一个字符大写
int wchars(string str, int start)字符转换宽字符
array explode_utf8(string msg)导出utf8
bool is_nil_or_empty(string s)是否为空字符串

update_mgr.gs

更新检测管理器

函数原型函数作用
int get_frame_count()获取当前帧
int get_frame_begin_time()获取帧开始时间
void post_update_operation(function operation_callback)新增每帧更新函数
void update(float delta_time)每帧更新
void late_update(float delta_time)延迟帧更新
void fixed_update(float delta_time)固定时长帧更新
void register_frame_update(object owner, function func = nil)注册每帧更新
void unregister_frame_update(object owner)销毁每帧更新
void register_late_update(object owner, function func = nil)注册延迟帧更新
void unregister_late_update(object owner)销毁延迟帧更新
void register_fixed_update(object owner)注册固定时长帧更新
void unregister_fixed_update(object owner)销毁固定时长帧更新
void execute_end_frame(function func)在当前帧结束的时候执行函数

样例

public void pkg_sample()
{
write("sample");
}