사용자:Senouis/고도3 도큐먼트/튜토리얼 7장: 두 판 사이의 차이

리버티게임, 모두가 만들어가는 자유로운 게임
 
2번째 줄: 2번째 줄:
{{수리중|기간=2024-09-30}}
{{수리중|기간=2024-09-30}}
== 콜리전(Collision)? ==
== 콜리전(Collision)? ==
고도 엔진의 콜리전은 물체끼리 부딪혔을 때 무엇을 할 것인지 지시하는 방법입니다. 고도 엔진 게임을 돌리는 컴퓨터는 사용자가 하라고 한 말만 하기 때문에, 단순히 두 물체를 부딪히게 하면 부딪히기만 할 뿐, 튕겨나가거나 부서지지 않습니다. 즉 알아서 물체의 상태를 바꿔주지 않습니다. 따라서 콜리전이 필요하면 게임 제작자가 충돌 발생 시 무엇을 할지 콜백 함수를 만들어줘야 합니다.
고도 엔진의 콜리전은 물체끼리 부딪혔을 때 무엇을 할 것인지 지시하는 방법입니다. 고도 엔진 게임을 돌리는 컴퓨터는 사용자가 하라고 한 말만 하기 때문에, 단순히 두 물체를 부딪히게 하면 부딪히기만 할 뿐, 튕겨나가거나 부서지지 않습니다. 즉 '''물체끼리 부딪혀도 알아서 물체의 상태를 바꿔주지 않습니다'''. 따라서 콜리전이 필요하면 게임 제작자가 충돌 발생 시 무엇을 할지 콜백 함수를 만들어줘야 합니다.


== 콜리전의 종류 ==
== 콜리전의 종류 ==

2024년 5월 16일 (목) 20:59 기준 최신판

이전 장으로

Beehive.jpg이 게임은 현재 수리(패치) 중입니다!
2024년 09월 30일 00시 00분 00초까지 수리하기로 한 게임입니다.
"사용자:Senouis/고도3 도큐먼트/튜토리얼 7장" 수리에 대한 문의 사항은 이곳에서 받고 있습니다.

콜리전(Collision)?[편집 | 원본 편집]

고도 엔진의 콜리전은 물체끼리 부딪혔을 때 무엇을 할 것인지 지시하는 방법입니다. 고도 엔진 게임을 돌리는 컴퓨터는 사용자가 하라고 한 말만 하기 때문에, 단순히 두 물체를 부딪히게 하면 부딪히기만 할 뿐, 튕겨나가거나 부서지지 않습니다. 즉 물체끼리 부딪혀도 알아서 물체의 상태를 바꿔주지 않습니다. 따라서 콜리전이 필요하면 게임 제작자가 충돌 발생 시 무엇을 할지 콜백 함수를 만들어줘야 합니다.

콜리전의 종류[편집 | 원본 편집]

Area2D/Area3D[편집 | 원본 편집]

PhysicsBody2D/PhysicsBody3D[편집 | 원본 편집]

콜리전의 모양 잡기[편집 | 원본 편집]

CollisionShape2D[편집 | 원본 편집]

많이 쓰이는 '콜리전 모양 하위 리소스'는 다음과 같습니다.

  • CircleShape2D
  • CapsuleShape2D
  • RectangleShape2D

CollisionPolygon2D[편집 | 원본 편집]

콜리전 이벤트와 콜백 함수[편집 | 원본 편집]

타이머(Timer) 노드[편집 | 원본 편집]

타이머 만들기[편집 | 원본 편집]

타이머 콜백 함수[편집 | 원본 편집]

시그널 보내기[편집 | 원본 편집]

이제, 입력/콜리전/타이머 이외에 엔진에서 정한 방법 이외에 물체와 물체 사이, 아니면 씬과 씬 사이의 상호작용을 지정하는 시그널(Signal)에 대해 알아봅시다.

시그널 만들기[편집 | 원본 편집]

시그널에 함수를 연결하는 두 가지 방법[편집 | 원본 편집]

이제 시그널로 무엇을 할지 정하는 시그널 콜백 함수를 만들고 연결합니다. 두 가지 방법이 있습니다.

방법 1: 속성 창에서 시그널 연결[편집 | 원본 편집]

방법 2: connect 함수 사용하기[편집 | 원본 편집]

다음으로[편집 | 원본 편집]

시그널을 만들고 사용하는 법까지 알았으니, 이제 웬만한 물체는 다 조작할 수 있습니다. 그럼 이제 거의 필수로 사용하는 기능은 두 개 정도만 더 소개하면 되겠군요! 다음 장으로 넘어가주세요. 다음 장으로