메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

Love2D 엔진은 Lua 기반이라 좋던 싫던 우리는 이미 Lua를 쓰고 있는 것입니다.

그래서 원활한 개발을 원한다면 Lua 언어를 알아두는 것이 좋습니다.

어 차피 Lua라는 게 알아먹기 쉽고 가벼우므로 게임 업게에 종사하는 디자이너 혹은 작가, 게임 디자이너가 Lua나 Python 같은 가벼운 스크립트 언어를 하나 정도 알고 있다면 당신의 아이디어를 실제로 구현하는 프로그래머와 좀 더 원활한 의사소통이 가능하므로 하나쯤 익혀두면 좋겠습니다.


Lua는 게임제작 외에도 게임의 Mod 제작(이것도 게임제작인가?), 리눅스 시스템의 관리, 웹 프로그래밍, GUI를 가진 윈도우 프로그램도 만들 수 있고 C나 C++에 붙어서 돌아가기도(사실 이 경우가 더 많다고 합니다) 하기 때문에 정말 쓸 데가 많다고 합니다.


잡설 이만 잘라먹고 시작합니다.


Lua를 실행하는 법은 자세히 안 다룹니다.

일단 설치파일을 실행하던 리눅스에서 apt-get을 하던 루아를 받습니다.

리눅스에서: lua 파일이름.lua

Windows에서: Lua 경로로 간다(환경변수를 등록한다) -> lua 파일이름.lua

Mac에서: 무다다! 무다무다무다무다무다! 시간은 움직이기 시작한다!


어차피 Lua를 설치할 필요는 없습니다. 정말 이 요약글을 보며 하나하나 실습하고 싶어하는 모범생이 아닌 이상. Love2D가 목적이지 Lua 자체가 목적은 아니니까요. Lua는 살짝 맛만 볼 겁니다.


일단 뭔가 내뱉는 녀석이다. 이런저런 처리를 하고 결과를 출력하는 데 쓴다.

print("출력할 것")

"" 안은 문자열. 변수도 출력할 수 있다. 변수가 뭐냐면 나중에 배우자.


그럼 입력을 받자. 사용자가 뭘 넣어줘야 프로그램이 결과를 돌려주니까.

io.read()

이러면 값을 넣는다. 하지만 입력받는것만으로는 뭘 할 수 없다. 어딘가에 저장하고, 처리해서 다시 돌려줘야 한다.


자, 입력과 출력을 배웠다. 첫 프로그램을 만들어보자. Hello Word 따위는 시시하니까 다른 걸 만들자.

입력한 걸 바로 출력해 돌려주는 녀석이다.


print(io.read())


한 줄이다.

실행해 보라.


print("io.read()")가 아니다. 그러면 입력을 받지 않고 io.read()를 문자열로 받아들여 버린다.

'읽어들인 입력을 출력하라'는 명령을 내리는 것이 아닌 'io.read()라고 출력하라.' 라고 컴퓨터에게 명령해버리는 것이다. 이래선 안 된다.


시 시하겠지만 이것으로 첫 프로그램이 완성되었다. 더 나아가면 그래픽으로 그림을 그려 출력할 수도 있고, 출력을 네트워크로 보낼 수도 있고, 파일로도 입력 받을 수 있고, GUI 창을 만들어서 입력받을수도 있고, 기타 등등이 가능하다. 더 나아가는 공부는 다른 곳에 많다. 여기선 Love2D를 막힘 없이 사용할 수 있는 정도의 Lua 문법만 알아볼 것이다.


그럼 다음에는 들어온 데이터를 어떻게던 처리해보도록 한다.

루아의 코딩 스타일, 주석 변수, 수치의 연산을 배우고, 가능하면 제어문이나 문자열의 처리 등도 같이 공부해 보자.

어려운 말이 마구 쏟아져 나오는데.. 같이 공부해 나가자. 궁금한 것은 덧글로 달아 같이 배워 봅시다.

조회 수 :
705
등록일 :
2013.09.17
08:21:34 (*.209.135.92)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=703431
List of Articles
번호 제목 글쓴이 조회 수sort 추천 수 날짜 최근 수정일
145 또질문 [2] 쿠로쇼우 2854   2008-09-29 2008-09-29 06:43
#include <stdio.h> int main (void) { int i=1,a=1,b=0,c=0,d=0; char ch[50]; char ca=0; FILE * file = fopen("a.txt", "rt"); if(file==NULL){ printf("NULL"); return 1; } while(1) { fgets(ch, 50, file); if(feof(file)!=0){ break;} else { fscanf(fi...  
144 똥똥배의 게임대회 이야기(2) [2] 혼돈 2816   2007-02-07 2008-03-17 04:37
2. 100KB 공모전의 추억 1회 규칙이 10M로 제한 된 것은 과거 100KB 공모전이 담겨있어서 입니다. 과거 100KB 공모전이라고 있었는데, 그 제한된 용량을 이용해서 다양한 작품이 나왔었죠. 그 중에 우수상을 탔던 것이 '삭제 되었수다'로서 오히려 제한된 용량...  
143 DirectX 창모드에서 화면 지워지는 문제 [7] file 똥똥배 2790   2010-12-12 2010-12-19 03:36
 
142 질문요.C++ [7] 질문자01 2729   2007-05-10 2008-04-03 05:32
도대체 파라미터가 뭔지 모르겠어요.  
141 SRPG을 구현하게 되면 ... [3] 짜스터 2708   2010-10-05 2013-11-23 04:38
지금 도트 제작단계로 넘어갈 예정인데 SRPG 시스템을 지원 해주실거면 무슨 툴로 하실건가요? 해상도에 따라서 도트 크기도 맞춰야 하는터라. 혹시나 생각하신것이 있으면 알려주세요.  
140 퀴즈소스입니다 허클베리핀님 라컨 2546   2005-08-23 2008-03-17 04:37
Private Sub Form_Click() If 시작 <= 1 Then MsgBox ("이제 왔군 학생") MsgBox ("이번이 시험인건 알고 있겠지?") MsgBox ("문제를 낼테니 잘 풀어라") 문제 = InputBox("흑곰의 이전 닉네임은 무엇이였나?") If 문제 = "답" Then MsgBox ("맞았군") Cls Pri...  
139 2중 for문을 돌릴 때 [3] 똥똥배 2539   2011-04-06 2011-04-07 17:08
제 경우, 원래는 이렇게 해야 정석인 코드를 for(int j = 0; j < y_size; ++j) { for(int i = 0; i < x_size; ++i) { //내용 } } 보기가 싫다는 이유로 for(int j = 0; j < y_size; ++j) for(int i = 0; i < x_size; ++i) { //내용 } 이런 식으로 적곤 ...  
138 이상하군요. [2] 대슬 2490   2008-05-16 2009-01-07 22:05
MIDI 음악을 메인 루프 앞에서 재생시킨 후 다른 음악을 재생시키려고 했더니 그 다음부턴 음악이 정지만 하고 재생이 되지를 않네요. 예전에 배고파요 만들었을 때는 비슷하게 해도 별 문제가 없었던 것 같은데, 왜 이러는지 잘 모르겠습니다. void bgm(int ...  
137 그림 출력의 순서를 알고 싶습니다. [3] X-tra 2466   2008-03-12 2008-03-17 04:37
제 글이 연구소로 가서 이번에는 신경써서 제목을 적었습니다 ㅡ.ㅡb 채색을 제외하면 전투도 70%정도 완성되었는데 자잘한 버그가 발생해서요. 제 스스로 알아 내려 했지만 확실하게 하기 위해서 물어 봅니다. 정확히 어떤 그림이 앞에 출력이 되고 어떤 그...  
136 데이터 축소에 대하여 [2] 짜스터 2430   2010-10-13 2013-11-23 04:38
환상수호전 : 티어크라이스 라는 닌텐도 게임을 알게 됬는데 컴퓨터 확장자 nds로 용량이 240메가 정도 밖에 안되는데 영상이나 성우 음성이 거의 풀로 유지되더군요. 데이터 품질을 최하로 해서 어느정도 볼만한 그래픽만 유지해서 용량을 최대한 축소시킨것 ...  
135 흥크립트 기초 질문. [2] 장펭돌 2430   2007-12-03 2008-03-17 04:37
지금 슬슬 설명서를 읽어나가는중... 기본 원리에서 다른건 대충 전부다 이해가 가지만, 몇가지 이해가 안가는 것이 있어서 질문 합니다. 우선 그림파일은 mlc로, 텍스트 파일은 dlg로 바꾸는것이 맞지요? 그렇다면, '게임 전체적으로 쓸 그림이라면 DATA폴더...  
134 흥크립트 키입력 질문 [1] A.미스릴 2363   2008-03-15 2008-03-17 04:37
키 클릭을 누르고 누른상태로 있는것도 인식할 수 있나영? 어떻게 하나요 ㅡ,.ㅡ  
133 흥크립트 0.9 새 기능 소개 [3] file 혼돈 2289   2007-10-15 2008-03-17 04:37
 
132 저는 사실 이걸 잘 못해요. [3] 앟랄 2282   2008-03-26 2008-04-18 07:45
알만툴 액알. 원리가 도저히 이해가 안 갑니다. 그림넣어서 설명해주세요. 그 뭐시기 그냥 근접공격만 일단. 나중가서 원거리를 합시다.  
131 명령문 질문드립니다. [1] X-tra 2244   2008-03-26 2008-03-27 00:40
변해서 게시판 찾기 어려울것 같았는데 이상하게 한번에 찾아 버렸네요. 연구소라고 적혀 있어서요... 이번건 질문이라고 하기에는 좀 애매합니다. 예전에 흥크립트의 모든 명령어가 적혀 있던 파일을 본 기억이 납니다. 하지만 아무리 찾아도 없더군요. 블로...  
130 '@클릭'이거 어떻게 사용하는거죠? [4] 네모상자 2244   2008-01-26 2008-03-17 04:37
'@영역선택'사용법은 역전심판 뜯어봐서 알 수 있겠는데, 이건 던전 앤 러버를 뜯을 수도 없고 해서 잘 모르겠네요. * 똥똥배님에 의해서 게시물 이동되었습니다 (2008-03-11 17:11)  
129 흥크립트 Ver0.9 변수 안의 변수 기능 [2] 혼돈 2208   2007-10-16 2008-03-17 04:37
상당히 고급기능이라 꼭 알 필요는 없지만, 잘 활용하면 배열이나 구조체 비슷하게 활용 가능합니다. 참고로 []를 쓰는 숫자변수와 {}를 쓰는 문자변수는 서로 다른 테이블을 쓰므로 이름이 겹쳐도 상관없습니다. [변수X] 1 [변수[변수X]] 10 {변수} "변수" {...  
128 조금씩 게임 소스가 완성 되어 가는데요. [2] 짜스터 2188   2010-11-16 2010-11-16 09:10
기획하고 연출 에서 직접 표현할려고 하는데 전투 시스템을 혹시 알만툴 XP 스크립트를 제작해주시는거는 안되시나요? 연출쪽까지 맡으셔서 하시면 무척 힘들어질듯 하는데, 구디스 씨라고 외국에서 만든 SRPG 스크립을 구하기는 해봤지만 창세기전 처럼 케릭...  
127 웹 프로그래밍을 배우려고 합니다. [2] Kadalin 2171   2008-03-22 2008-03-22 23:37
사용하는 형식에 따라 꽤 분야가 많은 것으로 알고 있습니다. 각각의 특징을 설명해 주세요.  
126 Divx6를 받아서 인코딩을 하려는데... 에러뜸... [3] 장펭돌 2154   2008-02-09 2008-03-17 04:37
Divx 공식 홈페이지를 가보니, 6가 있길래 받아서 동영상파일 (AVI)를 열면 이렇게 에러가 뜨는군여... ----------------------------------------------------------------- Invalid VIdeo Stream DivX Converter cannot encode the in put file: C:\Document...