본문 바로가기

로블록스 개발 기초

로블록스 코딩 소개 (3/3)

루프 사용하기

블럭은 사라졌다가 생겼다가를 반복해야 한다. 몇 초후 생겼다가 몇 초후는 사라지고, 또 몇 초후에 다시 생기는 것을 무한히 반복해야 한다. 반복 작업을 위해서 for 문과 while 문을 사용할 수 있다. 여기서는 while 문을 사용하자.

while 문은 while 뒤의 조건문이 true 이면 다시 되돌리는 역할을 한다. 언제든 false가 되면 되돌리기를 멈추고 다음 실행 문장으로 넘어가게 된다.

local platform = script.Parent
 
local function disappear()
    platform.CanCollide = false
    platform.Transparency = 1
end
 
local function appear()
    platform.CanCollide = true
    platform.Transparency = 0
end

-- while 뒤가 true 이기 때문에 계속 반복됨
while true do
    -- 기능추가
end
  • while 문으로 반복문임을 알린다
  • true : 항상 반복되는 상태
  • do : do 예약어로 while 선언을 마침
  • end 은 while 문의 마지막임을 선언

블럭 appear / disappear 반복하기

while 루프에서 사라지고 생기고 하는 과정중에는 몇초간의 기다림이 필요하다. 이때는 built-in 함수인 wait() 함수를 사용할 수 있다. while 루프안에서 disappear() 함수를 부르고, wait()함수를 부르고, appear() 함수를 부르고 wait() 함수를 부르면 되겠다.

⚠️ wait() 함수 없이 반복문을 사용할 때는 조심해야 한다. wait()없는 반복문을 잘못 만들면 무한히 반복실행되며 게임이 멈춰버리는 현상을 볼 수도 있다.. 적당한 연산 반복 후에 빠져나오면 상관없지만, 위와 같이 조건문이 true로 고정인 상태에서 wait()함수가 없는 반복문을 실행시키면, 반복문에서 빠져나오지 못하고 계속 실행을 하느라 마치 멈춰버린 것처럼 보여지게 된다.
while true do
	wait(3)
	disappear()
	wait(3)
	appear()
end

메인 블럭의 소스 코드는 이것으로 완료되었다. 테스트를 해보고 블럭이 사라지고 생기고 하는 모습을 확인하고 실제로 게임 아바타로 테스트해보자.

 

전체 코드를 확인해 보자.

local platform = script.Parent
 
local function disappear()
    platform.CanCollide = false
    platform.Transparency = 1
end
 
local function appear()
    platform.CanCollide = true
    platform.Transparency = 0
end
 
while true do
	wait(3)
	disappear()
	wait(3)
	appear()
end

요약

  • while 문을 사용하여 원하는 기능을 반복시키자
  • 빌트인 wait() 함수를 사용하여 반복문내에서 잠시 기다리는 기능을 추가하자

다음 글을 통해 좀더 다양한 코드를 알아보자.

2021.04.15 - [로블록스 개발 기초] - 로블록스 코딩 - 용암 만들기(1/2)