본문 바로가기

로블록스 개발 기초

(15)
로블록스 코딩 - UI로 점수 보여주기(3/3) 플레이어의 Died 이벤트 테스트를 해보면 알 수 있겠지만, 게임을 시작하고 죽어도 점수의 증가는 멈추지 않는다. 아직까지의 서버의 소스 코드는 1초 단위로 각 플레이어의 점수를 계속 1씩 증가시키고 있을 뿐이기 때문이다. 따라서 플레이어의 죽음을 알아 내서 죽고 나서는 더 이상 점수를 늘려주지 않는 코드를 넣어줘야 한다. 앞선 용암 튜토리얼에서도 다뤘던 Player 객체에서 캐릭터 모델에 이은 휴머노이드 객체을 찾는 과정이 필요한다. 이 휴머노이드 객체의 Died 이벤트를 통해서 플레이어가 죽었음을 알아 낼 수 있기 때문이다. 결국은 Died 이벤트에 연결하기 위한 과정임을 잊지 말자. local Players = game:GetService("Players") -- 캐릭터가 게임 입장했을때 불려질 함..
로블록스 코딩 - UI로 점수 보여주기(2/3) IntValue 데이터형 로블록스가 제공하는 리더보드는 leaderstats 라는 폴더에 값을 집어 넣는 것으로 구현된다는 얘기는 이미 했다. 그 값이란 것은 ntValue라는 데이터형이다... 아니, 객체라고 표현해야 더 맞는 말이겠다. Int데이터형을 저장하는 객체이다. Changed 이벤트를 가지고 있어서 IntValue 객체의 값이 변경될 때마다 이벤트를 발생시켜 준다는 점이다. 아무튼, leaderstats폴더에 우리는 점수값을 넣을 것이므로 IntValue의 이름(Name)은 "Points"라고 하고 값(Value)는 0으로 하자. 이름은 리더보드 UI에 같이 표시되는 값이다. Points 말고 원하는 이름도 괜찮다... 하지만, 여기 튜토리얼의 코드에 변경이 필요하니 그냥 Points로 하고..
로블록스 코딩 - UI로 점수 보여주기(1/3) 앞선 튜토리얼에서 게임 아바타가 떨어지면 죽는 용암과 서서히 사라지는 블럭에 관련된 내용과 코드에 대해서 살펴보았다. 서서히 사라지는 블럭 위를 뛰어 다니면서 초당 1점을 얻는 게임을 만들어 보자. 이 게임의 점수를 화면에 UI로 보여주는 과정을 살펴보겠다. 맵 구성 앞서 만들어 놓은 떨어지는 죽는 용암블럭을 좍 깔고 그 위로 서서히 사라지는 블럭(Fading Platform)들을 바둑판처럼 배치한다. Fading Platform은 복제(Duplicate, Ctrl+D)하여 여러개를 준비한다. 플레이어는 Fading Platform 위를 건너면서 점수를 얻고 최대한 많은 점수를 획득한 유저가 이기는 게임이다. 바둑판같은 Fading Platform 옆에는 스폰 포인트를 만들어서 플레이어가 점프해서 넘어가..
로블록스 코딩 - 서서히 사라지는 블럭(2/2) Touched 이벤트에 연결된 fade() 함수는 게임 아바타가 해당 블럭에 올라타면 발동된다. 게임 아바타는 블럭 위를 달리면서 완전히 사라지기 전에 다른 블럭으로 이동해야 한다. 달리는 동안에는 게임 아바타와 FadingPlatform 블럭은 계속 닿아있게 된다. 그러면 Touched 이벤트가 뛰어다닐 동안 연속해서 "계속" 발생하게 된다. 이벤트와 연결된 fade() 함수도 계속 다시 실행되기 때문에, 결국 예상한 실행 결과와는 다르게 FadingPlatform은 사라지지 않게 된다. 그럼 어떻게 해야할까? fade() 함수가 연속으로 다시 실행되기 때문에 생기는 문제이므로... 연속으로 실행되지 않게 만들면 된다. 아바타가 처음 FadePlatform 블럭에 올라탔을 때만 fade() 함수를 실행..
로블록스 코딩 - 서서히 사라지는 블럭(1/2) 이전 코스에서 닿으면 캐릭터가 죽는 용암 블럭을 만들면서 우리는 플레이어의 행동 이벤트(Touched)를 통해 코드가 실행되는 방법에 대해서 배웠다. 이번 코스에서는 시간에 걸쳐서 서서히 사라지는 블럭을 만들어 보겠다. 준비하기 앞서 만든 용암 게임 환경에서 LavaFloor 위에 새로운 블럭을 만들자. 이 블럭의 이름은 FadingPlatform이다. 이 FadingPlatform은 게임 아바타가 닿으면 그 순간부터 서서히 사라지는 블럭이다. 하나씩 천천히 따라하면 된다. 먼저 아래의 이미지 처럼 스튜디오 게임편집창 내에서 Part를 사용하여 판데기를 만들자. Anchored 속성을 활성화 하는 것을 잊지말자. FadingPlatform에 스크립트를 하나 삽입하고 이름을 FadeOnTouch라고 하자...
로블록스 코딩 - 용암 만들기(2/2) 캐릭터 모델과 휴머노이드 객체 앞서 우리는 LavaFloor라는 Part(여기서는 그냥 블럭이라고 불렀으나 로블록스에서는 Part라는 이름으로 부른다)을 만들었다. 이 Part의 Touched 이벤트에 killPlayer() 함수를 연결시켜서, 또 다른 Part에 의한 Touched이벤트가 생기면 killPlayer() 함수를 호출한다는 부분까지 알았다. LavaFloor 블럭에 다른 Part가 닿는다는 의미는, 플레이어의 캐릭터 모델에 포함된 파트들 중에 하나와 닿았는 말이다. 그것은 왼쪽 다리, 오른쪽 다리, 몸통, 머리가 될 수도 있다. 아무튼 캐릭터 모델의 한 파트와 닿았을 때, killPlayer()가 발생되고 왼쪽 다리파트, 오른쪽 다리 파트등이 파라메타로 killPlayer() 함수 내로 보..
로블록스 코딩 - 용암 만들기(1/2) 앞선 글에서 게임 진행중에 블럭이 시간에 걸쳐서 속성을 반복해서 변경하는 코드에 대해 알아봤다. 이번 튜토리얼에서는 플레이어의 행위를 트리거로 어떤 기능이 작동되는 스크립트, 구체적으로 플레이어 캐릭터가 닿으면 죽는 용암 블럭을 만들어 보겠다. 준비하기 먼저 용암 블럭의 외관에 대해서 알아보자. 블럭을 생성하고 그 이름을 LavaFloor로 바꾸자. 그리고 속성창에서 메터리얼을 Neon으로 바꾸고 색은 오렌지 색으로 바꾸자. 이렇게 바꾼 블럭을 아래 이미지와 같이 배치하자. 해당 블럭에 스크립트를 추가하여 KillPlayer로 이름을 바꾸자. 이 블럭에 닿으면 게임 아바타를 죽이는 기능이 들어있는 스크립트이다. 이벤트 연결하기 LavaFloor 블럭에 닿는 순간에 플레이어는 죽는 기능을 구현한다. 블럭에..
로블록스 코딩 소개 (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 = tr..
로블록스 코딩 소개 (2/3) 블럭 사라지게 하기 이제 블럭을 사라지게 해보자. 블럭을 사라지게 하는 방법으로 여기서는 함수를 사용할 것이다. 함수라는 것은 어떤 특정 작업을 하는 소스코드의 그룹을 일컫는 말이다. 변수와 마찬가지로 재사용이 가능해서 자주 사용하게 된다. 함수는 특정 작업의 소스 코드를 다른 코드와 분리해서 따로 그룹화 시켜 주어서 구조적으로 소스 코드를 보기 좋게 해주는 역할도 한다. disappear라는 이름의 함수를 만들어보자. lua언어의 함수를 선언하는 문법은 다음과 같다. local function disappear() end local 은 앞서 변수 선언에서도 나왔듯이, 해당 함수는 이 스크립트 안에서만 사용되는 것임을 알린다. function 은 이제 함수를 만들겠다고 알려주는 키워드이다. disappe..
로블록스 코딩 소개 (1/3) 시작하기 앞선 튜토리얼에서는 로블록스 스튜디오의 기능들을 살펴봤고 그 간단한 기능들을 통해 매우 간단한 게임을 만들어 봤다. 너무 단순한 게임이었으니... 이제 슬슬 게임스러운 게임을 만들어 보자. 이번 튜토리얼에서는 일정 시간동안 나왔다가 사라졌다가를 반복하는 블럭을 만들 것이다. 플레이어는 이 블럭이 사라지기 전에 다른 블럭위로 점프해서 넘어가야 한다. 이런 식의 게임요소를 만들려면 어쩔 수 없이 소스코드가 필요하다. 로블록스는 루아라는 프로그래밍언어를 사용한다. 처음 접해보는 언어라고 해도 상관없다. 단계별로 천천히 따라해보면 쉽게 사용법을 알 수 있을 것이다. 아바타가 점프를 해서 넘어갈 수 없을 정도로 멀리 떨어져있는 상태의 두 블럭을 준비한다. 그 사이에는 또 다른 블럭을 준비해 놓는데, 이 ..