반응형
글을 진행하다 보니까 코로나에서 제공하는 DOC 내용대로 가게 되네요.
코로나에서 제공되다보니까 기본을 탄탄히 닦을 수 있는 것 같아요.
저도 지금 앱을 개발하고는 있지만 이 글을 쓰면서 기본을 다질 수 있어서 좋구요.
아마 코로나에서 제공하는 매뉴얼 대로 글이 연재 될 것 같습니다.
가끔 제가 터득한 팁 정도 올릴 수 있을 거구요.
코로나는 lua 랭귀지를 사용하고 있습니다.
lua는 JAVA,C 같은 컴파일 언어가 아니고 PHP, ASP, Java Script 같은 스크립트 언어입니다.
변수명은 숫자로은 시작할 수 없구요. 첫글자 이외에는 사용할 수 있습니다.
숫자 이외에 문자, underscore 를 변수명에 사용 할 수 있어요.
코로나에서 미리 점유하고 있어 변수명으로 사용할 수 없는 단어들은 아래와 같습니다.
루아에서 사용하는 형( TYPE) 에는 아래와 같은 것들이 있습니다.
nil. Nil is a type with a single value, nil. By default, global variables are nil which means that they have not been assigned a value. This is analogous to null in JavaScript/ActionScript.
변수 선언 할 때 따로 형을 선언하지 않구요 루아가 알아서 해 줍니다.
형변환도 루아가 알아서 해 주구요.
이런 규칙이 편하긴 하지만 프로그래밍을 하다보면 일단 스트링으로 선언된 숫자를 number 형 처럼 크기 비교 같은 거 할 때 좀 불편한 점은 있더라구요.
이건 나중에 한번 다룰 일이 있을 겁니다.
루아에서 배열로 사용하는 table 선언은 {} 로 합니다.
아래 사용 예제 입니다.
t = {} -- create a table
abc = "test"
이러면 abc 라는 변수에 test 라는 문자가 들어갑니다.
이렇게 선언하면 글로벌 변수가 되구요.
지역 변수는 앞에 local 이라는 단어를 씁니다.
코로나에서 제공되다보니까 기본을 탄탄히 닦을 수 있는 것 같아요.
저도 지금 앱을 개발하고는 있지만 이 글을 쓰면서 기본을 다질 수 있어서 좋구요.
아마 코로나에서 제공하는 매뉴얼 대로 글이 연재 될 것 같습니다.
가끔 제가 터득한 팁 정도 올릴 수 있을 거구요.
코로나는 lua 랭귀지를 사용하고 있습니다.
lua는 JAVA,C 같은 컴파일 언어가 아니고 PHP, ASP, Java Script 같은 스크립트 언어입니다.
변수명은 숫자로은 시작할 수 없구요. 첫글자 이외에는 사용할 수 있습니다.
숫자 이외에 문자, underscore 를 변수명에 사용 할 수 있어요.
코로나에서 미리 점유하고 있어 변수명으로 사용할 수 없는 단어들은 아래와 같습니다.
and break do else elseif
end false for function if
in local nil not or
repeat return then true until while
라인 주석은 앞에 -- 를 붙입니다.. (대쉬 2개)
범위 주석은
--[[ |
이렇게 합니다.
일시적으로 범위 주석을 해제하고 싶으면 아래와 같이 합니다.
---[[ |
nil. Nil is a type with a single value, nil. By default, global variables are nil which means that they have not been assigned a value. This is analogous to null in JavaScript/ActionScript.
- boolean. The boolean type has two values, false and true. Note that in conditional expressions, e.g. if ( condition ), both false and nil evaluate as false; everything else evaluates as true.
- number. Represents real (double-precision floating-point) numbers.
- string. Represents arrays of characters (any 8-bit character, including embedded zeroes)
- function.
- table. Tables are the fundamental data structure in Lua. They implement an associative array which is just a fancy way of saying that the array can be indexed not just by numbers, but also by any other value of the language except nil. Typically, you would use a string as an index (see Properties).
변수 선언 할 때 따로 형을 선언하지 않구요 루아가 알아서 해 줍니다.
형변환도 루아가 알아서 해 주구요.
이런 규칙이 편하긴 하지만 프로그래밍을 하다보면 일단 스트링으로 선언된 숫자를 number 형 처럼 크기 비교 같은 거 할 때 좀 불편한 점은 있더라구요.
이건 나중에 한번 다룰 일이 있을 겁니다.
루아에서 배열로 사용하는 table 선언은 {} 로 합니다.
아래 사용 예제 입니다.
t = {} -- create a table
k = "x"변수 선언은 그냥 하시면 되요.
t[k] = 3.14 -- new table entry, with key="x" and value=3.14
t[10] = "hi" -- new table entry, with key=10 and value="hi"
print( t[k] ) --> 3.14
print( t["x"] ) --> 3.14
print( t.x ) --> 3.14
k=10
print( t[k] ) --> "hi"
abc = "test"
이러면 abc 라는 변수에 test 라는 문자가 들어갑니다.
이렇게 선언하면 글로벌 변수가 되구요.
지역 변수는 앞에 local 이라는 단어를 씁니다.
x = 1 -- global variable
local y = 10 -- local variable
관계를 나타내는 기호들은 아래와 같습니다.
== ~= < > <= >=
그리고 logical operator 는 아래와 같구요.
10 or 20 --> 10
10 or error() --> 10
nil or "a" --> "a"
nil and 10 --> nil
false and error() --> false
false and nil --> false
false or nil --> nil
10 and 20 --> 20
그리고 두 단어를 합하려면 .. 를 씁니다.
예를 들어
print("test = " .. x)
이렇게 하면 터미널에 test = 'x 변수의 내용' 이 찍혀 나옵니다.
오퍼레이터 우선순위는 낮은 순서부터 아래와 같이 됩니다.
or
and
> < >= <= ~= ==
..
+ -
* / %
not # - (unary)
^
코로나에서 메소드(펑션) 선언은 아래와 같습니다.
function abc()
함수 내용
end
그리고 미리 지정된 함수들도 사용할 수 있구요.
math.sin(100)
미리 지정된 함수들은 다음에 소개해 드릴 겁니다.
object method 를 사용하려면 : 를 사용합니다.
자바스크립트는 그냥 . 을 사용하지요. 이 부분이 좀 다르더라구요.
JavaScript | Lua |
---|---|
object.translate( 10, 10 ); |
object:translate( 10, 10 ) |
자바스크립트 처럼 . 을 사용해도 되는데요 그 방법은 아래와 같습니다.
Object call with dot | Object call with colon |
---|---|
object.translate( object, 10, 10 ); |
object:translate( 10, 10 ) |
편하신 대로 사용하면 되는데.. : 가 조금 더 편하죠?
메모리 관리는 루아가 알아서 해 줍니다.
자바처럼 garbage collection 에서 처리합니다.
루아는 local 로 선언된 내용들을 처리할 겁니다.
그러니까 변수나 함수 선언은 웬만하면 local로 하시는 게 좋습니다.
global 변수나 table 에 들어있는 변수들은 Garbage로 처리 되지 않아서 계속 메모리를 점유하고 있게 됩다
그리고 팁으로 알아 두실 건
자바에서는 모든 라인 끝에 ; 를 붙입니다.
루아는 붙여도 되고 아무것도 안 붙여도 됩니다.
if 문도 자바랑 약간 다른데요.
if () then
end
이런 구조를 갖고 있습니다.
그리고 elseif 는 붙여 씁니다.
배열에서 첫번째 배열은 t[1]입니다. 자바처럼 0에서 부터 시작하지 않습니다.
루아에서는 함수 리턴 값이 2개 이상 될 수도 있습니다.
이 부분은 편리하더라구요.
그리고 이렇게 변수값 대입도 가능합니다.
x,y=y,x
이러면 x 는 y 가 되고 y 는 x 가 됩니다.
x,y,z = 0
이러면 세개 변수 값이 한꺼번에 대입 되구요.
오늘은 이렇게 루아에 대한 문법 공부를 간단히 했습니다.
그냥 한번 읽으면 '아 루아는 다른 언어와는 다르게 이런 특징이 있구나' 하는 걸 알 수 있을겁니다.
그냥 거기까지만 하면 되지 않을까요?
그럼 다음 시간에 또 뵙겠습니다.
반응형
'Corona SDK > Corona Doc' 카테고리의 다른 글
Physics Joints 예제 코드 (0) | 2011.09.29 |
---|---|
Physics Joint (0) | 2011.09.28 |
Physics Bodies 코딩 하기 (5) | 2011.09.28 |
Physics Bodies (0) | 2011.09.27 |
Physics의 Collision Event (0) | 2011.09.27 |
Corona SDK Physics API (1) | 2011.09.22 |
정말 매력있는 코로나의 Physics Engine (2) | 2011.09.21 |
config.lua 파일과 build.lua 파일... (2) | 2011.09.19 |
폰트 및 config.lua 파일에 대하여. (10) | 2011.09.14 |
처음으로 코딩 해 보기 (2) | 2011.09.13 |