반응형
자주 사용하는 기능을 모듈화 하면 나중에 재사용할 때 아주 편하고 개발 기간도 많이 save해 줍니다.
예를 들어 스크린 사방 벽에 wall을 만들고 객체들이 이 벽에 맞고 튀어야 할 때 사방 벽 만드는 부분을 모듈화 한다던지.
아니면 레벨별로 배경화면을 다르게 해야 되는 게임을 개발 할 때 배경화면 설정 부분을 모듈화 한다던지.
그 외 여러가지 자기만의 로직을 모듈화 해 두면 그게 자산이 되고 나중에 개발할 때도 많은 도움이 됩니다.
오늘은 이렇게 자기만의 코드를 모듈화 하는 방법에 대해 알아보겠습니다.
낯익은 사진이죠?
자기가 힘들여서 터득한 know how를 열심히 다른 개발자들고 Share하고 있는 peach입니다.
홈페이지는 http://peachpellen.com/ 입니다. 가셔서 고맙다고 코멘트 남기는 것도 좋을 것 같습니다.
이 앱에는 두가지가 모둘화 돼 있습니다.
첫번째는 background image 를 표시하고 이 배경이미지를 클릭하면 없어지는 함수입니다.
그리고 두번째는 x,y좌표 파라미터를 받아서 peach.png 이미지 파일을 해당 x,y좌표에 display 하는 겁니다.
이 모듈화 된 소스를 보겠습니다. ----- setup.lua -----
-- Makes sure the file can be "seen"
module(..., package.seeall)
-- Set up the background
function background (event)
-- Display the background
local background = display.newImage ("bg.png")
-- The function to remove the background
function killbackground (event)
background:removeSelf()
end
-- Add the event listener to the background
background:addEventListener("tap", killbackground)
end
-- Insert the traditional Peach pic, this time using params
function peach (params)
-- My picture
local peach = display.newImage ("peach.png")
-- The X and Y of my pic, defined when the function is called
peach.x = params.x
peach.y = params.y
end
첫번째 부분은 모듈화 하기 위해 지정해 줘야 하는 코로나 SDK의 규칙입니다.
두번째 event를 인수로 받는 background라는 함수입니다.
bg.png를 display하고 여기에 tap 이벤트 리스너를 달아서 tab하면 배경이미지를 없애는 함수 입니다.
세번째 함수는 peach라는 함수로 peach.png를 display하고 x,y좌표를 전달받은 x,y좌표로 설정해 이미지를 그 위치에 그려줍니다.
그러면 이 모듈화된 부분을 어떻게 사용하는지 알아보겠습니다.
-- Hides the status bar
display.setStatusBar (display.HiddenStatusBar)
-- Requires setup.lua
require "setup"
-- Performs our "background" event from setup.lua (Create background, create remove function, add listener)
setup.background()
-- Performs our "peach" event; note the x and y - these are our "params"
setup.peach ({ x = 160, y = 240 })
-- Uncomment the block below to see how useful this type of code is when spawning lots of the same image/object
--[[
setup.peach ({ x = 60, y = 100 })
setup.peach ({ x = 60, y = 400 })
setup.peach ({ x = 260, y = 100 })
setup.peach ({ x = 260, y = 400 })
--]]
--[[
*NOTES*
Like many of my tutorials this is as simple as it gets; it shows how to add an image, add a function to that image and
remove that image all in one function from a seperate Lua file.
There is near limitless potential for using multiple files to keep your code clean and organised however this mini
tutorial is only intented to highlight the basics.
By learning how to use the simple examples shown here you are well on your way to much tidier code; something that
will really come in handy as your projects grow larger and more ambitious.
--]]
실제 코드는 단 세 줄 입니다.
우리의 친구 peach가 아주 자세하게 주석을 달아 줬네요.
우선 setup.lua를 require하구요.
background()함수를 불러옵니다.
그리고 peach함수도 해당 파라미터를 넣어서 불러오구요.
그러면 끝입니다.
이렇게 되면 setup.lua에 있는 함수는 다른 앱을 개발 할 때도 그대로 모듈로 사용할 수 있습니다.
원본 소스코드는 아래 압축파일에 있습니다.
그럼 다음 시간에 뵐께요.
예를 들어 스크린 사방 벽에 wall을 만들고 객체들이 이 벽에 맞고 튀어야 할 때 사방 벽 만드는 부분을 모듈화 한다던지.
아니면 레벨별로 배경화면을 다르게 해야 되는 게임을 개발 할 때 배경화면 설정 부분을 모듈화 한다던지.
그 외 여러가지 자기만의 로직을 모듈화 해 두면 그게 자산이 되고 나중에 개발할 때도 많은 도움이 됩니다.
오늘은 이렇게 자기만의 코드를 모듈화 하는 방법에 대해 알아보겠습니다.
낯익은 사진이죠?
자기가 힘들여서 터득한 know how를 열심히 다른 개발자들고 Share하고 있는 peach입니다.
홈페이지는 http://peachpellen.com/ 입니다. 가셔서 고맙다고 코멘트 남기는 것도 좋을 것 같습니다.
이 앱에는 두가지가 모둘화 돼 있습니다.
첫번째는 background image 를 표시하고 이 배경이미지를 클릭하면 없어지는 함수입니다.
그리고 두번째는 x,y좌표 파라미터를 받아서 peach.png 이미지 파일을 해당 x,y좌표에 display 하는 겁니다.
이 모듈화 된 소스를 보겠습니다. ----- setup.lua -----
-- Makes sure the file can be "seen"
module(..., package.seeall)
-- Set up the background
function background (event)
-- Display the background
local background = display.newImage ("bg.png")
-- The function to remove the background
function killbackground (event)
background:removeSelf()
end
-- Add the event listener to the background
background:addEventListener("tap", killbackground)
end
-- Insert the traditional Peach pic, this time using params
function peach (params)
-- My picture
local peach = display.newImage ("peach.png")
-- The X and Y of my pic, defined when the function is called
peach.x = params.x
peach.y = params.y
end
첫번째 부분은 모듈화 하기 위해 지정해 줘야 하는 코로나 SDK의 규칙입니다.
두번째 event를 인수로 받는 background라는 함수입니다.
bg.png를 display하고 여기에 tap 이벤트 리스너를 달아서 tab하면 배경이미지를 없애는 함수 입니다.
세번째 함수는 peach라는 함수로 peach.png를 display하고 x,y좌표를 전달받은 x,y좌표로 설정해 이미지를 그 위치에 그려줍니다.
그러면 이 모듈화된 부분을 어떻게 사용하는지 알아보겠습니다.
-- Hides the status bar
display.setStatusBar (display.HiddenStatusBar)
-- Requires setup.lua
require "setup"
-- Performs our "background" event from setup.lua (Create background, create remove function, add listener)
setup.background()
-- Performs our "peach" event; note the x and y - these are our "params"
setup.peach ({ x = 160, y = 240 })
-- Uncomment the block below to see how useful this type of code is when spawning lots of the same image/object
--[[
setup.peach ({ x = 60, y = 100 })
setup.peach ({ x = 60, y = 400 })
setup.peach ({ x = 260, y = 100 })
setup.peach ({ x = 260, y = 400 })
--]]
--[[
*NOTES*
Like many of my tutorials this is as simple as it gets; it shows how to add an image, add a function to that image and
remove that image all in one function from a seperate Lua file.
There is near limitless potential for using multiple files to keep your code clean and organised however this mini
tutorial is only intented to highlight the basics.
By learning how to use the simple examples shown here you are well on your way to much tidier code; something that
will really come in handy as your projects grow larger and more ambitious.
--]]
실제 코드는 단 세 줄 입니다.
우리의 친구 peach가 아주 자세하게 주석을 달아 줬네요.
우선 setup.lua를 require하구요.
background()함수를 불러옵니다.
그리고 peach함수도 해당 파라미터를 넣어서 불러오구요.
그러면 끝입니다.
이렇게 되면 setup.lua에 있는 함수는 다른 앱을 개발 할 때도 그대로 모듈로 사용할 수 있습니다.
원본 소스코드는 아래 압축파일에 있습니다.
그럼 다음 시간에 뵐께요.
반응형
'Corona SDK > Corona SDK TIPs' 카테고리의 다른 글
Corona SDK로 cross platform 앱 개발시 주의해야 할 10가지 (4) | 2012.02.09 |
---|---|
iOS - armv6 (-19033) error (0) | 2012.01.25 |
앱 화면 Screen Capture하기 (0) | 2011.12.29 |
Modular Classes in Corona - 모듈과 클래스 이해하기 - (0) | 2011.12.08 |
코로나로 책장 넘기는 효과 주기 (0) | 2011.12.06 |
드래그 하기 기초 (0) | 2011.11.25 |
화면 전환 클래스(director.lua) 사용하기 와 랜덤 화면 전환 (2) | 2011.11.24 |
Sprite sheet로 애니메이션 표현하기 (주사위 놀이) (2) | 2011.11.23 |
ui 버튼이용 하기 ui.newButton (0) | 2011.11.18 |
화면에 시간 표시하기 (스탑와치) (0) | 2011.11.17 |