0%

全局类客户端入口模块:ClientMain.lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
local api -- 控制街口对象表,,通过sf_start事件回调获得,存放在模块局部变量中,详情请查阅(api接口.txt)
-- 房间类和全局类游戏使用相同的客户端控制api
local quitFunc -- 用于保存退出游戏的方法
local myselfUid -- 用于保存自己的uid

--- 开始游戏事件回调
-- @function sf_start
-- @tab nativeapi 控制街口对象表
local function sf_start(uid,nativeapi,qf)
-- 通常将所需变量保存到模块
myselfUid = uid
api = nativeapi -- 保存API对象表
quitFunc = qf
end

--- 网络数据响应事件回调
-- @function sf_message
-- @tab data 服务器下发的数据表
local function sf_message(data)

end

--- 键盘按下事件回调
-- @function sf_keydown
-- @int keycode 键盘响应码,请查阅Constants.txt
-- @boolean repeated 是否是重复键,一般案下一个键时,为一次新键,不松手,会一直响应keydown,这个时候repeated为true,表明是重复键。
local function sf_keydown(keycode,repeated)
if keycode==api.Constants.K_F12 then
quitFunc() -- 退出游戏
end
end

--- 键盘抬起回调
-- @function sf_keyup
-- @int keycode 键盘响应码,请查阅Constants.txt
local sf_keyup = function(keycode)

end

--- 触摸响应事件回调,只能在安卓平台和ios平台以及web平台使用
-- @function sf_touch
-- @int touchtype 手势种类,请查阅Constants
-- @int x x坐标
-- @int y y坐标, 坐标返回的是设计逻辑尺寸,请参考绘图接口中的逻辑坐标dwidth和dheight
-- @int fingers 本次手势的手指数,一般1到3个手指,在多的手指需要硬件支持,有的手机触摸屏支持10个手指,一般到四个手指。
-- @int gid 本次触摸的模式编号,100位全屏触摸编号,200位分屏触摸中的上半屏编号,300位分屏模式下的下半屏幕触摸编号
local function sf_touch(touchtype, x, y,fingers,gid)

end

--- 每一帧调用,用于时时游戏的更新,每一秒60帧
-- @function update
-- @number ds 两次update调用之间的时间差,单位秒,精确到小数点后3位
local function sf_update(ds)

end

--- 游戏控制器响应,包括游戏手柄
-- @function sf_gamecontroller
-- @tab msg 数据响应结构表
-- @int msg.which 表示是哪个控制器或者手柄发出的消息,相当于手柄ID,从0开始,一般电脑支持8个手柄。
-- @int msg.timestamp 消息发出的时间戳
-- @int msg.type 手柄响应码,详情参阅,在api.Constants上的常亮表,目前三种消息,轴变化消息,按键按下,按键抬起消息。
-- @int msg.button 当msg.type是按键按下或者抬起的情况下,表示按钮的编号,详情请参阅:在api.Constants上的常亮表
-- @int msg.axis 当前type是轴消息的时候,他表示是哪个轴发出来的变化消息,如左边摇杆x水平变化,则axis为0,右边摇杆上下变化,则axis为3
-- @int msg.value 表示轴变化的当前状态,范围-32768到32767,摇杆在圆点则为0,否则符号和他所处的轴方向相同。
local function sf_gamecontroller(msg)

end

--- 鼠标响应事件
-- @function sf_mouse
-- @tab msg 数据响应结构表
-- @int msg.type 鼠标事件类型,详情参考常亮表client
-- @int msg.button 鼠标案件类型,详情参考常亮表client
-- @int msg.x msg.y 鼠标逻辑坐标
local function sf_mouse(msg)

end

-- 导出接口方法
return {
start=sf_start,
message=sf_message,
keydown=sf_keydown,
keyup=sf_keyup, -- 可选
touch=sf_touch,
update=sf_update,
gamecontroller=sf_gamecontroller,
mouse=sf_mouse,
}