green hack coronahandson#2
DESCRIPTION
Green HackさんでのCoronaHandsOnの午後の内容TRANSCRIPT
ColonaLabs.com
~Coronaでスマホアプリ開発~
Corona HandsOn #2
CoronaSDK Ambassador 小野 哲生
ColonaLabs.com
!
• アニメーション(再描画・API利用) !
• 物理演算(開始・衝突判定)
Corona SDK でのアニメーション・物理
ColonaLabs.com
• 再描画アニメーション
local rect = display.newRect( 100, 100, 100, 100 )
!
local function mR( event ) rect.x = rect.x + 1 rect.rotation = rect.rotation + 1 end Runtime:addEventListener("enterFrame", mR )
Corona SDK でのアニメーション・物理
ColonaLabs.com
local rect = display.newRect( 100, 100, 100, 100 )
local function moveRect( event ) if( event.phase == "ended" ) then
transition.to( rect, { time = 1000, y = 400, } )
end end rect:addEventListener( "touch", moveRect )
• CoronaAPIでアニメーション
Corona SDK でのアニメーション・物理
ColonaLabs.com
• 物理演算の開始local physics = require ( ”physics” ) physics.start( ) !
local land = display.newRect( 160, 360, 320, 10 )
physics.addBody( land, “static”, { friction = 0.3 } )
!
local circle = display.newCircle( 50, 50, 25 ) physics.addBody( circle, { bounce = 0.6, radius = 25 } )
Corona SDK でのアニメーション・物理
ColonaLabs.com
Corona SDK でのアニメーション・物理
• 衝突判定 -1local physics = require ( ”physics” ) physics.start( ) !
local land = display.newRect( 160, 360, 320, 10 )
physics.addBody( land, “static”, { friction = 0.3 } ) !
local circle = display.newCircle( 50, 50, 25 ) physics.addBody( circle, { bounce = 0.6, radius = 25 } )
ColonaLabs.com
Corona SDK でのアニメーション・物理
• 衝突判定 -2!
!
local function onCollision( ) land:setFillColor( 1, 0.5, 0.04 )
end !
land:addEventListener( “collision”, onCollision )
ColonaLabs.com
• work #1( 重力方向 )
Corona SDK でのアニメーション・物理
オブジェクトと実体の違いを見よう 重力の方向を変えてみよう
※書く場所は考える !
表示モードの変更 physics.setDrawMode( “hybrid” ) 重力方向の設定 physics.setGravity( x, y )
ColonaLabs.com
• work #2( センサー )
Corona SDK でのアニメーション・物理
衝突の判定だけをするセンサー作り
※ 質量、摩擦、反発を設定しない !
オブジェクトをセンサーにする { isSensor = true } 見えないセンサーにする obj.isVisible = false ※余裕があれば、音も鳴らしてみよう!
ColonaLabs.com
Corona SDK #2 まとめ
!
• アニメーション(再描画・API利用) !
• 物理演算(開始・衝突判定)