私はゲームを作成しています。そのゲームでは、プレイヤーはより大きなスコアを得るためにコインを収集する必要があります。コインは3枚あり、1枚集めるとUIの「コインバー」に表示されます。コイン用の空の穴が 3 つあります (Cut the Rope や他のゲームのように)。現在、プレーヤーが 2 番目のコインを収集すると、バーの 2 番目の穴が埋められます。最初のコインを集めていない2番目のコインを集めると最初の穴が埋められるように、穴を順番に埋めていきます。
コードは次のとおりです。
------コインバー
local coin_bar = {} for i=1,3 do coin_bar[i] = display.newImage ("coin_bar.png", 57, 57) end coin_bar[1].x = 325 coin_bar[1].y = 37 coin_bar[2].x = 385 coin_bar[2].y = 37 coin_bar[3].x = 445 coin_bar[3].y = 37
-- コインと取り扱いを追加
local coinSprites=grabber.grabSheet("starAnim") local coinGroup = display.newGroup() local coins = {} isLiving = {} for i=1,3 do isLiving[i] = 1 coins[i] = coinSprites:grabSprite("",true,{ starAnim={1,6,200,0}}) coins[i]:playClip("starAnim") coinGroup:insert(coins[i]) end local function coinCollect(event) for i=1, 3 do -- Nr of Coins coin_clear = false if isLiving[i] == 1 then if ball.x > coins[i].x -40 and ball.x < coins[i].x +40 and ball.y > coins[i].y -40 and ball.y < coins[i].y +40 then coins[i]:removeSelf() coins[i] = nil coins[i] = display.newImage ("coin_bar_collected.png", 57, 57) coins[i].x = coin_bar[i].x coins[i].y = coin_bar[i].y isLiving[i] = 0 end end end end Runtime:addEventListener( "enterFrame", coinCollect )