티스토리 뷰

🎨/Roblox

[Roblox] Basic Coding (1)

eungding 2021. 11. 13. 19:52
반응형

Basic Coding 은 이렇게 4가지 코스가 가 있습니다. 

각 코스를 진행하면서 간단히 요약! 

 

 

 

[1]  Introduction to Coding

 

Part (로블록스의 Object) 에 + 를 눌러서 Script 를 추가할 수 있습니다. 

 

 

 

 

Roblox의 코드는 Lua라는 언어로 작성되며 스크립트에서 저장 및 실행됩니다. (Lua는 camel case 권장)

Part 에 스크립트를 넣으면 Roblox는 해당 Part가 게임에 로드될 때, 스크립트를 실행합니다. 

 

우선 Part (위의 경우 DisappearingCloud) 를 참조하는 코드를 작성해봅시다. 

script는 현재 script 를 의미하고 

script.Parent 는 script 가 located in 된 object 를 의미합니다. 

 

 

 

그럼 3초마다 Cloud 가 사라졌다, 나왔다 하는 스크립트는 이렇게 작성하면 될까요?! 

우선 Part를 누르면 Properties window 에서 프로퍼티들을 볼 수 있습니다. 

마우스 올리면 해당 프로퍼티의 설명도 나옵니다. 

 

 

두가지 프로퍼티를 알면 됩니다! 


1. CanCollide property

말 그대로 other parts (and players) 가 이 part와 충돌할 수 있는 지 결정하는 프로퍼티. 

 

 

2. Transparency property

투명도를 설정하는 프로퍼티. 0에서 1 사이의 값이 될 수 있고 1 로 설정하면 완전 투명해서 invisible 합니다. 

 

 

그리고 while 문을 이용해주면 됩니다. 

while true loop을 쓸 때, wait를 꼭 넣으라고 경고 하고 있습니다. 

wait를 넣지 않으면, 스튜디오는 loop를 leave할 기회가 없기 때문에 아무것도 하지못하고 게임이 freeze 됩니다.

 

 

최종 코드는 이렇게 되겠습니다.

 

 

 

 

 

 

[2] Deadly Lava

 

FakeCloud에 Script 를 추가하고 Script 이름을 KillPlayer로 해줍니다. 

 

 

우선 Player가 해당 Part에 touch 했는 지를 detect 해야합니다.

모든 Part는 Touched event 를 가지고 있습니다. 원하는 함수를 이 이벤트에 연결해서 무언가가 터치되었을 때, 실행시킬 수 있습니다. 

 

 

player를 죽이기 위해 function은 player와 연관된 object가 필요합니다. 

Part의 Touched event 는 해당 Part와 터치가 발생한 Other Part 에 대한 정보를 제공합니다. 

함수의 파라미터로 지정하여 요청하면 됩니다! 

killPlayer function이 불릴 때, otherPart 파라미터는 Cloud에 touched 된 Part 를 나타내게 됩니다. 

 

 

Player가 Cloud에 touch 될 때, 로블록스는 왼쪽 다리, 오른쪽 발 같이 특정한 body part 를 detect 하게 됩니다.

이런 body part는  player의  Character model 안에 있습니다. 

 

캐릭터 모델에는 Player의 아바타를 구성하는 모든 objects가 포함되어 있습니다.

- 머리, 몸통 등 individual body parts

- Player가 착용하는 의류, 악세사리

- Player의 건강 (Health) 등 Player와 관련된 많은 속성을 포함하는 special object 인 Humanoid

- Player의 움직임을 제어하는 HumanoidRootPart

 

위에서 말한 것 처럼 Cloud에 터치된 것은 Character model의 일부이므로 Character에 대한 참조를 얻으려면

otherPart.Parent 로 접근해주면 됩니다.

 

 

그리고 이 character model 에서 Humanoid object 를 얻어야합니다. Player를 죽이기 위해! 

이것은 FindFirstChild 이라는 function 이용해주면 됩니다.  이 함수에 찾고자하는 child의 name을 넘겨주면  

first matching child 를 리턴해줍니다. 

 

 

if문으로 Humanoid가 잘 찾아졌는 지 체크한 후, Health 프로퍼티를 0으로 해주면 Player가 죽게 됩니다.

 

 

 

너무 잔인하게 죽어서 충격,,,,ㅎㅎ

 

 

반응형

'🎨 > Roblox' 카테고리의 다른 글

[Roblox] Modeling (3) - Terrain  (0) 2021.11.21
[Roblox] Modeling (2) - Texture, Decal  (0) 2021.11.21
[Roblox] Modeling (1) - Solid Modeling  (0) 2021.11.21
[Roblox] Basic Coding (2)  (0) 2021.11.17
[Roblox] Roblox Studio 시작하기  (0) 2021.11.01
댓글