본문 바로가기

[ C/ C++ 프로그래밍 ]/[ 루아 ]

[ 루아 ] 루아 입문

[ 참고 및 출처 ] 
루아를 이용한 민첩하고 효과적인 게임 개발



이미 "예제로 배우는 루아책"을 통해서  앞에서 변수, 연산자등 문법에 대해서 공부했다. 여기서는 간단하게 복습하고 넘어간다.
 

 루아 스크립트 : 루아를 담은 텍스트 파일, 확장자는 보통 .lua
 
 탭 , 줄바꿈, 들여쓰기 등을 이용한 텍스트 포매팅 상관하지 않음 ==> 사람이 보기 쉽게 하기 위해서
 
 명령들 사이의 빈칸은 중요 =>변수 이름과 함수 호출을 구분하기 위해
 
 청크(chunk) : 루아에서 하나의 명령 또는 일련의 명령등(스크립트 파일 전체 등), 작을 수도 있고(print 명령하나), 수 메가바이트이상(스크립트파일 등) 될수도 있다.

 dofile :  주어진 스크립트 파일을 즉시 실행, 경로 구분에는 역슬래시 하나가 아니라 두개(\\)를 사용해야 함
            => 역슬레시 문자는 문자열 안에서 어떤 특별한 문자를 표현하기 위해서 쓰임
            dofile를 이용해서 스크립트 실행 도중 오류가 발생하면 오류메시지를 출력해줌


 예약어 : 이들은 식별자로 사용 불가
             and, local, break, nil, do, not, else, or, elseif, repeat, end, return, false, then, for, true, if, while, in

  주석 :  -- 시작해서 그 줄의 끝까지
             
  변수 : 미리 선언하지 않고 사용할 수 있음, 필요한 곳에 바로 넣어서 사용가능,  타입도 지정할 필요 없음, 변수의 형식은 배정된 값을 가지고 루아가 판단

 nil : 어떤 값도 배정된 적이 없음 
 
 부울 : true, false 두 값만 가짐

 문자열 :  매우 강력한 문자열 조작 함수들 제공 => 빠른 문자열 조작 능력은 루아의 주요 장점

 특수 문자열 : C와 비슷하게 루아도 역슬래시를 이용해서 문자열 안에 특수 문자를 지정함
                   \a : 벨    \v : 수직탭   \b : 백스페이스   \\ : 역슬래시   \f : 폼피드     \t : 수평탭
                   \" : 큰 따옴표    \' : 작은 따옴표   \n : 새줄    \r : 캐리지 리턴    \[ , \] :대괄호

  수치 : 루아에서 수치는 모두 배정도 부동소주점 값 ==> double,   단정도 부동소수점(float)을 사용하도록 설정 가능

  테이블 :  배열 처럼 사용가능

 전역변수  : 기본적으로 모든 루아 변수는 본질적으로 전역 변수,  스크립트 전체에서 접근할 수 있으며 스크립트 실행이 끝날때까지 유지된다.
                   변수의 값은 스크립트에서 명시적으로 바꾸지 않는 한 계속 동일하게 유지
                   의도적으로 전역 변수로 사용할 변수의 이름은 소문자g로 시작하는 것이 좋다 ==> 디버깅에 도움
                    또한 가능한 곳에서는  항상 지역 변수를 사용하는 것이 좋다.

 지역 변수 : 그 변수가 정의된 스크립트 블록 안에서만 유효, 그 블록의 실행이 끝나면 파괴,  지역 변수를 선언(또는 정의)  local이라는 키워드 사용
                

※ 프로젝트가 커지면 더 많은 스크립트 파일들이 추가됨에 따라, 게임 프로젝트의 어딘 가에서 전역 변수를 잘못 설정, 사용하는 위험이 커진다.
    지역 변수를 최대한 사용하는 것은 그런 위험을 피하고 코드를 좀더 깜끔하게 유지하는데 도움이 된다.


  연산자 : 두개의 값들로 어떤 연산을 수행하는 특별한 기호, 산술연산자는 산술결과, 관계 연산자는 부울겨로가를 낳는다.

 논리 연산자 : 논리 연산자는 주어진 두 인수(피연산자)들에 대해 논리합, 논리곱, 같은 논리 연산을  수행
                      논리곱 and, 논리합 : or 부정 : not

 제어구조 :  스크립트 안에서 어떤 조건 판단에 따라 실행의 흐름을 바꾸는 수단을 제어 구조, 
                 제어 구조 안에서 선언된 변수는 무조건 지역변수, 루아의 제어 구조는 모두 end로 끝난다.
                 if, while, repeat, for, break, return