작성자 : 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할 수 있다.
'Education_Tutorial Series > Code Fundamentals' 카테고리의 다른 글
Code Fundamentals ( 코드 기본 사항 ) - Loops and ElseIf (0) | 2021.04.19 |
---|
댓글