0

10秒ごとに-1ずつmovementSpeed減らして増やす方法。 star1.movementSpeed = 10000;

私はこれを試しましたが、私が間違っていることを理解できません

function initStar()
local star1 = {}
star1.imgpath = "Star1.png"; --Set Image Path for Star
star1.movementSpeed = 10000; --Determines the movement speed of star
table.insert(starTable, star1); --Insert Star into starTable
end --END initStar()    


 local function star1incr() -- increments Speed value every time it is called
 movementSpeed = movementSpeed - 1
 star1.movementSpeed = "movementSpeed: " .. movementSpeed 
 end

 timer.performWithDelay(10000, star1incr, 0)
4

2 に答える 2

2

を使用して修正

   local function star1incr()
        starTable[1].movementSpeed = starTable[1].movementSpeed - 1
        print( "- 1" )
    end
于 2013-02-21T13:54:09.860 に答える
1

initStar()との間で共有できる変数が必要です(ところで、「減少によるstar1incr()増分は正しく聞こえません)。次のようなものが機能する可能性があります。movementSpeed...movementSpeed

local star1 = {}

function initStar()
  star1.imgpath = "Star1.png" --Set Image Path for Star
  star1.movementSpeed = 10000 --Determines the movement speed of star
end --END initStar()    


local function star1incr()
  star1.movementSpeed = star1.movementSpeed - 1
end

timer.performWithDelay(10000, star1incr, 0)

star1変数はinitStarstar1incr関数の間で共有されます(Luaの用語ではアップバリューと呼ばれます)。

于 2013-02-21T05:15:08.323 に答える