1 / 30

Lua Script 1. 기초 문법

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 ) 추가한 후 확인을 하면 에디트 플러스에서

liseli
Download Presentation

Lua Script 1. 기초 문법

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lua Script 1.기초 문법 Lua 5.1.2 버전 작성일 2007.07.16참고서적 – Programing Game AI by Example 작성자 : 10thP김성재

  2. 시작하기 앞서.. 정품이 필요하시다면 알아서 구하시길.. 설치

  3. 시작하기 앞서.. 좌측 버튼을 눌러 yohani_1155114543_wowlua.stx(WOW의 lua스크립트 하이라이팅출처 : wow.somegate.com ) 추가한 후 확인을 하면 에디트 플러스에서 Lua스크립트 하이라이팅이 적용된다.

  4. 실행 방법(LuaConsole이용) • Edit Plus나 메모장 등의 편집기를 이용해작성한 후 위와 같이 “LuaConsole.exe”를 실행해위와 같은 방식으로 스크립트 파일을 읽는다. <>가 아니고 () 괄호 입니다. (“rps.lua”) 이게 맞습니다. 지금부터 할 예제들을 하나씩 실행해보면서 익혀봅시다. 꼭!

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

  6. 기초 – 세미 콜론( ; ) • 명령어 끝에 ; 은 붙여도 되고안 붙여도 된다.

  7. 기초 – 1. 자료형 • 루아는 기본적으로 자료형에구애 받지 않는다. • 다만 Cpp에서 사용할때, 명시적인 변환이 요구 되기 때문에 알아두어야 한다. • 루아에는쓰레드자료형도 있지만 사용해 본 적이 없어서 건너 뛰겠다.

  8. 기초 – 1. 자료형의 종류 • nil         - 그냥 NULL 이다. 변수 초기화 안하면, 이걸로세팅 된다. • number  - 내부적으로 double이다.Cpp에서 사용할때 형변환 잘 해야한다. • boollean - false아니면 true. (0 아니면 1)

  9. 기초 – 1. 자료형의 종류 • string    - 8bit의 문자열 배열이다. 연결 연산자 '..'를 사용해서 문자들을 연결가능하다. ‘..'은 연결하려는 자료가 문자가 아니면 문자로 변환시킨다.          ex)  age = 25                 print("내나이는"..age.."랍니다") • function - 루아에선 함수도 자료형이다.그래서 변수에도 저장 될 수 있다.

  10. 기초 – 1. 자료형의 종류(함수) • 함수 정의에는 두가지 방식이 있다. • Add = function(a, b) return a+bend • Function Add(a,b) return a+bend Add 라는 이름의 함수 인자값a, b를 합해서 return 해주고 있다. Ex)

  11. Return 값이 여러개인 함수 return 값이 여러 개인 함수는 위와 같이 return 값을 받아 사용한다.

  12. 기초 – 1. 자료형의 종류 • Table– 배열과 비슷하게 쓰인다.             index를 문자, 문장, 숫자들을 사용 할 수 있다.시작 index는 0이 아닌,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으로 사용됨

  14. 기초 – 1. Associate Table • AssociateTable = {} -- 테이블 생성AssociateTable[“one”] = 1;AssociateTable[“two”] = “둘”; Index 1은 자동적으로 처음에 입력한 값을 가르키는 것이 아니다.

  15. 기초 – 1. Table 에러 Table1.lua .위는 Table 정의시가장 안전한 방법인, 한줄씩 정의하기 이다..이것을 기준으로 Table정의시 에러를 몇 가지 살펴보자.

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

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

  18. 기초 – 1. Associate Table 다음과 같은 형태의 Associate Table도 가능하다 lookup={}; -- Table 생성 lookup["rock"] = {}             lookup["rock"]["rock"]         = "draw"             lookup["rock"]["paper"]      = "lose"             lookup["rock"]["scissors"]    = "win“ 행, 열 의 순서로 작성 되었다. (1행 Rock 부분만 설정하고 있음)

  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"}

  20. 기초 – 1. Associate Table 사용 • 위의 두개의print문중 아무 방식으로 Table에 접근해도 상관 없다.

  21. 기초 – 1. Associate Table 사용 • Associate Table로 함수를 가르키고호출도 가능하다. 또 직접적으로 함수를 정의해줄 수 있다.

  22. 기초-2. 논리 연산자 • 같음 == • 같지 않음 ~= • 크고, 작고, 같거나 작음, 같거나 큼 등은 (C와 동일함) • C / Lua • ! -> not • && -> and • || -> or

  23. 기초-3. 조건문if • if 이후에는 항상 then을 잊지 말것 • else if 가 아니고 elseif 임을 잊지 말것 • 시작은 if로 끝맺음은 end 임. • 같지 않음은 != 이 아닌 ~=임

  24. 기초-3. 조건문if 위 표현식은 에러를 유발함 유의하기 바람 이와 같이 사용해야 올바른 실행이 보장됨

  25. 기초 – 4. 반복문(while) • 설명이 필요 없으리라 생각한다. • break로 구문을 빠져나갈수 있다.

  26. 기초 – 4. 반복문(repeat) • 설명이 필요 없으리라 생각한다. • break로 구문을 빠져나갈수 있다.

  27. 기초 – 4. 반복문(for) • 초기 값, 종료 값, 증가 값 순이다. • 따로 변수를 선언해줄 필요 없다. • break로 구문을 빠져나갈수 있다.

  28. 기초 – 4. 반복문(실수를 허용) • 반복문 모두 위와 같은 실수형을 허용한다.

  29. 기초 문법 끝내면서… • 아래 Random 값을 발생 시키는 아래 문장을참조하여, 가위 바위 보를 만들어 보자. • 관계테이블(Associate Table)및 함수등을 이용해서연습 해보는 것이 좋을 것이다.(책에서 제공하는 소스를 첨부합니다.)

  30. 기초 문법 끝내면서… • 기획자 분들은 여기까지만 하셔도 좋습니다. • Class를 사용할 줄 아신다면, 다음에 올릴ppt에 ”(3).Script에서 Class 정의하기”부분을 살펴보시기 바랍니다. • 수고하셧습니다^^ - 07년 10월 27일 마침.

More Related