miduo_client/Assets/ManagedResources/~Lua/Modules/YuJianXing/RiceSinglePlayerView.lua

118 lines
3.8 KiB
Lua
Raw Normal View History

2021-09-29 18:34:54 +08:00
local RiceSinglePlayerView = {}
2021-10-08 20:49:25 +08:00
local initSpeed = 20
local RidingSwardSence = ConfigManager.GetConfig(ConfigName.RidingSwardSence)
2021-09-29 18:34:54 +08:00
function RiceSinglePlayerView:New(gameObject)
local b = {}
b.gameObject = gameObject
b.transform = gameObject.transform
setmetatable(b, { __index = RiceSinglePlayerView })
return b
end
function RiceSinglePlayerView:InitComponent()
self.gameObject:GetComponent("RectTransform").sizeDelta = Vector2.New(10000,100)
2021-10-08 15:45:28 +08:00
self.player = Util.GetGameObject(self.gameObject,"Player")
2021-10-09 14:33:09 +08:00
self.upPre = Util.GetGameObject(self.gameObject,"upPre")
self.downPre = Util.GetGameObject(self.gameObject,"downPre")
2021-10-08 15:45:28 +08:00
self.playerTrans = self.player:GetComponent("RectTransform")
self.playerTrans.localPosition = Vector2.New(0,100)
self.curPosX = self.playerTrans.localPosition.x
2021-10-08 20:49:25 +08:00
self.speed = initSpeed
2021-10-08 15:45:28 +08:00
FixedUpdateBeat:Add(self.OnUpdate, self)--长按方法注册
2021-09-29 18:34:54 +08:00
end
--绑定事件(用于子类重写)
function RiceSinglePlayerView:BindEvent()
end
--添加事件监听(用于子类重写)
function RiceSinglePlayerView:AddListener()
end
--移除事件监听(用于子类重写)
function RiceSinglePlayerView:RemoveListener()
end
2021-10-08 15:45:28 +08:00
--设置游戏状态
2021-09-29 18:34:54 +08:00
function RiceSinglePlayerView:SetSinglePlayerState(_state)
2021-10-09 14:33:09 +08:00
if _state then
local keyFrame = RidingSwardSence[self.data[1]].KeyFrame
self.keyFrameList = {}
for i = 1, #keyFrame do
self.keyFrameList[i] = {}
self.keyFrameList[i].pos = keyFrame[i][1]*initSpeed*30
self.keyFrameList[i].value = keyFrame[i][2]
if keyFrame[i][2] == 1 then
self.keyFrameList[i].obj = newObjToParent(self.upPre,self.gameObject)
elseif keyFrame[i][2] == 2 then
self.keyFrameList[i].obj = newObjToParent(self.downPre,self.gameObject)
end
self.keyFrameList[i].obj:GetComponent("RectTransform").localPosition = Vector2.New(self.keyFrameList[i].pos,100)
PlayUIAnim(Util.GetGameObject(self.keyFrameList[i].obj,"Image"))
end
2021-10-08 20:49:25 +08:00
end
2021-09-29 18:34:54 +08:00
self.isRunning = _state
end
2021-10-08 15:45:28 +08:00
--重置游戏
function RiceSinglePlayerView:ResetSinglePlayer()
self.isRunning = false
2021-10-09 14:33:09 +08:00
for i,v in ipairs(self.keyFrameList) do
destroy(self.keyFrameList[i].obj)
table.remove( self.keyFrameList,i)
end
2021-10-08 20:49:25 +08:00
self.speed = initSpeed
2021-10-08 15:45:28 +08:00
self.playerTrans.localPosition = Vector2.New(0,100)
self.curPosX = self.playerTrans.localPosition.x
end
--upDate
function RiceSinglePlayerView:OnUpdate()
2021-09-29 18:34:54 +08:00
if self.isRunning then
--暂定8500结束游戏
2021-10-08 20:49:25 +08:00
if self.curPosX >= 8500 then
YuJianXingManager.FinishResetGame()
else
self.curPosX = self.curPosX + self.speed
self.player.transform.localPosition = Vector2.New(self.curPosX,100)
--事件
2021-10-08 20:49:25 +08:00
for i,v in ipairs(self.keyFrameList) do
if self.curPosX >= v.pos then
if v.value == 1 then--加速
2021-10-08 20:49:25 +08:00
self.speed = self.speed*1.2
elseif v.value == 2 then--减速
2021-10-08 20:49:25 +08:00
self.speed = self.speed*0.9
end
2021-10-09 14:33:09 +08:00
destroy(self.keyFrameList[i].obj)
table.remove( self.keyFrameList,i)
2021-10-08 20:49:25 +08:00
end
end
end
2021-09-29 18:34:54 +08:00
end
end
2021-10-08 20:49:25 +08:00
--返回当前位置
2021-10-08 15:45:28 +08:00
function RiceSinglePlayerView:GetCurPosX()
return self.curPosX
end
2021-09-29 18:34:54 +08:00
--界面打开时调用(用于子类重写)
2021-10-08 20:49:25 +08:00
function RiceSinglePlayerView:OnOpen(_inedx,_data)
self.index = _inedx
2021-09-29 18:34:54 +08:00
self.data = _data
end
--界面打开或者重新打开后,界面刷新时调用(用于子类重写)
function RiceSinglePlayerView:OnShow()
end
function RiceSinglePlayerView:OnClose()
2021-10-09 14:33:09 +08:00
FixedUpdateBeat:Remove(self.OnUpdate, self)
2021-09-29 18:34:54 +08:00
end
--界面销毁时调用(用于子类重写)
function RiceSinglePlayerView:OnDestroy()
end
return RiceSinglePlayerView