Corona SDK 프로젝트 - 함수 사용

 

이미지도 올려보고 글씨도 써보고 했으니, 이제는 뭔가 변화되는 모습을 보고 싶습니다.

 

예를 들어서 버튼을 누르면 글씨 내용이 달라지거나 색이 변경되게 하는게 좋겠네요 ㅋ

 

 

1. 지난 번 코드

 

지난번에 작성한  main.lua 파일을 편집기로 열어줍니다.

 

-----------------------------------------------------------------------------------------
--
-- main.lua
--
-----------------------------------------------------------------------------------------

-- Your code here

local text = display.newText( "Hello World!", 50, 50, nil, 24 )
text:setTextColor( 128, 128, 255 )

local img = display.newImage( "icecream.png" )
img.x = (img.contentWidth / 2) + 50
img.y = (img.contentHeight  / 2) + 100

 

위의 코드에서는 글자와 이미지를 출력 하였습니다.

실행을 하면 아래와 같이 나타납니다.

 

 

 

2. 함수

 

위의 코드에 있는 이미지를 클릭하면 글자 색이 변경되도록 할 예정입니다.

 

처음에 글자 색을 정할 때, 아래 코드와 같이 작성을 하였습니다.

 

text:setTextColor( 128, 128, 255 )

 

기본적인 API를 더 알고 싶으면 아래 사이트에 방문 하시면 됩니다.

 

CoronaSDK 홈페이지 : http://developer.anscamobile.com/reference/index/objectsettextcolor

 

위의 내용을 함수를 만들고 집어 넣으면 될거 같습니다.

 

함수를 만드는 방법은 다음과 같습니다.

 

local function 함수명(event)
     내용...
end

 

보기엔 심플한거 같습니다 ^^*

 

이제 코드를 적용해보도록 하겠습니다.

글자색이 약간 붉은 색으로 변경하게 할 예정입니다.

 

local function changeTextColor(event)
    text:setTextColor( 255, 128, 128 )
end

 

 

3. 함수 연결하기

 

이제 만든 함수를 객체에 연결하려고 합니다.

 

모르면.. 제공되는 API를 찾아가는게 좋습니다.

 

CoronaSDK 함수 연결 : http://developer.anscamobile.com/reference/index/objectaddeventlistener

 

설명에 보니 아래와 같이 연결하라고 합니다.

 

object:addEventListener( eventName, listener )

 

이미지를 클릭하면 글씨 색이 변경하게 할거니까...

 

img:addEventListner( eventName, changeTextColor)

 

eventName 이 뭔지 몰라서 설명을 보니 찾아보니 '클릭' 이벤트와 같은 걸 적는거 같네요.

reference  에 나와 있는데로 "touch" 라고 적어보았습니다.

 

img:addEventListner( "touch", changeTextColor)

 

 

4. 완성된 코드

 

위에서 설명한 대로 작성한 코드입니다.

 

-----------------------------------------------------------------------------------------
--
-- main.lua
--
-----------------------------------------------------------------------------------------

-- Your code here

local text = display.newText( "Hello World!", 50, 50, nil, 24 )
text:setTextColor( 128, 128, 255 )

local img = display.newImage( "icecream.png" )
img.x = (img.contentWidth / 2) + 50
img.y = (img.contentHeight  / 2) + 100

local function changeTextColor(event)
    text:setTextColor( 255, 128, 128 )
end

img:addEventListener( "touch", changeTextColor )

 

간혹가다가 실행을 하려면 실행이 제대로 안되는 경우가 있습니다.

타이핑 할 때 인코딩 문제가 발생하는지 모르겠지만, 소스 코드에 문제가 없을 때 파일을 지우고 다시 내용을 적어서 컴파일 하면 잘 됩니다. ^^

 

이제 프로그램을 재시작하면 아래와 같이 이미지를 클릭했을 때, 글자 색이 변경됩니다.

 

 ▶  

 

 

~(^_ ^ )~

 

Reference 메뉴를 보다보니 재미 있는 기능이 많이 있는거 같습니다.

조금 숙지를 한다면 게임을 만들 수 있을거 같네요 ㅋ.

 

참고로 예전에 공을 굴려서 원하는 목적지에 가는 게임이 있었습니다.

무료 앱 순위 1위까지 간 게임이 있었는데, 알고보니 Corona SDK를 사용해서 만들었다고 하네요 ㅇ.ㅇ ㅋ