Avangs

  • 게임 정보
    • 게임 소개
    • 게임 리뷰
    • 게임 실황
    • 게임 공략
    • 모바일 테스트
  • 게임 작품new
    • 완성작 게임
    • 체험판 게임
    • 한글판 게임new
    • 온라인 게임
    • 추천작 제작자 저장소
  • 투표선정 작품
    • 아방스 추천작
    • 완성 기대작
    • 투표 신청
    • 투표소
    • 투표 결과
  • 강좌
    • 아방스 칼럼
    • 비주얼노벨 강좌
    • 알만툴 강좌
      • MZ 강좌
      • MV 강좌
      • VX Ace 강좌
      • VX 강좌
      • XP 강좌
      • 2003 강좌
      • 2000 강좌
    • 게임메이커 강좌
    • 울프툴 강좌
    • 3D 게임제작 강좌
    • 2D 게임제작 강좌
    • 그래픽 제작 강좌
    • 기타 강좌
  • 질문과 답변
    • 자주 묻는 질문
    • 질문과 답변
    • 제작의뢰
  • 커뮤니티
    • 구인·구직·외주
    • 테스트 요청
    • 자유게시판
    • 게임계 소식
    • 유머&정보
    • 사이트링크
    • 이벤트&대회
  • 창작
    • 게임 기획
    • 맵배치
    • 글쓰기
    • 그리기
    • 음악
  • 자료실
    • 게임제작툴
    • 예제 및 샘플
    • 그래픽 소재
      • 오리지널 소재
      • 이차창작 소재
      • 수정·개조 소재
      • 외부 소재
    • 사운드 소재
    • 확장·플러그인·스크립트
      • MZ 플러그인
      • MV 플러그인
      • Ace 스크립트
      • VX 스크립트
      • XP 스크립트
      • 2k3 플러그인
      • VN 플러그인·확장
    • 외부 소재사이트
    • 기타 자료
      • 한글화툴
      • 무료 폰트
      • 유틸리티
    • 디자인 참고자료
  • 고객센터
    • 공지사항
    • 건의 및 신고
    • 핫 이슈
로그인 회원가입
Avangs
  • 게임 정보
    • 게임 소개
    • 게임 리뷰
    • 게임 실황
    • 게임 공략
    • 모바일 테스트
  • 게임 작품new
    • 완성작 게임
    • 체험판 게임
    • 한글판 게임new
    • 온라인 게임
    • 추천작 제작자 저장소
  • 투표선정 작품
    • 아방스 추천작
    • 완성 기대작
    • 투표 신청
    • 투표소
    • 투표 결과
  • 강좌
    • 아방스 칼럼
    • 비주얼노벨 강좌
    • 알만툴 강좌
      • MZ 강좌
      • MV 강좌
      • VX Ace 강좌
      • VX 강좌
      • XP 강좌
      • 2003 강좌
      • 2000 강좌
    • 게임메이커 강좌
    • 울프툴 강좌
    • 3D 게임제작 강좌
    • 2D 게임제작 강좌
    • 그래픽 제작 강좌
    • 기타 강좌
  • 질문과 답변
    • 자주 묻는 질문
    • 질문과 답변
    • 제작의뢰
  • 커뮤니티
    • 구인·구직·외주
    • 테스트 요청
    • 자유게시판
    • 게임계 소식
    • 유머&정보
    • 사이트링크
    • 이벤트&대회
  • 창작
    • 게임 기획
    • 맵배치
    • 글쓰기
    • 그리기
    • 음악
  • 자료실
    • 게임제작툴
    • 예제 및 샘플
    • 그래픽 소재
      • 오리지널 소재
      • 이차창작 소재
      • 수정·개조 소재
      • 외부 소재
    • 사운드 소재
    • 확장·플러그인·스크립트
      • MZ 플러그인
      • MV 플러그인
      • Ace 스크립트
      • VX 스크립트
      • XP 스크립트
      • 2k3 플러그인
      • VN 플러그인·확장
    • 외부 소재사이트
    • 기타 자료
      • 한글화툴
      • 무료 폰트
      • 유틸리티
    • 디자인 참고자료
  • 고객센터
    • 공지사항
    • 건의 및 신고
    • 핫 이슈
로그인 회원가입

NOTICE

공지사항
더보기
  • 서버 안정성 및 보안 강화 조치 04.20

Recently Added Games

최근 등록 게임
  • 어드벤쳐 고철에 파묻힌 데모나 (屑鉄まとうデモナ) newfile 08.19
  • 어드벤쳐 비올레 저택의 시온 : 꽃눈의 저택|RPG Maker MZ 단편 심리공포 어드벤처 file 08.17
  • 기타 (똥 주의)그저 똥을 누러 가는 게임 Re:Boot updatefile 08.16
  • 롤플레잉 SACCHARINE SYNC (DEMO) 배포 file 08.12
  • 기타 (완성작) 야구장에 가자4 file 2 07.07
Neko:Lua
2009.01.10 12:24

Lua 시작 [펌]

나뚜루
조회 수 7535 추천 수 0 댓글 6
크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
루아 명령어
and break  do  else  elseif   
end  false  for  function  if   
in  local  nil  not  or   
repeat  return  then  true  until 

while

 

변수작명법

c의 경우는 int 자료형을 가지는 변수 iVal을 만든다면

int iVal = 0; 이라 하겠지만

루아의 경우는... 자료형이 없다. 없다기보다는 모든 자료타입에 맞게 모든 자료타입을

제공한다고 보면 되겠다 vb의 variant형과 같다고 보면된다.

 

즉 루아에서는 iVal = 0 이라고 하면 된다.

 

변수의 초기화

c에서는

int* piVal = &piVal2;

위와같이 대입을 하였을때 piVal을 초기화하려면 NULL을 쓰면된다.

piVal=NULL;

이렇게말이다.

 

루아에서는 nil 있다.

 

루아에서는 변수를 초기화한다면 iVal = nil 이 되겠다.

그러나 정확한 의미는 초기화보다는 삭제에 해당하기 때문에

해당 변수를 새로 만들어주어야한다.

 

ex)

iVal = 32

iVal = nil

print(iVal)

 

요 문장을 실행하면 실행결과는 nil 이라 나온다. (값이 nil 이란 의미가 아니라 변수가 없기때문에 nil)

 

ex-2)

iVal = 32

iVal = nil

print(iVal+1)

 

이라고 실행하면 에러가 난다. 2번째 문장에서 iVal이 삭제되었기때문에

3번째 문장에서 iVal에 1을 더할 수 가 없기 때문이다.

 

ex-3)

iVal = 32

iVal = nil

iVal=0

print(iVal+1)

 

이라고 실행하면 실행결과는 1이 나온다.

3번째 문장에서 iVal을 생성하고 0 을 대입해준걸로 인식되기 때문이다. ㅇㅋ?

 

루아에서의 문자열

루아에서 문자열 은 유연하다.

 

cVal_1 = "가나다라마바사아자차카타파하"

cVal_2 = [[가나다

            라마바

            아자차

            카타파]]

 

print(cVal_1)

print(cVal_2)

 

-result-

가나다라마바사아자차카타파하

가나다

라마바

아자차

카타하

 

지역변수와 글로벌변수

 

function Print_Val()

            iVal = 0

            print(iVal)

end

 

Print_Val()

print(iVal)

 

-result-

0

0

 

함수내에서 iVal이란 변수를 만들고 0 으로 초기화시켰다.

함수호출을 하여 iVal의 내용을 출력하니 0이 나온다.

문제는 함수 외에서 함수내에서 만들어진 변수인 iVal의 값을 출력하니 0이 나온다.

변수가 없었다면 nil이 나왔겠지만 0이 나왓다는건 함수내에서 변수를 만들었다 하더라도

local 을 붙이지 않았다면 global 로 선언된다는걸 알 수 있다.

 

function Print_Val()

            local iVal = 0

            print(iVal)

end

 

Print_Val()

print(iVal)

 

-result-

0

nil

 

이 경우엔 함수내에서 만들어진 변수엔 local 을 붙여줌으로서 함수 외부에서 참조하는걸

막았다 .

 

함수내에서 local로 만들었다고 함수내에선 항상 사용가능한건 아니다.

 

function Print_Val()
        local iVal = 0
        print(iVal)
        if iVal == 0 then 
                local iVal2 = 1 
        end
        print(iVal2)

end

 

Print_Val()

 

-result-

0

nil

 

iVal2는 if 블럭 안에서 생성된 local 변수기 때문에 해당 if 구문 내에서만 사용할 수 있다.

이건 뭐 당연한거다.

lua는 자유로움과 문법적인측면에서 vb를 많이 닮았다.

관계연산자

산술연산자는 뭐 다를수가 없으니 패스, 관계연산자의 경우도 c와 동일하다고보면되나.

"상등" 즉 "같지않다" 에 대한 표현만 다르다.

 

c의 코드라면 if ( 2 != 2)

즉 2가 아니라면 이란 표현이 루아에선

if 2 ~=2 then 으로 쓸 수 있다

 


if 2 ~= 1 then
 print("부등")
end

if 2 == 2 then
 print("상등")
end

-result-

부등

상등

 

제어구조

다른 프로그래밍 언어들과 마찬가지로 조건에 따라서 호출순서 분기를 수정해줄 수 있다.

 

함수

함수는 function 함수명 (넘겨받을 자료) 로 정의할 수 있다.

 

function Get_Sum(iVal1,iVal2)
        return iVal1 + iVal2
end


local iResult = Get_Sum(1,2)

print ( iResult)

 

-result-

3

 

가변인수함수

function Get_Sum(...)
        local iVal=0
        local iLoop =1
      

        while iLoop <= arg.n do
                iVal = arg[iLoop]

                iLoop= iLoop+1
                print(iVal)
       end
end

Get_Sum(1,2,3,4,5,6,7)

-result-

1

2

3

4

5

6

7

출처 : http://blog.naver.com/aozora18/70036810912

0 추천 0 비추천
위로 아래로 댓글로 가기 인쇄 수정 삭제
에디터 선택하기
✔ 텍스트 모드 ✔ 에디터 모드
?
댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
Comment '6'
  • ?
    [Dark].Angel 2009.01.12 16:22

    c에서는

    int* piVal = &piVal2;

    위와같이 대입을 하였을때 piVal을 초기화하려면 NULL을 쓰면된다.

    piVal=NULL;

    이렇게말이다.
     참고로...  int* piVal = &piVal2; 은 포인터입니다. 변수와 포인터의 초기화 방법이 다르니깐
    여러분 착각은 하지 말아주세요 ㅎㅎ... 포인터는 연산자를 넣어서 초기화를 하고 NULL로도 됩니다.

    그냥 변수는 이렇게 해두 되죠. int piVal = 0;
    포인터는 NULL로 해주는 거죠.

    루아에서는 nil로 초기화 하는 겁니다.


     

    댓글
  • ?
    레노 2009.01.13 14:22
    문자열 취급이 직관적이고 간편하네요. 굿입니다.
    댓글
  • ?
    네오라인 2009.01.15 16:32

    cVal_2 = [[가나다 
                라마바 
                아자차 
                카타파]]

    를 입력하면

    가나다
    라마바
    아자차
    카타하

    가 나오는군요?!

    수정 삭제 댓글
  • ?
    후르츠파르페 2009.01.21 02:09
    오호.. 명령어가 저게 주로쓰는거 다인가요?
    댓글
  • profile
    NewSet 2009.02.02 15:49
    루어 모르는 1人
    댓글
  • ?
    Jin's 2009.02.25 21:19
    뽕숀하고 리솔트  엔드는 알겟네
    댓글

Category
  • 연시만
  • 연시만2
  • VNAP
  • Vasilriot
  • Nekonovel
    • Neko:기초
    • Neko:응용
    • Neko:Lua
    • Neko:Plug-in
    • Neko:기타
  • Ren'Py
  • 피니엔진
  • TyranoBuilder
  • Visual Novel Maker
  • 기타
List of Articles
분류 제목 글쓴이 날짜 조회 수
Ren'Py 렌파이 관련 유용한 링크 모음 3 file 습작 2012.12.02 18376
Nekonovel 네코노벨 관련 유용한 링크 모음 1 file 습작 2012.11.19 12551
Visual Novel Maker 한글 텍스트 입력 file 러닝은빛 2017.11.21 1594
피니엔진 기본 틀 만들기 : 타이틀화면 file 하늘바라KSND 2017.11.15 2006
TyranoBuilder TyranoBuilder Visual Novel Studio Pro버전 한글패치 6 file 습작 2016.05.28 2337
피니엔진 FAL.노드이름에 관해서 알아보자. file 하늘바라KSND 2015.08.17 735
피니엔진 타이틀+클릭메뉴 예제 file 하늘바라KSND 2015.07.11 1221
피니엔진 애니메이션-스프라이트 간단한 팁 몇가지 하늘바라KSND 2015.07.11 1402
VNAP char로 캐릭터 출력 2 FNS키리토 2015.06.01 1009
피니엔진 피니엔진 타이틀 만들기 예제(구버전) 1 file 하늘바라KSND 2015.01.27 1885
기타 비주얼 노벨을 처음 제작하시는 분들께 1 file FNS키리토 2015.01.11 14081
VNAP 선택지 발생 3 file FNS키리토 2015.01.11 2129
피니엔진 텍스트, 대화, 독백 명령어 하늘바라KSND 2014.12.21 1691
피니엔진 안드로이드로 배포판을 만들기 위해 필요한 것들 하늘바라KSND 2014.12.20 1654
Vasilriot 바실리어트 메뉴얼(3) 하늘바라KSND 2014.12.20 985
Vasilriot 바실리어트 메뉴얼(2) 하늘바라KSND 2014.12.20 787
Vasilriot 바실리어트 메뉴얼(1) 하늘바라KSND 2014.12.20 1536
Neko:기타 쓰레드에 '대기' 명령어를 넣었을 때 나타날 수 있는 현상 file 하늘바라KSND 2014.11.27 1174
Neko:응용 네코노벨 미니게임 관련 스크립트-글라스 스노우 하늘바라KSND 2013.06.27 3469
Vasilriot 해상도 조절에 관한 간단한 고찰 2 하늘바라KSND 2013.05.18 3263
Vasilriot 바실리어트의 최신 버전 file 하늘바라KSND 2013.05.11 4139
Vasilriot 바실리어트 기본 설정하기 - 폰트 :: font.ini file 하늘바라KSND 2013.05.11 3127
쓰기
Board Pagination Prev 1 2 3 Next
/ 3
AVANGS

게임 제작, 창작, 자료, 강좌를 연결하는 커뮤니티

  • 개인정보 취급방침

Copyright © 2026 Avangs