Client 부분.
------ protocol -----
Evt_Move = Event(2)
Evt_Move.key = {
id = 1,
x = 2,
y = 3,
}
------ client -----
class 'testaClientApp' (ClientApp)
function testaClientApp:__init() super()
..생략
self:InitHandler()
end
function testaClientApp:OnMove(server, msg)
local id = msg:GetValue(Evt_Move.key.id)
local x = msg:GetValue(Evt_Move.key.x)
local y = msg:GetValue(Evt_Move.key.y)
if id == 1 then
self.scene.mal1:SetXPos(self.scene.mal1:GetXPos() + x)
self.scene.mal1:SetYPos(self.scene.mal1:GetYPos() + y)
elseif id == 2 then
self.scene.mal2:SetXPos(self.scene.mal2:GetXPos() + x)
self.scene.mal2:SetYPos(self.scene.mal2:GetYPos() + y)
end
end
function testaClientApp:InitHandler()
self:SetMsgHandler(Evt_Chat, self.OnChat)
self:SetMsgHandler(Evt_Move, self.OnMove)
end |
function testaClientApp:InitHandler() 에서 프로토콜과 함수를 매치시키고,
function testaClientApp:__init() super() 에서 호출한다.
프로토콜 아래의 key값들은 데이터를 실어서 보낼 변수들이다.
Evt_Move = Event(2)
Evt_Move.key = {
id = 1,
x = 2,
y = 3,
}
그 변수들에서 값을 가져오는 함수는
msg:GetValue(Evt_Move.key.id)
이다.