30
Lua 5.1.2 버버 버버버 2007.07.16 버버버버 – Programing Game AI by Example 작작작 : 10thP 작작작 1

Lua Script 1. 기초 문법

  • Upload
    abba

  • View
    185

  • 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 ) 추가한 후 확인을 하면 에디트 플러스에서 Lua 스크립트 하이라이팅이 적용된다. - PowerPoint PPT Presentation

Citation preview

Page 1: Lua  Script 1. 기초 문법

Lua 5.1.2 버전작성일 2007.07.16

참고서적 – Programing Game AI by Example작성자 : 10thP 김성재

1

Page 2: Lua  Script 1. 기초 문법

설치

2

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

Page 3: Lua  Script 1. 기초 문법

좌측 버튼을 눌러

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

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

3

Page 4: Lua  Script 1. 기초 문법

Edit Plus 나 메모장 등의 편집기를 이용해작성한 후 위와 같이 “ LuaConsole.exe” 를 실행해위와 같은 방식으로 스크립트 파일을 읽는다 .

<> 가 아니고 () 괄호 입니다 . (“rps.lua”) 이게 맞습니다 .지금부터 할 예제들을 하나씩 실행해보면서 익혀봅시다 . 꼭 !

4

Page 5: Lua  Script 1. 기초 문법

한줄 주석 : --

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

5

Page 6: Lua  Script 1. 기초 문법

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

6

Page 7: Lua  Script 1. 기초 문법

루아는 기본적으로 자료형에 구애 받지 않는다 .

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

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

7

Page 8: Lua  Script 1. 기초 문법

nil         - 그냥 NULL 이다 . 변수 초기화 안하면 , 이걸로 세팅 된다 .

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

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

8

Page 9: Lua  Script 1. 기초 문법

string    - 8bit 의 문자열 배열이다 . 연결 연산자 '..' 를 사용해서 문자들을

연결가능하다 . ‘..' 은 연결하려는 자료가 문자가 아니면

문자로 변환시킨다 .          ex)  age = 25                 print(" 내나이는 "..age.." 랍니다 ")

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

9

Page 10: Lua  Script 1. 기초 문법

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

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

end

Function Add(a,b)return a+b

end

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

Ex)

10

Page 11: Lua  Script 1. 기초 문법

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

return 값을 받아 사용한다 .

11

Page 12: Lua  Script 1. 기초 문법

Table – 배열과 비슷하게 쓰인다 .             index 를 문자 , 문장 , 숫자들을

사용 할 수 있다 .

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

12

Page 13: Lua  Script 1. 기초 문법

Table 생성test_table = {}

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

또는

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

13

Page 14: Lua  Script 1. 기초 문법

AssociateTable = {} -- 테이블 생성

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

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

Page 15: Lua  Script 1. 기초 문법

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

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

Table1.lua

15

Page 16: Lua  Script 1. 기초 문법

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

TableError1.lua

16

Page 17: Lua  Script 1. 기초 문법

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

TableError2.lua

17

Page 18: Lua  Script 1. 기초 문법

lookup={}; -- Table 생성

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

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

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

18

Page 19: Lua  Script 1. 기초 문법

아래와 같은 값 설정 방식도 가능하다 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"}

19

Page 20: Lua  Script 1. 기초 문법

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

20

Page 21: Lua  Script 1. 기초 문법

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

21

Page 22: Lua  Script 1. 기초 문법

같음 == 같지 않음 ~= 크고 , 작고 , 같거나 작음 ,

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

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

22

Page 23: Lua  Script 1. 기초 문법

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

23

Page 24: Lua  Script 1. 기초 문법

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

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

Page 25: Lua  Script 1. 기초 문법

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

25

Page 26: Lua  Script 1. 기초 문법

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

26

Page 27: Lua  Script 1. 기초 문법

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

27

Page 28: Lua  Script 1. 기초 문법

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

28

Page 29: Lua  Script 1. 기초 문법

아래 Random 값을 발생 시키는 아래 문장을참조하여 , 가위 바위 보를 만들어 보자 .

관계테이블 (Associate Table) 및 함수등을 이용해서연습 해보는 것이 좋을 것이다 .( 책에서 제공하는 소스를 첨부합니다 .)

29

Page 30: Lua  Script 1. 기초 문법

기획자 분들은 여기까지만 하셔도 좋습니다 .

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

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

30