잡담 | 이번엔 루아 스크립트 공부를 해보겠습니다.
알바
Level. 10   Point. 10921
작성일 18-04-21 19:39 / 조회 344회 / 댓글 1건
서명도 수정해봅니다
작성글보기

본문

루아스크립트는 게임 클라이언트 쪽에 많이 쓰이는 언어로서

php보다도 쉽고  표현이 심플하여

UI 구현 등에 많이 쓰이는 것으로 알고 있습니다.

 

똥나무 UI도  루아스크립트로 되 있는데

애드온 같은 것도 루아스크립트로 짜져있네요

 

제가 애드온을 하나 맹글어 보고 싶어서

공부를 시작하려고 합니다

 

3일 정도면 목표에 도달 할 수 있을래나 모르겠네요

길을 잘 찾아가면 좋겠다능

 

---------------------------

 

여기는 노트필기예요..

 

-------------------

 

- 대소문자 구분합니다

- 줄마침은 ; 인데 써도되고 안써도 동작..

-  한줄 주석은 -- 이고 주석묶음은 --[[  ~  ]]  이렇게 생겼어요. 닫히는 쪽에는 -- 없슴

- 로칼 변수는 local 변수명 = ~  이렇게 쓰고 전역변수는 변수명 = ~ 이렇게 씀

-  루아는 그냥 문자열이 변수임. 아..이거 헷갈릴 수도 ? ;;

- var = "tete";  var = 2; var ={2,"4r3",3};  이런식으로 전역 변수 선언됨

- 루아에서 수는 전부 double 형 정수

- 문자열은 '' 랑 ""  둘다 사용

- 여러줄 문자열은 [[  여러줄의 텍스트  ]]  로 묶음

- var = nil;  정의되지 않은 변수로 만듬.

 

- 반복문 블록의 시작은 do 끝은 end 로 써준다... php 는 {} 라서 더 간단했는뎅

 

- if 문 은

 

if  조건 then

~~

elseif 조건 then

~~

else  ~~

end

 

 형식이다.

 

 

배열이나 문자열의 길이를 구할 때 보통은 length를 이용하는데 Lua는 #을 이용합니다. (num.length => #num)

 

 

같다는 ==

같지않다는~=

문자열 출력은 print('문자열')

 

문자열 + 문자열 할때는 가운데에 .. 를 찍는다 php는 점 하나였는데 얘는 두개

 

foo = anUnknownVariable  정의되지 않는 변수를 넣는디

foo = nil  이랑 같은거

 

boolean 연산에서는 false랑 nil 만  거짓임  0 이랑 "" 도 참

 

 

 

 

논리연산 특이하네

 

연산자 우선순위 높은순

^
not # – (부호인 단항연산자)
* / %
+ –
..
> < >= <= ~= == and or <도트 연산자>

 

 

 

a = 10 == 2   -- 같은가?
b = 10 ~= 2  -- 다른가? ~기호가 C언어의 !과 비슷
c = 10 > 2    -- 보다 큰가?
d = 10 < 2    -- 보다 작은가?
e = 10 >= 10 -- 크거나 같은가?
f = 10 <= 2   -- 작거나 같은가?

print(a)
print(b)
print(c)
print(d)
print(e)
print(f)

<결과>
false
true
true
false
true
false

 

 

 

a = true   -- true 값
b = false  -- false 값
c = a and b -- and 연산
d = a or c   -- or 연산
e = not a    -- not 연산, 부정
f = a and true -- a가 참이면 두번째 인자가 리턴되기에 true
g = 10 and 20 -- 10이 참이기에 두번째 인자 값을 리턴되어 20이 됨 <=== 호오..

print(a)
print(b)
print(c)
print(d)
print(e)
print(f)
print(g)


<결과>
true
false
false
true
false
true
20

 

 

 

 

다른 언어에서 &&은 둘다 트루일때 참 ||는 둘다 false 이어야 false 가 되는데

and랑 or 는 좀더 찾아보자

 

 

 

 

for 문도 비슷한데

 

1에서 100 까지 증가하는 표현

karlSum = 0
for i = 1, 100 do  -- 그 범위의 양 끝을 포함합니다.
  karlSum = karlSum + i
end

 

-- "100, 1, -1"를 쓰면 범위를 감소하도록 정할 수 있습니다.
fredSum = 0
for j = 100, 1, -1 do
  fredSum = fredSum + j
end

 

-- 이건 다른데 없는거네

 repeat
  print('the way of the future')
  num = num - 1
until num == 0

 

--  반복문은

while num < 50 do
  num = num + 1      -- ‘++’ 또는 ’+=’ 연산자는 없습니다.
end

 

 

 

 

 

 

 


 

추천 0 비추천 0
추천 0 비추천 0
알바 작성일

JavaScript/ActionScript의 경우는 프로퍼티와 메소드에 접근할 때 . 연산자를 이용합니다.
Lua의 경우 프로퍼티는 . 로 접근하지만 메소드는 : 을 이용합니다.

JavaScript
object.translate( 10, 10 );

Lua
object:translate( 10, 10 )