* 해야할 것 *
배경스크롤
주인공 이동
무기발사
적 이동
스테이지
점수 처리
시작처리
종료처리
적유닛 생성
이미지 사용할 것: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
댓글 없음:
댓글 쓰기