玩家类新增dropPosition方法在失败的时候触发产生掉落动画

最后一个玩家的lose方法不会触发掉落
This commit is contained in:
MrZ_26
2022-12-19 21:42:29 +08:00
parent 3073a2e90d
commit fbfbf3c32b

View File

@@ -600,6 +600,28 @@ do-- function Player:movePosition(x,y,size)
TASK.new(task_movePosition,self,x,y,size or self.size)
end
end
do-- function Player:dropPosition(x,y,size)
local function task_dropPosition(self)
local vy=0
local x,y,size=self.x,self.y,self.size
while true do
yield()
y=y+vy
vy=vy+.0626
self:setPosition(x,y,size)
if y>2600 then
return true
end
end
end
local function check_player(obj,Ptar)
return obj.args[1]==Ptar
end
function Player:dropPosition()
TASK.removeTask_iterate(check_player,self)
TASK.new(task_dropPosition,self)
end
end
local frameColorList={[0]=COLOR.Z,COLOR.lG,COLOR.lB,COLOR.lV,COLOR.lO}
function Player:setFrameColor(c)
@@ -2882,6 +2904,9 @@ function Player:lose(force)
end
if #PLY_ALIVE>0 then
self:dropPosition()
freshPlayerPosition('update')
local cur=PLY_ALIVE[1].group
for i=2,#PLY_ALIVE do
local g=PLY_ALIVE[i].group
@@ -2902,9 +2927,6 @@ function Player:lose(force)
end
::BREAK_notFinished::
end
local _,height=love.window.getMode()
self:movePosition(self.x,height+100)
freshPlayerPosition('update')
end
--------------------------<\Event>--------------------------