본문 바로가기

루아(LUA)68

마이크로 스튜디오에서 프로젝트를 생성해 보자 [루아강좌#5] 이전글: https://roblox-jk77.tistory.com/71 마이크로 스튜디오 튜토리얼을 살펴보자 [루아강좌#4] 이전글: https://roblox-jk77.tistory.com/69 루아 게임 개발 왕초보 강좌_변수와 print() 함수[강좌#3] 이전글: https://roblox-jk77.tistory.com/68?category=944500 루아 게임 개발 왕초보 강좌 feat 마이크로.. roblox-jk77.tistory.com 로블록스를 배우기 위한 루아어 기초 강좌를 진행하고 있습니다. 이제 마이크로 스튜디오에 프로젝트를 생성해 봅시다. 상단의 Create를 선택하고 Create New Project를 클릭합니다. 타이틀(drawRect)을 입력하고 Advanced option.. 2022. 1. 15.
마이크로 스튜디오 튜토리얼을 살펴보자 [루아강좌#4] 이전글: https://roblox-jk77.tistory.com/69 루아 게임 개발 왕초보 강좌_변수와 print() 함수[강좌#3] 이전글: https://roblox-jk77.tistory.com/68?category=944500 루아 게임 개발 왕초보 강좌 feat 마이크로스튜디오[강좌#2] 이전글: https://roblox-jk77.tistory.com/59?category=944500 루아 게임 개발 왕초보.. roblox-jk77.tistory.com 루아로 게임 개발 왕초보 강좌 네번째입니다. 이제 마이크로 스튜디오로 가봅시다. 우선 마이크로 스튜디오에서 튜토리얼을 모두 진행해 보면 좋습니다. 루아어가 아닌 마이크로스크립트어로 튜토리얼을 진행하고 또 영어로 되어 있지만 그리 어렵지 않은.. 2022. 1. 15.
루아 게임 개발 왕초보 강좌_변수와 print() 함수[강좌#3] 이전글: https://roblox-jk77.tistory.com/68?category=944500 루아 게임 개발 왕초보 강좌 feat 마이크로스튜디오[강좌#2] 이전글: https://roblox-jk77.tistory.com/59?category=944500 루아 게임 개발 왕초보 강좌 feat 마이크로스튜디오[강좌#1] 로블록스 우리 아들도 참 좋아합니다. 로블록스를 즐기다 보면 나도 게임 하나 만들어.. roblox-jk77.tistory.com 루아 게임 개발 왕초보 강좌를 이어갑니다. 오늘은 리플릿에서 변수와 print()함수에 대해 알아보겠습니다. 우선 리플릿에서 왼쪽 상단에 크리에이트를 클릭합니다. 크롬에서 사용한다면 한글 번역을 해서 사용해도 좋지만 영어에 조금이라도 익숙해지기 위해서 .. 2022. 1. 14.
루아 게임 개발 왕초보 강좌 feat 마이크로스튜디오[강좌#2] 이전글: https://roblox-jk77.tistory.com/59?category=944500 루아 게임 개발 왕초보 강좌 feat 마이크로스튜디오[강좌#1] 로블록스 우리 아들도 참 좋아합니다. 로블록스를 즐기다 보면 나도 게임 하나 만들어 보고 싶다라는 생각이 절로 듭니다. 미국의 초등학생들도 로블록스로 게임 개발도 많이 하고 돈도 번다는 roblox-jk77.tistory.com 이번 포스팅에서는 루아를 실행하고 실습해 볼 온라인 사이트를 소개해 드리겠습니다. 루아를 컴퓨터에 설치해서 사용해도 되지만 제 강좌는 결국은 로블록스에서 간단한 게임을 만드는 것까지가 목표이기 때문에 온라인에서 루아를 실행하고 실습해 보는 것만으로도 충분합니다. 우선 아래 소개해 드릴 두 사이트는 구글 계정으로 가입이.. 2022. 1. 14.
한자 퀴즈 게임 [개발일지#4] - 한국어문회 8급 한자 랜덤보기 사용자가 각 한자능력시험 기관을 선택하고 급수를 지정하면, 해당 급수의 한자 문제를 출제하고 정답을 맞추는 형태의 프로그램을 만들어 보려고 합니다. 개발 초보라서 원하는 형태의 프로그램을 당장 만들 수는 없지만 차근차근 진행해 보고 있습니다. 일단 화면을 클릭하면 한국 어문회 8급 한자 50자가 랜덤으로 보여지는 것까지 만들었습니다. 다음 순서는 다른 한자능력시험 기관의 한자를 추가하고 만들어 보는 것이 될 듯 합니다. 링크: http://lotusjk77.com/wp-content/game/test/index.html 한국어문회 8급 한자능력검정시험 pdf 학습지가 필요하다면 해남매스토어 (500원) https://smartstore.naver.com/haenammae/products/536025047.. 2022. 1. 14.
클릭할 때마다 배경색 바뀌는 예제 아래 예제를 실행하면 검은 화면에서 마우스로 클릭할 때 마다 배경색이 바뀌게 됩니다. http://lotusjk77.com/wp-content/game/mousepress/index.html 코드는 아래와 같습니다. init = function() end update = function() function random_color() if mouse.press == 1 then r_color = math.random(255) g_color = math.random(255) b_color = math.random(255) delayTime = 60 return "rgb("..r_color..","..g_color..","..b_color..")" end end color = random_color() end.. 2022. 1. 13.
마이크로 스튜디오 게임을 웹상에 개시할 때 마이크로 스튜디오에서 스프라이트를 쓰지 않고, 아주 간단한 게임을 html 파일로 내보내기를 했을 때 대략 500Kb의 용량이 된다. 그 중 runner.js, microengine.js, fengari-web.js 파일이 450Kb의 용량을 차지한다. html파일로 내보내기 한 후 runner.js, microengine.js, fengari-web.js 3개의 파일을 삭제하고 공동으로 사용하기 위해 상위 폴더에 복사해 넣는다. 그리고 인덱스파일에서 다음 부분을 찾아 아래와 같이 변경하면 용량을 크게 아낄 수 있게 된다. script src="../runner.js"> 2022. 1. 13.
마이크로 스튜디오 스프라이트 최대 크기 마이크로 스튜디오에서 스프라이트 만들 때 최대 크기 알고 계시나요~? 256*256이 최대 해상도입니다. 256이상 숫자를 입력하면 256으로 돌아옵니다. 참고로 마이크로 스튜디오에서 스프라이트를 만들때는 아이패드로 만들면 편하게 만들 수 있어요~ 2022. 1. 13.
1초마다 랜덤으로 색이 바뀌는 배경 1초마다 배경색이 바뀌는 예제입니다. 이 예제를 통해 랜덤 함수와 delay에 대해 공부할 수 있습니다. init = function() delayTime = 0 color = "rgb(255,255,255)" end update = function() function random_color() if delayTime 2022. 1. 13.
루아 게임 개발 왕초보 강좌 feat 마이크로스튜디오[강좌#1] 로블록스 우리 아들도 참 좋아합니다. 로블록스를 즐기다 보면 나도 게임 하나 만들어 보고 싶다라는 생각이 절로 듭니다. 미국의 초등학생들도 로블록스로 게임 개발도 많이 하고 돈도 번다는 얘기를 들으면 더욱 관심이 가게되죠~ 저는 메타버스를 활용한 교육에 관심을 갖고 있던 중 로블록스를 알게 되었고, 학습용 게임을 하나 만들어 봤으면 좋겠다는 마음으로 도전을 하고 있습니다. 처음에는 만만하게 보고 시작했는데.. 게임을 하나 만든다는 것은 그리 쉬운일이 아니더군요. '로블록스 게임제작 무작정 따라하기 책'으로 시작을 했는데, 루아라는 언어를 제대로 모르니 기껏해야 점프게임 정도가 고작이어서, 루아를 제대로 배워봐야겠다는 생각으로 루아책과 씨름을 하고 있습니다. 루아는 간단하고 배우기 쉬운 언어로 알려져 있습.. 2022. 1. 13.
프로그램 용어 타이핑 연습 게임 [개발일지#3] --[[ 저는 문과이며 코딩입문자로 제 모든 글과 코딩에 오류가 있을 수 있음을 알려드립니다. 로블록스와 마이크로스튜디오로 학습 또는 교육용 게임을 만들어 보는 것이 2022년 목표입니다. 2022.1.1. 방문: 독학_YouTube, 독학_Cafe -- ]] -- 주석 끝. 이전글: https://roblox-jk77.tistory.com/55 프로그램 용어 타이핑 연습 게임 [개발일지#2] 이전글 https://roblox-jk77.tistory.com/51?category=947415 프로그램 용어 타이핑 연습 게임 [개발일지#1] 루아 독학 12일차. 프로그래밍 인 루아 책을 1/5정도 이해한 것 같다. 루아를 익히고자 하는 사람들에.. roblox-jk77.tistory.com 지난 글에서는 루.. 2022. 1. 12.
시간 지연 함수 [루아] 루아에서는 시스템OS 시간 관련 정보를 취득할수있는 함수가 크게 3가지가 있습니다. 1. 시스템의 날짜와 시간을 알 수 있는 함수 os.date() 2. 1970년 1월 1일 기준으로 경과한 시간을 알 수 있는 os.time() 3. 프로그램이 첫 실행후 경과한 시간을 알 수 있는 os.clock() 이중에서 os.time()을 이용해서 시간 지연 함수를 만들어 보자. 아래 코드와 같이 작성하면 "call"은 3초 뒤에 나타난다. 이는 로블록스에서 사용하는 wait함수와 동일하다. function wait(seconds) local start = os.time() repeat until os.time() > start + seconds print("call") end wait(3) 2022. 1. 12.
마이크로 스튜디오 루아로 키보드 ID 찾아내기 코드 아래 코드는 누른 각 키보드 키의 ID를 나타냅니다. 프로젝트에 필요한 식별자 목록을 설정하는 것이 유용할 수 있습니다. 중요한 점은 keyboard[key]는 0과 1을 반환합니다. 그런데 0은 루아에서 true라는 점입니다. 보통 다른 프로그래밍 언어에서 0은 false입니다. 1 2 3 4 5 6 7 8 9 10 11 draw = function() screen:clear(-100) local y = 80 for key in pairs(keyboard) do if keyboard[key] == 1 then print(keyboard[key]) screen:drawText(key,0,y,15, "#FFF") y = y - 20 end end end Colored by Color Scripter cs 2022. 1. 11.
랜덤으로 숫자 생성하기 --[[ 저는 문과이며 코딩입문자로 제 모든 글과 코딩에 오류가 있을 수 있음을 알려드립니다. 로블록스와 마이크로스튜디오로 학습 또는 교육용 게임을 만들어 보는 것이 2022년 목표입니다. 2022.1.1. 방문: 독학_YouTube, 독학_Cafe -- ]] -- 주석 끝. 루아에서 1~50까지 2초마다 랜덤으로 숫자를 생성하고 화면에 표시합니다. 간단한 코드이고, 마이크로스튜디오에 복사하면 바로 실행해서 볼 수 있습니다. 까페에도 가보고 검색도 해 보았으나 마이크로스튜디오로 게임개발 하시는 분들은 거의 없군요.. 제 생각에는 학생들이 스크래치나 엔트리 등을 배우고 그 다음 과정으로 꽤 괜찮을 것 같은데 말이죠. 사실 마이크로스튜디오는 학습용으로 아주 좋은 툴입니다. 아래를 보시면 오픈소스 프로젝트로 .. 2022. 1. 10.
루아로 만드는 초시계 --[[ 저는 문과이며 코딩입문자로 제 모든 글과 코딩에 오류가 있을 수 있음을 알려드립니다. 로블록스와 마이크로스튜디오로 학습 또는 교육용 게임을 만들어 보는 것이 2022년 목표입니다. 2022.1.1. 방문: 독학_YouTube, 독학_Cafe -- ]] -- 주석 끝. 루아로 초시계를 만들어 보았습니다. 예제실행: http://lotusjk77.com/wp-content/game/clock/index.html 초시계만들기 lotusjk77.com https://youtu.be/tfcokHsXtgI 코드: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 init = function() seconds = 0 minute = 0 ho.. 2022. 1. 10.
마우스를 따라다니는 원의 충돌 현상 구현 --[[ 저는 문과이며 코딩입문자로 제 모든 글과 코딩에 오류가 있을 수 있음을 알려드립니다. 로블록스와 마이크로스튜디오로 학습 또는 교육용 게임을 만들어 보는 것이 2022년 목표입니다. 2022.1.1. 방문: 독학_YouTube, 독학_Cafe -- ]] -- 주석 끝. 하나의 프로젝트를 끝냈습니다. 마이크로 스튜디오에서 마이크로스크립트로 작성된 Circle Hitbox의 코드를 루아코드로 변경해 보았습니다. 이번 과정을 끝내면서 루아의 클래스에 대한 개념을 조금이나마 이해할 수 있었습니다. 아래링크를 클릭하시면 마우스를 따라오는 원이 중앙에 있는 하얀색 원과 만나면 색이 빨간색에서 녹색으로 바뀌는 것을 볼 수 있습니다. http://lotusjk77.com/wp-content/game/circle.. 2022. 1. 10.
마우스를 따라다니는 원 2022.1.9. A circle following a mouse --[[ 저는 문과이며 코딩입문자로 제 모든 글 또는 코딩에 오류가 있을 수 있음을 알려드립니다. 로블록스와 마이크로스튜디오로 학습 또는 교육용 게임을 만들어 보는 것이 2022년 목표입니다. 2022.1.1. 방문: 독학_YouTube, 독학_Cafe -- ]] -- 주석 끝. 마우스 포인터를 따라다니는 원입니다. 아래링크를 실행 해 보면 테스트 해 볼 수 있습니다. 실행: http://lotusjk77.com/wp-content/game/lua_exbook/index.html 루아로 스크립트를 작성하였습니다. 객체(테이블)에 함수를 저장하고 self 매개변수를 활용해 보기 위해 작성해 보았습니다. 루아에서 클래스라는 개념은 없지만 클래스를 만들고 함수를 상속받는 것을 이해하기 위한 필요단계인것 같아 .. 2022. 1. 9.
점프게임 2022.1.4. 게임링크: http://lotusjk77.com/wp-content/game/tutorialcreateagame/index.html 프로그래밍언어: 마이크로스크립트 init = function() blades = [400,500,600] passed = [0,0,0] gameover = 0 running = 0 score = 0 position = 0 speed = 2 end update = function() if gameover>0 then gameover = gameover+1 if gameover>120 then init() end elsif running then position = position+speed speed = speed + 0.001 if touch.touching and hero.. 2022. 1. 9.
객체(테이블)에 함수를 저장하는 3가지 방법 --[[ 저는 문과이며 코딩입문자로 제 모든 글에는 오류가 있을 수 있음을 알려드립니다. 로블록스와 마이크로스튜디오로 학습 또는 교육용 게임을 만들어 보는 것이 2022년 목표입니다. 방문: 독학_YouTube, 독학_Cafe -- ]] -- 주석 끝. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Account = {balance = 0, A1 = function (self, v) --self.balance = self.balance - v print("call A1") end } function Account.A2(self, v) --self.balance = self.balance + v print("call A2") end function Account:A3.. 2022. 1. 8.
메타테이블과 __index 메타메서드 --[[ 저는 문과이며 코딩입문자로 제 모든 글에는 오류가 있을 수 있음을 알려드립니다. 로블록스와 마이크로스튜디오로 학습 또는 교육용 게임을 만들어 보는 것이 2022년 목표입니다. 방문: 독학_YouTube, 독학_Cafe -- ]] -- 주석 끝. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 --[[ -- 메타테이블 만들기 첫번째 방법 prototype = {x=0, y=0, width = 100, height = 100} mt ={} function new(o) setmetatable(o, m.. 2022. 1. 8.
이름 붙인 인자 넘기기 --[[ 저는 문과이며 코딩입문자로 제 모든 글에는 오류가 있을 수 있음을 알려드립니다. 로블록스와 마이크로스튜디오로 학습 또는 교육용 게임을 만들어 보는 것이 2022년 목표입니다. 방문: 독학_YouTube, 독학_Cafe -- ]] -- 주석 끝. 함수에 인자로 테이블의 키와 값을 넘기는 방법. 클래스를 사용하지 않고 비슷한 개체를 쉽게 만들기. 1 2 3 4 5 6 7 function ex_prt(arg) arg = {old = arg.old or "old", new = arg.new or "new"} print(arg.old) print(arg.new) end ex_prt({old="옛날"}) Colored by Color Scripter cs https://youtu.be/Qsrug4noFXc 2022. 1. 7.
문자열 바꾸기 새 문자열 만들기 루아의 문자열은 수정할 수 없는(immutable)값이다. 루아에서는 문자열을 바꿀 수 없다. 그 대신 수정하길 원하는 내용으로 새 문자열을 만들어 쓸 수 있다. 1 2 3 4 5 a = "hello world" b = string.gsub(a, "hello", "hi") print(a) print(b) Colored by Color Scripter cs 2022. 1. 6.
마이크로 스튜디오 여러줄 주석(comments) 나처럼 누군가는 이것을 찾아 헤메겠지. 검색해도 잘 안나와서 나처럼 이것을 찾아 헤메는 분들을 위해 포스팅 함. 2021.1.6.일 현재 공식적으로 여러줄 코멘트는 없는 듯 함. 그러나 파이썬 여러줄 주석처리가 먹히는 것 같기도 하고 그렇다. 주석처리 된 부분이 색깔이 바뀌지는 않지만.. 마이크로 스튜디오 역사가 별로 안됐나? changelog가 2019년 6월 부터 시작되는 걸 보니 오래되지는 않은 듯 하다. 2022. 1. 6.
마이크로 스튜디오 점프 게임코드 최종 게임 링크: http://lotusjk77.com/wp-content/game/tutorialcreateagame/index.html jump_game lotusjk77.com 개발 튜토리얼: https://youtu.be/dmzb3OYbA8o 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 init = function() position = 0 hero_y = 0 hero_vy = 0 blades={2.. 2022. 1. 6.
마이크로 스튜디오에서 루아 사용해 보기 설정: 프로젝트를 만들 때 설정 탭을 열고 "고급 옵션 표시"를 클릭한 다음 Lua를 프로그래밍 언어로 선택. Tip: Lua에서 객체 함수(메소드)를 호출할 때 . 대신 :를 사용. 사용자 입력 확인: 사용자 입력은 microStudio에서 키보드, 터치, 마우스 또는 게임패드 인터페이스의 필드를 확인하여 스캔할 수 있다. 예를 들어, A 키를 눌렀는지 확인하기 위해 키보드를 확인할 수 있습니다.A. 이 필드는 실제로 세 가지 상태를 가질 수 있습니다. if you haven't pressed A yet in the current session, keyboard.A is undefined keyboard.A is equal to 1 (true in microScript) if you are curren.. 2022. 1. 4.
마이크로 스튜디오 튜토리얼로 개발한 첫 게임 인터넷 연결이 끊겼을 때 크롬에서 할 수 있는 점프게임과 비슷하다. 튜토리얼을 따라하면 개발 할 수 있다. http://lotusjk77.com/wp-content/game/tutorialcreateagame/index.html jump_game lotusjk77.com 2022. 1. 4.
screen.fillRect() screen.fillRect 사각형을 그린다. screen.fillRect(0,0,screen.width,100,"rgb(255,0,0)") 앞의 두 매개변수 0,0은 차례로 중심 x,y좌표 값이다. x의 좌표값은 화면의 크기에 따라 유동적이나 y값은 -100~+100까지로 절대 값이다. 세변째, 네번째 매개변수는 크기를 나타낸다. 마찬가지로 x값은 유동적이며 y값은 200을 넘는 값은 의미가 없다. 200이 최대 값. 마지막 매개변수를 생략할 수 있으며, 생략할 경우 마지막 사용됐던 컬러값이 사용된다. 2022. 1. 2.
세 가지 핵심기능 init, update 및 draw는 microStudio에서 알아야 할 세 가지 핵심 기능이다. init는 게임이 시작될 때 한 번만 호출되며, 나중에 몇 가지 전역 변수를 초기화하는 데 사용하게 된다. update는 게임이 실행되는 동안 정확히 초당 60회 호출되며, 게임 애니메이션, 물리학 및 로직 업데이트에도 사용된다. draw는 화면을 다시 그릴 수 있을 때마다 호출된다. 대부분의 경우 초당 60회 호출되지만 일부 컴퓨터나 태블릿은 초당 120회 이상 호출될 수 있다. 물론 과부하가 걸려 초당 60회 미만으로 호출되는 경우도 있다. 그래서 update와 draw 두개의 기능이 분리되어 있다. 무슨 일이 일어나더라도 업데이트는 정확히 초당 60번 호출된다. 그래서인지는 모르겠으나 update와 d.. 2022. 1. 2.
screen.drawSprite() screen.drawSprite(sprite, x, y, width, height) 스프라이트 섹션에서 만든 스프라이트 중 하나를 그린다. 첫 번째 매개변수는 표시할 스프라이트의 이름에 해당하는 문자열이다.(예: "icon"). 그런 다음 스프라이트를 표시할 x,y 좌표를 표시한다.마지막 매개변수 높이를 생략할 수 있는데, 이 경우 높이는 스프라이트의 폭과 비율에 따라 계산된다. 2022. 1. 1.
매개변수와 전달인자 매개변수(parameter)는 함수의 정의부분에 나열되어 있는 변수들을 의미하며, 전달인자(argument)는 함수를 호출할때 전달되는 실제 값을 의미한다. 이같은 의미를 명확히 하기 위해 매개변수는 변수(variable)로, 전달인자는 값(value)으로 보는 것이 일반적이다. 매개변수는 함수의 정의 부분에서 볼 수 있으며, 전달인자는 함수를 호출하는 부분에서 볼 수 있다. f(x) = x*x와 같은 함수 정의 부분에서 변수 ‘x’가 매개변수가 되며, f(2)와 같은 함수 호출 부분에서 값 ‘2’ 가 함수의 전달인자가 된다. - 출처: 위키백과, 우리 모두의 백과사전 2021. 12. 31.