본문 바로가기

루아(LUA)/로블록스30

change WASD keys Roblox local contextActionService = game:GetService("ContextActionService") local TapTime = .2 local Tapped = false local enabled = false local function changeWasdKey(enabled) if enabled then contextActionService:BindActionAtPriority("changeWasdKey", function(actionName, inputstate, inputObj) if inputstate == Enum.UserInputState.Begin then if inputObj.KeyCode == Enum.KeyCode.W then print("w") elseif in.. 2022. 3. 20.
AlignPosition Roblox local object = Instance.new("Part", workspace) local target = Instance.new("Part", workspace) local alignPosition = Instance.new("AlignPosition", object) local attach0 = Instance.new("Attachment", object) local attach1 = Instance.new("Attachment", target) alignPosition.Attachment0 = attach0 alignPosition.Attachment1 = attach1 target.Position = Vector3.new(0,20,0) target.Anchored = true https://y.. 2022. 3. 20.
로블록스에서 wait()의 시간 아래 코드로 확인해보니 약 0.03초이다. while true do local clock = os.clock() wait() local time = os.clock() - clock print(string.format("시간: %1.2f", time)) end 2022. 3. 19.
밟으면 색이 바뀌는 파트와 삼항연산_로블록스 https://youtu.be/p_bZtRBoFqM local part = Instance.new("Part") part.BrickColor = BrickColor.Red() part.Position = Vector3.new(0, 0.5, -20) part.Anchored = true part.Parent = workspace local debounce = false local enabled = false part.Touched:Connect(function(hit) if not debounce then debounce = true enabled = not enabled part.BrickColor = enabled and BrickColor.Green() or BrickColor.Red() wait(... 2022. 3. 12.
로블록스 캐릭터 블렌더로 가져오기 캐릭터를 블렌더로 가져오는 동영상입니다. https://youtu.be/jdzTGSJG_XE 2022. 2. 25.
공 생성기 [로블록스 1일 1코딩 #13] https://youtu.be/Dp8QqVcYORs ---[[ local gunsound = Instance.new("Sound", game.Workspace) gunsound.SoundId = "rbxassetid://6295454226" --if not gunsound.IsLoaded then --gunsound.Loaded:wait() --end gunsound.TimePosition = 0.2 --]] wait(2) for i=1, 50 do gunsound:Play() local part = Instance.new("Part") part.Parent = workspace local Pos = workspace.genBall.Position local PosX = Pos.X+math.random(.. 2022. 2. 18.
로블록스의 서비스 로블록스에서 좀 더 복잡한 기능이나 추가적인 이벤트, 메서드를 활용하려면 서비스의 도움을 받을 수 있다. 이런 서비스는 일종의 라이브러리라고 생각하면 된다. If you want to utilize more complex functions, additional events, or methods in Roblox, you can get help from Roblox. You can think of these services as a kind of library. utilize미국∙영국[ˈjuːtəlaɪz] 1.활용[이용]하다 (=make use of) 2022. 2. 14.
순간이동하기 [로블록스 1일 1코딩 #10] local teleportPart = script.Parent local destination = game.Workspace.Destination local function teleport(otherPart) local character = otherPart.Parent local humanoid = character:FindFirstChildOfClass("Humanoid") destination.Anchored = true if humanoid then humanoid.RootPart.Position = Vector3.new(destination.Position.X, destination.Position.Y*2, destination.Position.Z) end end teleportPart.Touc.. 2022. 2. 12.
로블록스 티셔츠 판매 로벅스 벌기 로블록스에 티셔츠를 하나 만들어 올려 보았다. 까페 회원분이 하나 구입해 주셨다. 의류판매를 하려면 10로벅스를 내야 한다. 1로벅스 벌자고 10로벅스 투입한 나 ㅋㅋ 한자 용 용'龍'자 티셔츠. 은근 괜찮은 듯~ 내친김에 하나 더 만들어 본 '호랑이 호虎' 전서체이다. 아직 1로벅스는 지급도 안됐다 ㅋ 혹시 내 블로그에 오시는 님들이 구매하실지 모르니 링크~ 2로벅스. https://www.roblox.com/catalog/8789162302/dragon dragon - Roblox Please enable Javascript to use all the features on this site. www.roblox.com 호랑이 호는 공짜이다. 1로벅스 벌자고 10로벅스 낼 수는 없어서 공짜 https:.. 2022. 2. 11.
테이블의 요소를 찾거나 요소의 갯수 구하기[로블록스 1일 1코딩 #10] 로블록스에서 테이블의 요소를 찾고자 한다면 table.find()를 사용하면 된다. testTable = {"orange","apple","pear"} local searchFruit = table.find(testTable, "apple") print(searchFruit) -- 2 원하는 요소가 몇개 있는지 구하기 local function getN(someTable, N) local i = 0 for _, v in ipairs(someTable) do if v == N then i = i+1 end end return i end 2022. 2. 9.
블렌더와 로블록스의 스터드 블렌더에서 단위와 로블록스의 스터드 단위 일치시키기. unitscal: 0.01 Length: Centimeters 아래 큐브를 로블록스에서 불러오면 정확히 2스터드의 큐브가 된다. 2022. 1. 29.
모듈스크립트2 [로블록스 1일 1코딩 #9] 1일 1코딩을 천개정도 작성하면 로블록스를 조금 다루게 될까.. Script local dspTxt = require(game.ServerScriptService.mdl_dspTxt) local part1 = dspTxt:new({Model=workspace.Part1, writeTxt = workspace.Part1.SurfaceGui.TextLabel, }) local part2 = workspace.Part2 part1.writeTxt.Text = "HIjk" --part1.Model.SurfaceGui.TextLabel.Text = "welcome" part2.SurfaceGui.TextLabel.Text = "hello" mdl_dspTxt local displayText = { Model = .. 2022. 1. 27.
파트의 면을 쉽게 확인하는 플러그인 [로블록스] 파트의 면을 확인하려면 데칼을 붙여서 확인하는 방법이 유일한 것 같은데 꽤나 귀찮은 작업이다. 면을 쉽게 확인할 때 사용할 수 있는 플러그인이다. 아래 이미지처럼 설정하고 사용하면 된다. 2022. 1. 26.
텍스트 라벨에 여러줄 입력하는 3가지 방법 [로블록스 1일 1코딩 #7] local board = script.Parent board.Text = "환영합니다\n여기는 놀이터입니다." local A = "환영합니다" local B = "여기는 놀이터입니다." board.Text = A.."\n"..B local A = [[환영합니다. 여기는 놀이터입니다. 어서오세요~]] board.Text = A 텍스트 레이블 폰트 크기를 100이상으로 하고 싶다면 https://roblox-jk77.tistory.com/11?category=942425 텍스트 레이블 크기 100이상 텍스트 레이블의 폰트 사이즈가 100이상 되지 않는다. 가끔 글자크기를 100이상 할 필요가 있을 것 같은데.. 이것이 정확한 방법은 아니겠지만 간단히 해결 할 수 있는 방법이라 기록해 둔다. 텍스 roblox.. 2022. 1. 23.
스타터 플레이어 스타터 플레이어는 게임이 시작될 때 플레이어의 기본 설정값을 정할 수 있게 하는 폴더이다. 스타터 플레이어 하위 항목은 스타터 플레이어 스크립트와 스터터 개릭터 스크립트로 나뉜다. 1. 스타터 플레이어 스크립트: 각 플레이어가 게임에 처음 들어왔을 때 딱 한 번만 실행된다. 2. 스타터 캐릭터 스크립트: 플레이어가 생성(spawn)될 때 마다 실행된다. 스타터플레이어의 데이터들은 전부 클라이언트에서 실행된다. 2022. 1. 23.
시간의 흐름에 따라 파트의 메테리얼 속성 바꾸기 [로블록스 1일 1코딩 #6] local timeControl = game.Lighting local timeVal = 12 local brick = script.Parent while true do timeControl.ClockTime = timeVal Wait(2) if timeVal == 25 then timeVal = 0 end if timeVal > 18 then brick.Material = Enum.Material.Neon elseif timeVal < 7 then brick.Material = Enum.Material.Neon else brick.Material = "Plastic" end timeVal += 1 end 2022. 1. 23.
Instance.new, AncestryChanged [1일 1코딩 #3] 다음 스크립트는 서버스크립트서비스에서 작성한다. 새로운 파트를 만들고 p.Parent = game.Workspace로 workspace에 파트를 배치한다. local p = Instance.new("Part", game.Workspace)로도 배치할 수 있으나 그렇게 하는 것보다, 파트의 속성을 변경 후 p.Parent = game.Workspace로 배치하는 것이 더 효율적이다. 아래 코드를 실행하기 위해서는 workspace에 lego라는 개체가 있어야 한다. local p = Instance.new("Part") p.Parent = game.Workspace p.AncestryChanged:Connect(function(child, parent) print(child.Name.." is now a .. 2022. 1. 20.
텍스트 레이블 카운트 다운[1일 1코딩 #1] -- Place this code in a LocalScript within a TextLabel/TextButton local textLabel = script.Parent -- Some colors we'll use with TextColor3 local colorNormal = Color3.new(0, 0, 0) -- black local colorSoon = Color3.new(1, .5, .5) -- red local colorDone = Color3.new(.5, 1, .5) -- green -- Loop infinitely while true do -- Count backwards from 10 to 1 for i = 10, 1, -1 do -- Set the text textLabel.Te.. 2022. 1. 19.
블렌더에서 만든 캐릭터 로블록스로 옮기기 [로블록스 개발일지#3] 블렌더에서 만든 캐릭터를 로블록스에 옮겨 보았다. 글과 사진으로 남기려 했으나 너무 귀찮아서 영상 녹화하여 유튜브에 올렸다. 아래는 블렌더에서 모델링 한 레고모형 병정이다. 로블록스에 삽입 성공. 블렌더에서 만든 캐릭터 로블록스에 임포트하기 https://www.youtube.com/watch?v=mVYht0DihqQ&list=PLJ7nI_PASaVCvIEtaM_LXZ-1rtMMQ0PZO 영상에서 사용한 파일: 2022. 1. 18.
로블록스 캐릭터 만들기 [개발일지#2] 로블록스에서 무엇부터 해볼까 고민하다가 캐릭터를 먼저 만들어 보기로 했다. 전에 블렌더에서 모델링 해두었던 오브젝트들이 조금 있으니 그것먼저 찾아 보는 중. 블렌더 파일을 첨부한다. 적당한 모델을 찾았다. 2022. 1. 18.
로블록스 게임 복사하기 [개발일지#1] 2022년 로블록스에서 간단한 학습용 게임을 만들어 보는 것이 목표입니다. 드디어 로블록스 개발을 시작해 보려고 한다. 1월 1일부터 루아 공부를 시작해 17일 동안 이것저것 예제를 통해 루아를 익혔고, 조금이나마 루아에 대해 이해할 수 있었다. 17일간의 공부 끝에 루아로 한자암기카드를 만들어 보았다. 단순해 보이지만 이번 결과물을 통해 루아의 프로토타입, 다른 프로그래밍 언어에서 클래스라고 부르는 것을 조금이나마 이해했다. 루아로 만든 한자암기카드: http://andameero.com/archives/1438 어문회 준7급 한자암기 | 한자와 손글씨 8 글 공유하기 다른한자카드 노란색 배경 아무곳이나 터치(클릭)하세요. 노란색 화면 안에서는 터치스크롤이 되질 않습니다. andameero.com 루아.. 2022. 1. 17.
매개변수와 전달인자 매개변수(parameter)는 함수의 정의부분에 나열되어 있는 변수들을 의미하며, 전달인자(argument)는 함수를 호출할때 전달되는 실제 값을 의미한다. 이같은 의미를 명확히 하기 위해 매개변수는 변수(variable)로, 전달인자는 값(value)으로 보는 것이 일반적이다. 매개변수는 함수의 정의 부분에서 볼 수 있으며, 전달인자는 함수를 호출하는 부분에서 볼 수 있다. f(x) = x*x와 같은 함수 정의 부분에서 변수 ‘x’가 매개변수가 되며, f(2)와 같은 함수 호출 부분에서 값 ‘2’ 가 함수의 전달인자가 된다. - 출처: 위키백과, 우리 모두의 백과사전 2021. 12. 31.
로블록스 함수 #1 Color3.fromRGB Color3는 R(Red), G(Green), B(Blue) 구성 요소를 사용하여 색상을 입히는데 사용하는 데이터 유형이다. Color3는 BasePart.Color및 와 같은 속성을 통해 화면의 개체를 정확하게 색칠하는 데 사용된다. 그 중 많이 사용하는 것이 Color3.fromRGB이다. 이 함수의 매개변수 값은 [0, 255] 범위에 있어야 한다. BasePart.Color = Color3.fromRGB(255,0,0) --> 빨간색 다른 생성자로 Color3.new가 있다. Color3.new ( 빨간색 숫자 = 0 , 초록색 숫자 = 0 , 파란색 숫자 = 0 ) 주어진 빨강, 초록, 파랑 ​​값을 가진 Color3을 반환한다. 매개변수는 [0, 1] 범위에 있어야 한다. 이 외에 Color3.. 2021. 12. 29.
루아(LUA) 클로저 내부함수는 외부함수의 지역변수에 접근 할 수 있는데 외부함수의 실행이 끝나서 외부함수가 소멸된 이후에도 내부함수가 외부함수의 변수에 접근 할 수 있다. 이러한 메커니즘을 클로저라고 한다. 다음 코드를 분석해 보자. function newCounter() local i = 0 return function() i = i + 1 return i end end c1 = newCounter() print(c1()) --> 1 print(c1()) --> 2 위 코드에서 변수 c1에는 익명함수가 담겨 있다. print 함수로 c1을 호출하면 외부함수의 지역변수 i를 참조하여 1를 출력한다. 그러나 이것은 조금 이상한데, 이미 외부함수를 호출했을 때 외부의 지역변수 i가 소멸되는 것이 자연스럽기 때문이다. 이처럼 클.. 2021. 12. 28.
미로 만들기 #3 일단 코딩도 없고 도전하기 쉬운 과제로 미로를 만들어 보았다. https://youtu.be/tHBGvXUarHs 2021. 12. 27.
텍스트 레이블 크기 100이상 텍스트 레이블의 폰트 사이즈가 100이상 되지 않는다. 가끔 글자크기를 100이상 할 필요가 있을 것 같은데.. 이것이 정확한 방법은 아니겠지만 간단히 해결 할 수 있는 방법이라 기록해 둔다. 텍스트레벨 아래 UIScale를 붙이고, 스케일을 크게 설정해 주면 된다. 유의사항은 텍스트레이블의 앵커포인트와 포지션의 scale을 0.5,0.5로 설정해야 된다는 것. 2021. 12. 26.
현실 건물을 로블록스에? 현실 건물과 지형을 로블록스에 옮긴다고..? 일단 플러그인을 다운 받아 보자. https://www.roblox.com/library/5459691708/City-Loader-Render-Real-Life-Roads-Buildings 오.. 설치만 누르면 간단하게 설치 끝. 플러그인에서 렌더 빌딩을 선택. 선택하면 창이 하나 생성되면서 c.paris.xyz로 시작하는 주소가 있다. 복사해서 검색창에 붙여 넣기 하면 구글 맵이 나온다. 에버랜드를 찾아서 생성해 보았다. 오.. 지형까지 잘 들어온다. 지형에 체크 표시를 지우면 건물만 들어오는 듯.. 잘 활용하면 재미있을 것 같은 플러그인이다. 2021. 12. 25.
텍스트 레이블의 위치 텍스트 레이블의 위치 X, Y값은 {스케일(scale), 오프셋(offset)}형태의 한쌍으로 가지고 있다. 스케일은 화면의 크기를 0~1의 값 사이로 나타내며, 이때 원점이 되는 기준은 앵커포인트이다. 앵커포인트는 왼쪽 상단 모서리이고(변경 가능하다.) X스케일이 1에 가까워질수록 모니터 오른쪽으로, Y스케일이 1에 가까워질 수록 모니터 아래쪽에 이동하게 된다. 화면 가운데에 텍스트 레이블을 위치하고 싶다면 앵커포인트를 0.5, 0.5로 변경하여 화면 중앙에 위치한 후 위치 값을 {0.5,0} {0.5,0} 으로 설정하면 된다. 오프셋은 픽셀1) 값을 기준으로 위치를 조정한다. 오프셋 역시 앵커포인트를 기준으로 X값이 커질수록 오른쪽으로 Y값이 커질수록 아래쪽으로 이동하게 된다. 텍스트 레이블이 화면 .. 2021. 12. 23.
Hello World 출력 #2 대부분 프로그래밍 책에서처럼 로블록스에서 "Hello World"를 출력하는 것으로 시작해 보자. 스크립트 창을 열고 print("Hello World")를 넣고 실행해 보자. 파란색 플레이 버튼은 캐릭터가 스폰되지만 녹색 실행버튼은 캐릭터 스폰 없이 스크립트만 돌릴 수 있다. 어떤 플레이 버튼도 상관없으니 실행해보자. 출력창(ourput)에 Hello World를 확인하자. print 함수를 설명하기 전 함수에 대한 간단한 개념을 정리해 보자. 함수는 특정 작업을 처리하거나 계산을 수행하고 결과를 반환한다. 좀 더 자세한 설명은 함수를 사용할 때 다루기로 하고, 함수는 특정한 명령을 수행한다고 알아두자. 로블록스에서 print 함수는 함수에 전달한 값을 출력창에 표시한다. 전달한 값이란 print 함수.. 2021. 12. 23.
로블록스 고차함수에서 파라미터 넘기기 다음은 NPC를 클릭했을 때 '안녕하세요'라고 말하는 루아 코드이다. 고차함수란 익명 함수를 생성해 인자로 전달 받을 수 있는 함수로 매우 유연한 코드를 작성하게 해 준다. 아래 코드에서 14번째 코드는 보통 click.MouseClick:Connect(speak)형태로 쓰이나 인자를 넘기기 위해 익명 함수를 사용했다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 local ChatService = game:GetService("Chat") local npc = script.Parent local head = npc.Head local click = npc.ClickDetector local dialogue = {} local function speak(a) local dialo.. 2021. 12. 22.