bootcamp

Making Codes

作成の手順を解説します。

手順1 画面の縦と横サイズを取得

_W = display.contentWidth
_H = display.contentHeight

手順2 ステータスバーを消す

display.setStatusBar( display.HiddenStatusBar )

手順3 真ん中に四角

rect = display.newRect(_W/2, _H/2 , 100, 100)

手順4 四角は縁だけにする

function myRandom()
    return math.random(100)/100
end

rect:setStrokeColor(myRandom(), myRandom(), myRandom())
rect.strokeWidth = 10
rect:setFillColor(0, 0, 0, 0)

手順5 グループの作成

group = display.newGroup()

手順6 グループに円を四つ作成追加

group:insert(display.newCircle(_W/2,    50, 20))
group:insert(display.newCircle(_W/2, _H-50, 20))
group:insert(display.newCircle(  50,  _H/2, 20))
group:insert(display.newCircle(_W-50, _H/2, 20))

手順7 グループの各円を塗りつぶす

for i=1, group.numChildren do
  group[i]:setFillColor(myRandom(), myRandom(), myRandom())
end

手順8 ボタンの呼び出し関数を作成

function buttonFunc(event)
  print("tap")
end

手順9 グループの各円をボタンにする。手順7のforループに追加してください。

for i=1, group.numChildren do
  --追加
  group[i]:addEventListener("tap", buttonFunc)
end

手順10 音をロード

soundID = audio.loadSound( "beep.wav" )

手順11 ボタンが押されたら音。手順8のbuttonFuncに playBeepを追加します。

playBeep = function()
  print("beep")
  audio.play( soundID )
end

function buttonFunc(event)
 --追加
  playBeep()
end

手順12 物理を追加。main.luaの最初のほうに追加してください。前章の完成しているコードを参考。

physics = require("physics")
physics.start()

手順13 グループの各円を物理オブジェクトにする。手順7のforループに追加してください。

for i=1, group.numChildren do
  --追加
  physics.addBody(group[i])
end

手順14 無重力にする

physics.setGravity(0,0)

手順15 ボタンが押されたら、衝撃を発生。手順8のbuttonFuncに追加します。

function buttonFunc(event)
  --追加
  event.target:applyLinearImpulse(10, 10, event.x, event.y)
end

手順16 真ん中の円をセンサーにする

physics.addBody(rect, {isSensor = true})

手順17 真ん中の円は検知すると色がランダムに変わる

rect:addEventListener("collision",
    function(event)
        rect:setFillColor(myRandom(), myRandom(), myRandom())
        playBeep()
    end)

手順18 壁も作成

rect1 = display.newRect(_W/2,    0, _W,  5)
rect2 = display.newRect(0,    _H/2,  5, _H)
rect3 = display.newRect(_W-5, _H/2,  5, _H)
rect4 = display.newRect(_W/2, _H-5, _W,  5)

手順19 壁なのでスタティク(静的)に設定

physics.addBody(rect1, "static")
physics.addBody(rect2, "static")
physics.addBody(rect3, "static")
physics.addBody(rect4, "static")

手順20 BGMも流しましょう

ch1Stream = audio.loadStream("loop1.wav")
audio.play( ch1Stream, {loops=-1 } )