30
Lua Script 1. 기기 기기 Lua 5.1.2 기기 기기기 2007.07.16 기기기기 – Programing Game AI by Example 작작작 : 10thP 작작작 1

Lua Script 1. 기초 문법

  • Upload
    liseli

  • View
    119

  • Download
    0

Embed Size (px)

DESCRIPTION

Lua Script 1. 기초 문법. Lua 5.1.2 버전 작성일 2007.07.16 참고서적 – Programing Game AI by Example 작성자 : 10thP 김성재. 시작하기 앞서. 정품이 필요하시다면 알아서 구하시길. 설치. 시작하기 앞서. 좌측 버튼을 눌러 yohani_1155114543_wowlua.stx (WOW 의 lua 스크립트 하이라이팅 출처 : wow.somegate.com ) 추가한 후 확인을 하면 에디트 플러스에서 - PowerPoint PPT Presentation

Citation preview

Page 1: Lua  Script 1. 기초 문법

1

Lua Script 1. 기초 문법Lua 5.1.2 버전

작성일 2007.07.16참고서적 – Programing Game AI by Example

작성자 : 10thP김성재

Page 2: Lua  Script 1. 기초 문법

2

설치

시작하기 앞서 ..

정품이 필요하시다면 알아서 구하시길 ..

Page 3: Lua  Script 1. 기초 문법

3

시작하기 앞서 ..

좌측 버튼을 눌러

yohani_1155114543_wowlua.stx(WOW 의 lua 스크립트 하이라이팅출처 : wow.somegate.com )추가한 후 확인을 하면

에디트 플러스에서Lua 스크립트 하이라이팅이 적용된다 .

Page 4: Lua  Script 1. 기초 문법

4

실행 방법 (LuaConsole 이용 )

Edit Plus 나 메모장 등의 편집기를 이용해작성한 후 위와 같이 “ LuaConsole.exe” 를 실행해위와 같은 방식으로 스크립트 파일을 읽는다 .<> 가 아니고 () 괄호 입니다 . (“rps.lua”) 이게 맞습니다 .

지금부터 할 예제들을 하나씩 실행해보면서 익혀봅시다 . 꼭 !

Page 5: Lua  Script 1. 기초 문법

5

기초 - 0. 주석 한줄 주석 : --

여러줄 주석 : --[[ 시작 ~ 끝 ]] 여러줄 주석내에 여러줄 주석이 있으면Error 가 나므로 주의 할것 .

Page 6: Lua  Script 1. 기초 문법

6

기초 – 세미 콜론 ( ; )

명령어 끝에 ; 은 붙여도 되고안 붙여도 된다 .

Page 7: Lua  Script 1. 기초 문법

7

기초 – 1. 자료형 루아는 기본적으로 자료형에

구애 받지 않는다 .

다만 Cpp 에서 사용할때 , 명시적인 변환이 요구 되기 때문에 알아두어야 한다 .

루아에는 쓰레드 자료형도 있지만 사용해 본 적이 없어서 건너 뛰겠다 .

Page 8: Lua  Script 1. 기초 문법

8

기초 – 1. 자료형의 종류 nil         - 그냥 NULL 이다 .

변수 초기화 안하면 , 이걸로 세팅 된다 .

number  - 내부적으로 double 이다 . Cpp 에서 사용할때 형변환 잘 해야한다 .

boollean - false 아니면 true. (0 아니면 1)

Page 9: Lua  Script 1. 기초 문법

9

기초 – 1. 자료형의 종류 string    - 8bit 의 문자열 배열이다 .

연결 연산자 '..' 를 사용해서 문자들을 연결가능하다 .

             ‘..' 은 연결하려는 자료가 문자가 아니면 문자로 변환시킨다 .

          ex)  age = 25                 print(" 내나이는 "..age.." 랍니다 ")

function - 루아에선 함수도 자료형이다 . 그래서 변수에도 저장 될 수 있다 .

Page 10: Lua  Script 1. 기초 문법

10

기초 – 1. 자료형의 종류 ( 함수 )

함수 정의에는 두가지 방식이 있다 .

Add = function(a, b)return a+b

end

Function Add(a,b)return a+b

end

Add 라는 이름의 함수인자값 a, b 를 합해서return 해주고 있다 .

Ex)

Page 11: Lua  Script 1. 기초 문법

11

Return 값이 여러개인 함수

return 값이 여러 개인 함수는위와 같이

return 값을 받아 사용한다 .

Page 12: Lua  Script 1. 기초 문법

12

기초 – 1. 자료형의 종류 Table – 배열과 비슷하게 쓰인다 .

             index 를 문자 , 문장 , 숫자들을 사용 할 수 있다 .

시작 index 는 0 이 아닌 , 1 이다 .

Page 13: Lua  Script 1. 기초 문법

13

기초 – 1. Lua Table

Table 생성test_table = {}

test_table[1] = 4;test_table[2] = 1.2;test_table[3] = " 문장도 되요 ";

또는

test_table = {1, 1.2, " 문장도 되요 "}; 위와 같이 동일한 index 1, 2, 3 으로 사용됨

Page 14: Lua  Script 1. 기초 문법

14

기초 – 1. Associate Table

AssociateTable = {} -- 테이블 생성

AssociateTable[“one”] = 1; AssociateTable[“two”] = “ 둘” ;

Index 1 은 자동적으로 처음에 입력한 값을 가르키는 것이 아니다 .

Page 15: Lua  Script 1. 기초 문법

15

기초 – 1. Table 에러

. 위는 Table 정의시 가장 안전한 방법인 , 한줄씩 정의하기 이다 .

. 이것을 기준으로 Table 정의시 에러를 몇 가지 살펴보자 .

Table1.lua

Page 16: Lua  Script 1. 기초 문법

16

기초 – 1. Table 에러

. 한줄씩 Table 을 정의할때는 한글을 써도 문제가 없지만 , 한번에 정의하는 방식에서 한글을 쓰면 저렇게 문제가 발생한다 .

TableError1.lua

Page 17: Lua  Script 1. 기초 문법

17

기초 – 1. Table 에러

. 한번에 정의하는 방식을 나중에 하면 , 이전에 정의했던 값들은 사라져버린다 . 위에서 “숫자” 부분이 빨간 사각형 위에 써있었다면 숫자가 나올부분도 nil 값이 나왔을 것이다 .

TableError2.lua

Page 18: Lua  Script 1. 기초 문법

18

기초 – 1. Associate Table

lookup={}; -- Table 생성

             lookup["rock"] = {}             lookup["rock"]["rock"]         = "draw"             lookup["rock"]["paper"]      = "lose"             lookup["rock"]["scissors"]    = "win“

행 , 열 의 순서로 작성 되었다 .(1 행 Rock 부분만 설정하고 있음 )

다음과 같은 형태의 Associate Table 도 가능하다

Page 19: Lua  Script 1. 기초 문법

19

기초 – 1. Associate Table

아래와 같은 값 설정 방식도 가능하다 lookup = {} --Table 생성 lookup["rock"]        = {rock = "draw", paper = "lose", scissors = "win"}                lookup["paper"]      = {rock = "win" , paper = "draw", scissors = "lose"}                lookup["scissors"]   = {rock = "lose", paper = "win" , scissors = "draw"}

Page 20: Lua  Script 1. 기초 문법

20

기초 – 1. Associate Table 사용

위의 두개의 print 문중 아무 방식으로Table 에 접근해도 상관 없다 .

Page 21: Lua  Script 1. 기초 문법

21

기초 – 1. Associate Table 사용

Associate Table 로 함수를 가르키고 호출도 가능하다 . 또 직접적으로 함수를 정의해줄 수 있다 .

Page 22: Lua  Script 1. 기초 문법

22

기초 -2. 논리 연산자 같음 == 같지 않음 ~= 크고 , 작고 , 같거나 작음 ,

같거나 큼 등은 (C 와 동일함 )

C / Lua ! -> not && -> and || -> or

Page 23: Lua  Script 1. 기초 문법

23

기초 -3. 조건문 if

if 이후에는 항상 then 을 잊지 말것 else if 가 아니고 elseif 임을 잊지 말것 시작은 if 로 끝맺음은 end 임 . 같지 않음은 != 이 아닌 ~= 임

Page 24: Lua  Script 1. 기초 문법

24

기초 -3. 조건문 if

위 표현식은 에러를 유발함 유의하기 바람

이와 같이 사용해야 올바른 실행이 보장됨

Page 25: Lua  Script 1. 기초 문법

25

기초 – 4. 반복문 (while)

설명이 필요 없으리라 생각한다 . break 로 구문을 빠져나갈수 있다 .

Page 26: Lua  Script 1. 기초 문법

26

기초 – 4. 반복문 (repeat)

설명이 필요 없으리라 생각한다 . break 로 구문을 빠져나갈수 있다 .

Page 27: Lua  Script 1. 기초 문법

27

기초 – 4. 반복문 (for)

초기 값 , 종료 값 , 증가 값 순이다 . 따로 변수를 선언해줄 필요 없다 . break 로 구문을 빠져나갈수 있다 .

Page 28: Lua  Script 1. 기초 문법

28

기초 – 4. 반복문 ( 실수를 허용 )

반복문 모두 위와 같은 실수형을 허용한다 .

Page 29: Lua  Script 1. 기초 문법

29

기초 문법 끝내면서… 아래 Random 값을 발생 시키는 아래 문장을

참조하여 , 가위 바위 보를 만들어 보자 . 관계테이블 (Associate Table) 및 함수등을 이용해서

연습 해보는 것이 좋을 것이다 .( 책에서 제공하는 소스를 첨부합니다 .)

Page 30: Lua  Script 1. 기초 문법

30

기초 문법 끝내면서… 기획자 분들은 여기까지만

하셔도 좋습니다 .

Class 를 사용할 줄 아신다면 , 다음에 올릴ppt 에 ” (3).Script 에서 Class 정의하기”부분을 살펴보시기 바랍니다 .

수고하셧습니다 ^^ - 07 년 10월 27 일 마침 .