Lua Love2D基于平铺的碰撞不起作用
我在瓷砖碰撞方法中遇到问题。由于某种原因,玩家可以在不应该通过的时候通过一些瓷砖。另外,我也不完全确定为什么,但当它卡住时,它可以在物体中向左移动,但只能向左移动。我在下面发布了一些代码,如果有人能给我指出正确的方向,那就太好了。(如果有人能找到一个快速的解决方案,甚至更好!)我的播放器移动方法和平铺碰撞方法都在更新方法中调用 贴图和平铺碰撞Lua Love2D基于平铺的碰撞不起作用,lua,collision-detection,tile,love2d,Lua,Collision Detection,Tile,Love2d,我在瓷砖碰撞方法中遇到问题。由于某种原因,玩家可以在不应该通过的时候通过一些瓷砖。另外,我也不完全确定为什么,但当它卡住时,它可以在物体中向左移动,但只能向左移动。我在下面发布了一些代码,如果有人能给我指出正确的方向,那就太好了。(如果有人能找到一个快速的解决方案,甚至更好!)我的播放器移动方法和平铺碰撞方法都在更新方法中调用 贴图和平铺碰撞 左边的原因是,当它被卡住时,可能是因为您在testTile(x,y)的第4条if语句中有一个输入错误 你写的 if map[y][x - 1] ~= 1
左边的原因是,当它被卡住时,可能是因为您在
testTile(x,y)
的第4条if
语句中有一个输入错误
你写的
if map[y][x - 1] ~= 1 then
canRight = false
end
应该是这样
if map[y][x - 1] ~= 1 then
canLeft = false
end
原因是键入错误:
if map[y][x - 1] ~= 1 then
canRight = false;
end
如果不能向左移动则将canRight
设置为false
。这可能是复制/粘贴错误,因此
如果复制/粘贴代码,请务必小心。这是最常见的错误之一,而且这种错误很难发现:P
另一个小建议:不要使用
if map[y][x - 1] == 1 then
canLeft = true;
end
if map[y][x - 1] ~= 1 then
canLeft = false;
end
你可以用
else canLeft = false;
这将使代码更短,而且在我看来也更干净。欢迎使用StackOverflow。在为问题分配标签时请小心,并检查此网站上的说明。例如,由于这是一个面向专业程序员和其他程序员的网站,因此RPG标签指的是主要由专业程序员使用的RPG语言,而不是游戏玩家的松散术语。
else canLeft = false;