본문 바로가기

게임개발/Roblox

[게임개발] Roblox - 루아(Rua)모르는 사람이 만드는 우당탕탕 로블록스 게임만들기 #9

 

반복문 조건문... 여러가지 문법을 익히느라 다들 고생이 많으시다 ( 물론 더 남았음 ㅋ)

하지만 기운차리고 이번엔 재밌는 개념에 대해 배워보자.

오늘 배울 개념은 함수라는 개념이다

 

이미지 출처 - 최고심

 

 

함수는 여러분이 반복해서 해야되는 특정 작업을 하나로 묶는 개념이다.

이제까지 보아왔던 이차함수라던가, 그런 함수랑 똑같다.

함수는 변수가 들어오면 이 변수를 특정한 방법으로 처리하여 값을 뱉어준다.

 

함수는 한 번 만들어 놓으면, 다른 곳에서도 코드를 여러 번 쓸 필요없이 함수 한 번만 사용하면 됨으로 코딩이 편해질 것이다. 자! 그러면 Rua에서는 함수를 어떻게 정의할까?

 

function 함수이름 (변수1, 변수2...)
	함수내용
end

 

Rua에서 함수는 위와같이 정의한다.

변수1과 변수2는 함수의 외부에서 받아와서, 함수내용에서 처리한다.

 

그러면 이 함수를 이용해서 좀 멋있어 보이는걸 만들어보자.

우리가 만들건 다리를 숨겼다가, 특정 버튼을 밟으면 다리가 보이게 하는 함수다.

 

이 함수를 사용하기 전에, 우선 자동지형만들기를 진행해야 한다.

 

홈-편집기를 클릭하면 왼쪽아래에 생성이 뜬다.

 

지형 편집기를 열어 위치와 크기는 건들지 않은 상태로 재질 설정을 건드려주자.

우리는 다리를 만들것이니 

물, 평야, 언덕, 모래 언덕, 협곡에 체크를 해준다.

 

 

이후 아래 파란색 생성하기 버튼을 클릭한다.

 

애법 멋진걸...

 

이렇게 되면 지형이 자동으로 생성된다! 이제 이 물사일르 가로지르는 다리를 하나 놓아주자.

만약 만든 지형이 다리를 놓기에 적당하지 않다 생각되면 위에서 건드리지 않았던 설정인 크기를 변경해가며 자신이 원하는 지형이 나올때까지 누르면 된다. 나는 X를 2048로 주고 다시 만들었다.

 

울릉도와 경상도를 가로지르는~

 

나는 저 지형들 사이에 다리를 놓아보도록 하겠다.

 

다리와 스폰지점을 생성

 

그리고 블록파트를 이용해 다리를 만들어준다.

테스트의 용이함을 위해 스폰지점을 옆에, 그리고 트리거 블럭을 만들어준다.

다리파트의 이름을 Bridge로, 트리거 블럭의 이름을 Trigger로 바꿔주면 준비완료.

 

오른쪽 아래 참고

 

그리고 이제 Bridge 파트의 충돌 (CanCollide)를 체크해제해준다.

이 다리는 숨어있을 것이기 때문에 충돌이 되면안된다.

그리고 위치고정 (Anchored) 을 체크하여 다리의 위치를 고정시킨다.

다리는 눈에 보이면 안됨으로 투명도 (Transparency) 를 1으로 바꾸어준다.

 

다리가 눈에 보이지 않는다. 귀신다리 히익!

 

이제 아까 만들었던 Trigger 파트를 건드려 보자.

우리는 이 블록을 건드리면 다리가 다시 눈에 보이고, 충돌가능으로 바꾸어 다리를 건널 수 있게 할 것이다.

 

Trigger에 스크립트 'TriggerScript'를 추가한다.

 

local trigger = script.Parent -- trigger 변수에 부모 Trigger 파트 담기
local bridge = game.Workspace.Bridge -- bridge변수에 Bridge파트 담기

local onColor = Color3.fromRGB(0,255,0) --색 초록색으로
local offColor = Color3.fromRGB(255,0,0) --색을 붉은색으로

trigger.Color = offColor -- 트리거 파트의 색상은 처음엔 offcolor로 설정

local function showBridge() --함수 만들기 시작
	trigger.Color = onColor -- 트리거의 색상을 oncolor로 변경
	bridge.CanCollide = true -- Bridge를 충돌가능으로 변경
	bridge.Transparency = 0.8 -- Bridge의 투명도를 0.8로 변경
	wait(5) -- 5초 대기
	
	trigger.Color=offColor --trigger의 색상을 offColor로 변경
	bridge.CanCollide=false --Brige를 충돌불가로 설정
	bridge.Transparency = 1 --Bridge의 투명도를 1로 설정
end

trigger.Touched:Connect(showBridge) --트리거가. 터치되면 : 함수 ShowBrige를 실행

 

스크립트에 해당 내용을 적어주고 실행을 해보자.

 

 

맨 처음 게임을 실행하면, 붉은색으로 Trigger 파트가 보인다. 이때는 캐릭터와 접촉하지 않았음으로 함수가 실행되지 않는다.

 

캐릭터와 Trigger 파트가 만나면 Touched되면서 위에서 작성했던 함수가 실행된다.

다리의 투명도가 0.8로 변하며 걸을 수 있게된다.

 

 

쨔쟌. 함수는 이렇게 이용하는 것이다.

 

물론 이 과정을 해봤더라도 굳이 내가 함수를 사용해야되나? 싶을 수도 있다.

하지만 이렇게 함수를 한 번 만들어 놓는다면, 다른 여러 다리를 만들 때에도 편하게 사용할 수 있을 것이며

코드 자체가 훨씬 깔끔해진다.

 

다음엔 Rua문법의 마지막으로 배열에 대해 알아보도록 하겠다! 빠잉!