【发布时间】:2020-12-12 17:44:06
【问题描述】:
在下面的代码中,self.player.x 的值在初始化时赋值给 self.x,并在进入状态时稍微向左或向右调整。 PlayerPilotState 然后每帧操作 self.player.x,我的期望是 self.x 会随之更新。诸如 tilemap 之类的项目在播放器被实例化时作为 def.tilemap 分配给播放器,它们会随着地图的变化而更新。如何确保 self.x 等变量也会自行更新?我知道我可以在每帧更新下更新该变量,但这似乎不太好,因为我对编码还很陌生,所以我不明白为什么 player.tilemap 会更新而这个变量不会。谢谢!
function PlayerPilotState:init(pilot, passenger)
self.player = pilot
self.passenger = passenger
self.animation = Animation {
frames = {2, 3, 2, 8},
interval = 0.1
}
self.player.currentAnimation = self.animation
-- x value at middle of players to make collisions more readable
-- and scalable (for left/right pilot/passenger cases)
self.x = self.player.x
end
function PlayerPilotState:enter(params)
-- determine which side passenger is riding on
self.ridingSide = params.ridingSide
if self.ridingSide == 'left' then
self.x = self.player.x - 1/2 * self.player.width
else
self.x = self.player.x + 1/2 * self.player.width
end
end
【问题讨论】:
标签: lua game-development love2d