본문 바로가기
Education_Tutorial Series/Code Fundamentals

Code Fundamentals ( 코드 기본 사항 ) - Variables and Properties , Function & IF

by Roblox_개발자 2021. 4. 18.

작성자 : CHAN

공식 홈페이지 링크 : Code Fundamentals (roblox.com)

 

코드 기초

이 플랫폼은 사용자 경험을 개선하고, 콘텐츠를 맞춤 설정하고, 소셜 미디어 기능을 제공하고, 트래픽을 분석하기 위해 쿠키를 사용합니다. 이 플랫폼의 쿠키 사용을 중지 또는 관리하는 방법

education.roblox.com

코딩 기초 부분 - Variables and Properties

1. Creating New Scripts 

education.roblox.com/en-us/resources/intro-to-coding-coding-1-create-a-script

 

스크립트 만들기

이 플랫폼은 사용자 경험을 개선하고, 콘텐츠를 맞춤 설정하고, 소셜 미디어 기능을 제공하고, 트래픽을 분석하기 위해 쿠키를 사용합니다. 이 플랫폼의 쿠키 사용을 중지 또는 관리하는 방법

education.roblox.com

ServerScriptService 안에 script를 만드는 법은 생략합니다.

ServerScriptService 는 서버측 게임 로직을 배치하기 위한 의미적이고 조직적인 장소로서, 게임 내 세상을 방해하지 않습니다. 스크립트는 이 서비스 내에서 실행되며 게임 클라이언트로 복제되지 않으므로 스크립트를 안전하게 저장할 수 있습니다. ( 공식홈페이지 링크 )

주로 leaderstats ( 리더보드점수판 ) 같은 기본적인 스크립트들을 넣는다. 

 

 

 

2. String Variables ( 문자열 변수 )

education.roblox.com/en-us/resources/intro-to-coding-coding-1-string-variables

 

스트링 변수

이 플랫폼은 사용자 경험을 개선하고, 콘텐츠를 맞춤 설정하고, 소셜 미디어 기능을 제공하고, 트래픽을 분석하기 위해 쿠키를 사용합니다. 이 플랫폼의 쿠키 사용을 중지 또는 관리하는 방법

education.roblox.com

print()를 사용해 콘솔창에 값 출력 하는 법은 생략합니다. 

warn() 을 사용하면 콘솔창에 주황색으로 표시됩니다. 
로그가 많아질 때 잘 알아볼 수 있는 용도로 사용 할 수 있습니다.
print()와 동일한 기능입니다.

(ex. warn("Hello world") )

문자열 로그 찍는 법 나온다!

3. Properties and BrickColor ( 속성과 색상 )

education.roblox.com/en-us/resources/intro-to-coding-coding-1-properties-and-brickcolor

 

속성과 BrickColor

이 플랫폼은 사용자 경험을 개선하고, 콘텐츠를 맞춤 설정하고, 소셜 미디어 기능을 제공하고, 트래픽을 분석하기 위해 쿠키를 사용합니다. 이 플랫폼의 쿠키 사용을 중지 또는 관리하는 방법

education.roblox.com

part 안에 스크립트를 만들고, part의 색상을 변경하는 법은 생략합니다.

game.Workspace.PracticePart.BrickColor 뜻
탐색창에 있는 Workspace안에 PracticePart라는 이름을 가진 Part의 BrickColor의 색상 
Lua의 색상 테이블 참고하기 링크

 

4. Loops and BrickColor ( while문과 색상 변경 )

education.roblox.com/en-us/resources/intro-to-coding-coding-1-loops-and-brickcolor

 

루프 및 BrickColor

이 플랫폼은 사용자 경험을 개선하고, 콘텐츠를 맞춤 설정하고, 소셜 미디어 기능을 제공하고, 트래픽을 분석하기 위해 쿠키를 사용합니다. 이 플랫폼의 쿠키 사용을 중지 또는 관리하는 방법

education.roblox.com

1. part 를 하나 만듭니다.

2. part안에 스크립트를 만들고, while문을 사용하여 색상을 계속 변경합니다. 

3. game.Workspace.partname 을 script.Parent 로 대체하면, 이 스크립트를 재사용 할 수 있습니다.

3. 색상이 바뀔때마다 wait() 을 주어 변경합니다. 



5.Reusing Code w/ script.Parent


game 은 최상위 폴더로 취급됩니다.
script.Parent 는 해당 스크립트 위치의 부모, 즉 part 자체를 의미합니다. 
ex) 현재 스크립트의 위치가 Workspace > LoopingPart에 위치한다면
game.Workspace.LoopingPart.BrickColor 은 script.Parent.BrickColor 와 같은 의미 

 

함수 및 IF / THEN - Functions and IF/THEN

1. Functions 1: Practice ( 함수 기초 )

education.roblox.com/en-us/resources/intro-to-coding-coding-2-functions-1-practice

 

함수 1: 연습

이 플랫폼은 사용자 경험을 개선하고, 콘텐츠를 맞춤 설정하고, 소셜 미디어 기능을 제공하고, 트래픽을 분석하기 위해 쿠키를 사용합니다. 이 플랫폼의 쿠키 사용을 중지 또는 관리하는 방법

education.roblox.com

함수안에 print() 를 써서 출력하는 방법은 생략합니다.

 

 

2. Functions 2: Instances and Particles ( 인스턴스와 파티클 )

education.roblox.com/en-us/resources/intro-to-coding-coding-2-functions-2-instances-and-particles

 

함수 2: 인스턴스와 파티클

이 플랫폼은 사용자 경험을 개선하고, 콘텐츠를 맞춤 설정하고, 소셜 미디어 기능을 제공하고, 트래픽을 분석하기 위해 쿠키를 사용합니다. 이 플랫폼의 쿠키 사용을 중지 또는 관리하는 방법

education.roblox.com

파트에 불타는 효과를 적용한뒤, 불타는 효과를 반짝임 효과로 변경해봅시다.

파트나 스크립트등과 같이 게임에 추가되는 모든 것은 "개체" 라고 부릅니다. 특정 개체의 각 복사본은 
Instance(인스턴스) 라고 부릅니다. 

Fire은 인스턴스의 한 유형입니다. 

모델 탭 -> 효과 를 선택하면, 로블록스에서 제공하는 여러가지 효과 인스턴스들을 확인 할 수 있습니다.

 

 

 

3. Parameters and Events 1: Traps ( 매개변수와 이벤트1 : 함정 )

education.roblox.com/en-us/resources/intro-to-coding-coding-2-parameters-and-events-1-traps

 

매개변수와 이벤트 1: 함정

이 플랫폼은 사용자 경험을 개선하고, 콘텐츠를 맞춤 설정하고, 소셜 미디어 기능을 제공하고, 트래픽을 분석하기 위해 쿠키를 사용합니다. 이 플랫폼의 쿠키 사용을 중지 또는 관리하는 방법

education.roblox.com

함정 part를 생성하고, 그 part에 닿으면 플레이어가 사망하는 코드를 만들어 봅시다.

파트에 개체가 접촉될 때마다 함수가 실행되게 하기 위해 함수를 Touched event에 연결해야 합니다. 이벤트는 플레이어가 파트에 접촉하거나 상태가 약화되는 등 게임 내에서 발생하는 사건을 의미합니다. 함수가 이벤트에 연결되면 해당 이벤트가 발생할 때마다 함수가 실행됩니다.

 

파트가 다른 파트와 접촉할 때마다 Touched 이벤트가 실행됩니다. 이 이벤트는 버튼, 함정 및 플레이어들이 상호작용하는 기타 개체를 만드는 데 사용할 수 있습니다.

 

" : "은 개체를 함수에 연결하는 특수 기호입니다. 이 경우 objectTouched 매개변수 내에 어떤 개체가 저장되었든 "Destroy()" 가 실행됩니다.

 

 

4. Parameters and Events 2: Buttons

education.roblox.com/en-us/resources/intro-to-coding-coding-2-parameters-and-events-2-buttons

 

매개변수 및 이벤트 2: 버튼

이 플랫폼은 사용자 경험을 개선하고, 콘텐츠를 맞춤 설정하고, 소셜 미디어 기능을 제공하고, 트래픽을 분석하기 위해 쿠키를 사용합니다. 이 플랫폼의 쿠키 사용을 중지 또는 관리하는 방법

education.roblox.com

버튼을 누르면 버튼 색이 바뀌고 문이 열리게끔 만들어봅시다. 

 

// 버튼 선택
local button = script.Parent


// 문 선택
local door = workspace.door

local function buttonPressed()
	print("버튼 클릭")
	button.BrickColor = BrickColor.new(0,0.7,0)	//색상을 초록색으로 변경
	door.Transparency = 1 // 문의 색상을 투명도 변경
	door.CanCollide = false // 충돌가능
	
	
	
end


//버튼을 터치했을때 buttonPressed 함수 실행시키기
button.Touched:Connect(buttonPressed)

 

 

5. Multiple Parameters and Arguments ( 다중 매개 변수 및 인수 )

education.roblox.com/en-us/resources/multiple-parameters-and-arguments---code-fundamentals

 

Multiple Parameters and Arguments

이 플랫폼은 사용자 경험을 개선하고, 콘텐츠를 맞춤 설정하고, 소셜 미디어 기능을 제공하고, 트래픽을 분석하기 위해 쿠키를 사용합니다. 이 플랫폼의 쿠키 사용을 중지 또는 관리하는 방법

education.roblox.com

매개변수는 다양한 상황에서 쓰일 수 있습니다.

  • 숫자 추가 - (number1, number2)
  • 동급생의 생일 목록 만들기 - (name, birthday)
  • 플레이어에게 게임 내 통화 제공 - (player, numberCoins)
  • 게임 내 상점에서 물약을 구입 - (item, howMany)

등등 함수에 변수를 여러개 전달하여 사용할 수 있습니다.

 

print("serverScriptService입니다.")

// 각 part 선택
local cementBlock = game.Workspace.CemmentBlock
local glassBottle = game.Workspace.GlassBottle


//trash는 없애고 , recycle에서는 빛나게 하는 코드
local function sortGarbage(trash, recycle)
	print("garbage test")
	trash:Destroy()
	local sparkle = Instance.new("Sparkles")
	sparkle.Parent = recycle
end

// 코드 실행
sortGarbage(cementBlock, glassBottle)

 

 

6. Using if/then Statements

기본적인 if 문은 생략합니다. 

 

 

7. Traps with if/then Statements + Humanoid (휴머노이드) 

if/then 문을 사용하면 접촉하는 모든 개체를 파괴하는 데 그치지 않고 플레이어의 상태까지 변경하는 함정을 만들 수 있습니다. Roblox의 아바타 중에는 플레이어의 이동 반경 내에 존재하며 플레이어의 상태를 바꾸는 휴머노이드라는 개체가 있습니다. if/then 문을 사용하여 함정에 접촉하는 개체에 휴머노이드 파트가 포함되어 있는지 확인할 수 있습니다. 이 경우 플레이어의 상태가 0으로 설정됩니다.

1. 함정 part를 생성

2. 그 part를 터치했을때 그 터치한 part의 부모가 휴머노이드인지 확인

3. 휴머노이드면 사망하게 하기 

FindFirstChildWhichISA("Humanoid") 는 첫번째 조상이 Humanoid 인지 아닌지 체크하는 코드입니다. 
FindFirstChildWhichISA() 는 해당 인스턴스의 최상위개체가 무엇인지 체크한 뒤 맞으면 true, 없으면 0 을 반환합니다. 

 

 

 

8. Powerups with if/then Statements ( 버프 )

파워업 효과는 플레이어에게 비행, 투명, 그리고 이 예제의 속도 증가와 같은 특별한 능력을 부여합니다! 플레이어의 걷기 속도를 일시적으로 증가시키는 속도 부스트를 만들려면 if/then 문이 속도 부스트를 터치한 개체가 플레이어이고 또한 플레이어가 아직 파워업 상태가 아니어야 합니다.

// 스피드업 예제
// 파트 생성
local speedBoost = script.Parent

local function onTouch(otherPart)
//휴머노이드인지 검사
	local character = otherPart.Parent
	local humanoid = character:FindFirstChildWhichIsA ("Humanoid")
    
	print("Something touched speedBoost")
    
	//이미 스피드업상태인지 체크
	if humanoid and humanoid.WalkSpeed <= 16 then
    
		print("A humanoid touched speedBoost")
        
		//스피드업
		humanoid.WalkSpeed = 50
		print("Player is moving super fast")
		wait(2)
        
        //다시 기본스피드로
		humanoid.WalkSpeed = 16 
		print("Player is back at normal speed")
	end 
end

//speedBoost part에 닿으면  onTouch() 실행
speedBoost.Touched:Connect(onTouch)
예제의 설명에 따르면, Humanoid의 WalkSpeed는 10과 100사이 숫자여야 합니다. 그렇지 않으면 예기치 않은 오류가 발생합니다.

 

 

9. Returning Values from Functions ( 함수에서 값 반환 )

맵에 케이크가 생성된 모습

game:GetService("example")
괄호안에있는 이름의 서비스를 반환합니다. 위 예제에서는 InterService의 인스턴스를 반환합니다. 

괄호안에 있는 이름이 없는 서비스인경우, 새로운 서비스를 생성합니다. 
새로운 서비스를 생성하는 유일한 방법입니다.  ( GetService링크)


InsertService:LoadAsset()
InsertService는 Roblox 웹 사이트(일반적으로 자산 로드 기능)에서 자산을 삽입하는 데 사용됩니다.
자산을 로드하려면 해당 자산을 로드하는 게임 작성자가 해당 자산에 액세스할 수 있어야 하며, 이는 사용자 또는 그룹일 수 있습니다. 이러한 제한 때문에 InsertService는 중요한 데이터(일반적으로 API 또는 HttpService와 함께 사용할 비밀 키)를 로드하는 데 유용합니다. 다른 크리에이터가 게임을 업로드할 경우 중요한 데이터에 액세스할 수 없습니다

 

 

 

▶여러개의  값 리턴하기

아와 같이 여러개의 값을 한번에 return할 수 있다.

댓글