0%

Client entry module: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
92
93
94
95
96
97
98
99
100
local api -- control the street object table, obtained through the sf_start event callback, and stored in module local variables. For details, please refer to (api interface.txt)
local selfIndex -- your own index on the desktop, obtained through the sf_start game event callback parameter
local members -- an array of game players, obtained through the sf_start game event callback parameter
-- Each player has uid, name, position, vip, gold, gender

--- Start game event callback
-- @function sf_start
-- @tab members array of all players
-- @int index Your own index on the desktop. 0 is for spectators. Users who are spectators cannot operate the game.
-- @tab nativeapi controls the street object table
-- @boolean again Whether to rejoin the game after disconnection, true means rejoin the game after disconnection, without playing sound effects such as starting the game.
local function sf_start(membersArray,index,nativeapi,again)
-- Usually save the required variables to the module
members = membersArray -- saves the desktop player array
selfIndex = index -- save your own index
api = nativeapi -- save API object table
end

--- Game end event callback, indicating that the game is over
-- @function sf_over
local function sf_over()

end

--- Network data response event callback
-- @function sf_message
-- @tab data Data table issued by the server
-- @int index Which player sent the information, 0 server sent it
local function sf_message(data,index)

end

--- Keyboard press event callback
-- @function sf_keydown
-- @int keycode keyboard response code, please refer to Constants.txt
-- @boolean repeated Whether it is a repeated key. Generally, when the next key is pressed, it is a new key. If you don't let go, it will always respond to keydown. At this time, repeated is true, indicating that it is a repeated key.
local function sf_keydown(keycode,repeated)

end

--- Keyboard lift callback
-- @function sf_keyup
-- @int keycode keyboard response code, please refer to Constants.txt
local sf_keyup = function(keycode)

end

--- Touch response event callback, can only be used on Android platform, ios platform and web platform
-- @function sf_touch
-- @int touchtype gesture type, please refer to Constants
-- @int x x coordinate
-- @int y y coordinate, the coordinate returns the design logical size, please refer to the logical coordinates dwidth and dheight in the drawing interface
-- @int fingers The number of fingers for this gesture is usually 1 to 3 fingers. Hardware support is required for multiple fingers. Some mobile phone touch screens support 10 fingers, usually up to four fingers.
-- @int gid The mode number of this touch, 100-digit full-screen touch number, 200-digit upper half screen number in split-screen touch, 300-digit lower half screen touch number in split-screen mode
local function sf_touch(touchtype, x, y,fingers,gid)

end

--- Called every frame, used for constant game updates, 60 frames per second
-- @function update
-- @number ds The time difference between two update calls, in seconds, accurate to 3 decimal places
local function sf_update(ds)

end

--- Game controller responsiveness, including gamepads
-- @function sf_gamecontroller
-- @tab msg Data response structure table
-- @int msg.which indicates which controller or handle sent the message, which is equivalent to the handle ID, starting from 0. Generally, the computer supports 8 handles.
-- @int msg.timestamp The timestamp when the message was sent
-- @int msg.type Controller response code, for details, please refer to the always-on table on api.Constants. There are currently three messages, axis change messages, button press messages, and button lift messages.
-- @int msg.button When msg.type is when the button is pressed or raised, it indicates the number of the button. For details, please refer to: The always-on table on api.Constants
-- @int msg.axis When the current type is an axis message, it indicates which axis sends the change message. For example, if the left joystick x changes horizontally, the axis is 0, and if the right joystick changes up and down, the axis is 3.
-- @int msg.value represents the current status of the axis change, ranging from -32768 to 32767. When the joystick is at the dot, it is 0. Otherwise, the symbol is the same as the axis direction where it is located.
local function sf_gamecontroller(msg)

end

--- Mouse response event
-- @function sf_mouse
-- @tab msg Data response structure table
-- @int msg.type Mouse event type, for details, refer to the always-on table client
-- @int msg.button mouse case type, for details, please refer to the always-on table client
-- @int msg.x msg.y mouse logical coordinates
local function sf_mouse(msg)

end

--Export interface methods
return {
start=sf_start,
over=sf_over,
message=sf_message,
keydown=sf_keydown,
keyup=sf_keyup, -- optional
touch=sf_touch,
update=sf_update,
gamecontroller=sf_gamecontroller,
mouse=sf_mouse,
}