0

我有这个代码设置,以便它根据船的大小改变船的力量。

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 语句。我要问的是是否有一个代码可以存储大小变量,将其乘以某个数字并正确设置力?这样我就不需要写所有这些陈述了。

4

1 回答 1

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

如果您碰巧有办法从大小计算力,则可以避免使用映射表并使用数学来代替。

于 2013-08-02T13:57:55.717 回答