2015년 7월 3일 금요일

corona sdk 로 슈팅 게임 만들기(배경스크롤)


* 해야할 것 *

배경스크롤
주인공 이동
무기발사
적 이동
스테이지
점수 처리
시작처리
종료처리
적유닛 생성
이미지 사용할 것:http://m484games.ucoz.com/index/shoot_39_em_up_gfx/0-38
참고 소스:http://www.tandgapps.co.uk/resources/tutorial-space-shooter-in-240-lines/

배경스크롤

해당 링크에 보면 우주를 배경으로 위에서 아래로 내려오게 됩니다. 배경스크롤이 필요하게 되는데요. 원리는 간단합니다.
1. 두장의 화면 크기의 이미지를 준비합니다.
2. 첫번째 이미지를 화면의 가운데 위치 시키고 아래 방향으로 일정 간격으로 스크롤 시킨다. 화면을 전체적으로 벗어나면 화면의 제일 위쪽으로 위치시킨다.
3. 첫번째 이미지가 화면을 벗어나는 부분을 두번째 이미지 오도록 위치시킨다.

여기에서는 480*800 색이 다른 이미지 두장을 준비하여 예를 들어 보도록 하겠습니다.
여기에서는 빨간색 파란색 png 이미지를 준비하였습니다.


local _W = display.contentWidth
local _H = display.contentHeight


local stars1, stars2 --Background moving stars

local function levelSetup()
 stars1 = display.newImageRect("red_480_800.png", 480, 800)
 stars1.x = _W*0.5; stars1.y = _H*0.5
 stars2 = display.newImageRect("blue_480_800.png", 480, 800)
 stars2.x = _W*0.5; stars2.y = _H*0.5-800
end

local function gameLoop(event)
 --Move the starfields.
 stars1:translate(0,2)
 stars2:translate(0,2) 
 if stars1.y >= (_H*0.5)+800 then
 stars1.y = (_H*0.5)-800
 end
 if stars2.y >= (_H*0.5)+800 then
 stars2.y = (_H*0.5)-800
 end
 print("test")
end

levelSetup()
Runtime:addEventListener ("enterFrame", gameLoop)

translate(dx,dy)는 좌표 delta 만큼 이동시킨다. (0,2) y축으로 2만큼 증가 시킨다.

결과 화면은 빨강 파랑이 번갈아나타나게 됩니다.





GIMP나 Paint.NET 가 같은 툴로 Noise 추가로 starfield를 표현해서 이미지를 변경합니다.
http://www.gimpusers.com/tutorials/starfield-tutorial



더 추가 되어야 하는 주제
- 이미지 두장을 더 넣어서 우주 배경을 이중으로 스크롤
- Map 기반 scroll




댓글 없음:

댓글 쓰기