본문 바로가기
기타

[Roblox] leaderboard

by Roblox_개발자 2021. 4. 9.

로블록스 게임에서 리더보드는 아주 중요한 요소이다. 리더보드를 통해 플레이어의 점수나 경험치, 킬 수 등을 나타낼 수 있고, 이것 이외에도 많은 정보를 보여줄 수 있기 때문이다. 

실제로 로블록스 게임을 살펴보면 리더보드가 존재하지 않는 게임은 찾아보기 힘들다.

이번 예제에서는 간단한 리더보드를 구현해보자.

 

우선 Workspace에 스크립트를 생성 후, 스크립트 안에 밑의 코드를 넣어주자.

 

game.Players.PlayerAdded:Connect(function(player)              -- 플레이어가 맵에 접속할때 실행되는 이벤트
	
	local leaderstats = Instance.new("Folder", player)     -- 새 폴더 인스턴스를 player 밑에 생성
	leaderstats.Name = "leaderstats"                       -- leaderstats 이름 정의 
	
	local Points = Instance.new("IntValue", leaderstats)   -- Points값을 저장할 IntValue 인스턴스 생성
	Points.Name = "Points"                                 -- Points 이름 설정
	Points.Value = 0                                       -- Points 값 설정
	
	local XP = Instance.new("IntValue", leaderstats)       -- XP값을 저장할 IntValue 인스턴스 생성
	XP.Name = "XP"                                         -- XP 이름 설정				
	XP.Value = 0                                           -- XP 값 설정
	
end)

위 코드는 유저가 접속했을 때 점수나 경험치 등의 값을 저장할 Folder를 생성하고 Points, XP라는 값을 Folder 안에 생성하는 코드이다. 

 

실행하게 되면 다음과 같은 리더보드가 보이게 된다.

Points와 XP의 값을 0으로 설정했기 때문에 실행했을 때 값이 0인 것을 확인할 수 있다. 

 

그럼 이제 실제로 Points의 값을 변경시키는 방법을 알아보자

파란색 상자를 하나 생성 후, 플레이어가 상자를 클릭하면 Points가 올라가는 간단한 예제를 구현해보자

 

우선 파란색 상자를 하나 생성한다. 

색상과 크기는 각자 알아서 설정하면 된다.

그 다음, 생성한 파란 상자안에 스크립트를 생성 후, ClickDetector도 추가해주자.

상자 안에는 ClickDetector와 스크립트가 들어있게 된다.

여기서 ClickDetector는 마우스 클릭을 감지하기 위해 사용된다.

 

상자 안의 스크립트에 아래의 코드를 넣어준다.

script.Parent.ClickDetector.MouseClick:Connect(function(player)       -- 플레이어가 상자를 클릭할 때 실행되는 이벤트
	
	local playerstats = player.leaderstats.Points                 -- 상자를 클릭한 플레이어의 Points 인스턴스
	playerstats.Value = playerstats.Value + 1                     -- Points의 값을 1 증가
	
end)

 

실행하게 되면 아래와 같이 상자를 클릭할 때 마다 Points가 1씩 증가하는 것을 확인할 수 있다.

 

'기타' 카테고리의 다른 글

Lua 프로그래밍 기초 문법  (0) 2021.04.13
[Roblox] All about Welds  (0) 2021.04.11
[Roblox] Instance  (1) 2021.04.08
[Roblox] built-in function  (0) 2021.04.08

댓글