我有这个代码设置,以便根据船的大小改变船的力量。
function activateFly(ship, event)
if(size == 0) then
ship:applyForce(0, -2.5, ship.x, ship.y)
print("FLY SIZE 0")
elseif(size == 1) then
ship:applyForce(0, -2.3,ship.x, ship.y)
print("FLY SIZE 1")
elseif(size == 2) then
ship:applyForce(0, -2.0, ship.x, ship.y)
print("FLY SIZE 2")
elseif(size == 3) then
ship:applyForce(0, -0.8, ship.x, ship.y)
print("FLY SIZE 3")
end
end
这意味着我需要为所有不同的大小编写无穷无尽的if-else语句。我问的是,如果有一个代码,我可以采取存储的大小变量,乘以一些数字,并正确设置力?这样我就不需要写下所有这些陈述。
答案 0 :(得分:4)
你的意思是这样吗?
local forceMap = {
[0] = -2.5,
[1] = -2.3,
[2] = -2.0,
[3] = -0.8,
}
function activateFly(ship, event)
ship:applyForce(0, forceMap[size], ship.x, ship.y)
print("FLY SIZE "..size)
end
如果你碰巧有办法从大小计算力,你可以避免使用映射表,而是使用数学。