주석을 달아서 좀 더 길어졌네요. =_=
(나중에 주석을 달아서 48줄보다는 좀 더 길어졌네요. 암튼. ㅋ)
코로나(Corona SDK)의 가장 큰 장점은 고성능의 물리엔진입니다. 게다가 사용법도 간단하고 쉽죠.
다양한 물리 시뮬레이션 및 게임을 구현해 보세요. (-:
-- 물리엔진 시작
local physics = require "physics"
physics.start()
-- 중심축을 좌상단으로 설정
display.setDefault( "anchorX", 0 ); display.setDefault( "anchorY", 0 )
-- 바닥 생성 함수
local createBottom = function(_parent)
local bottomImg = display.newImage(_parent, "images/scene1_bottom.png", 0, 0)
local imageOutline = graphics.newOutline( 1, "images/scene1_bottom_outline.png" )
physics.addBody(bottomImg, "static", {friction=0, outline=imageOutline})
bottomImg.width, bottomImg.height = bottomImg.width * 0.5, bottomImg.height * 0.5
bottomImg.y = display.actualContentHeight - bottomImg.height
return bottomImg
end
-- 흰색 배경 생성(기본이 검정이므로)
local bg = display.newRect( 0, 0, display.actualContentWidth, display.actualContentHeight)
bg:setFillColor(1, 1, 1, 1)
-- 바닥 그룹
local g = display.newGroup()
for i = 1, 50 do
local _btm = createBottom(g)
_btm.x = (i - 1) * _btm.width - 80
g:insert(_btm)
end
-- 주인공 생성
local player = display.newCircle(g, 50, 50, 25)
player:setFillColor(0, 0, 0, 0)
physics.addBody(player, "dynamic", {friction = 0, radius=24})
local bird = display.newImage(g, "images/bird.png", 0, 0)
local function on_Touch(e)
player:applyForce(3, 0, player.x, player.y + (player.height * 0.5) )
end
Runtime:addEventListener("touch", on_Touch)
local function on_E(e)
player:applyForce(0.12, 0, player.x, player.y + (player.height * 0.5) )
player.rotation = 0
g.x = -player.x + (player.width * 0.5) + 80
bird.x, bird.y = player.x - 10, player.y - 10
end
Runtime:addEventListener("enterFrame", on_E)
(내용 복사가 안되쥬? 드루와유 - http://wonhada.com/?p=1266)