본문 바로가기

고도(Godot Enguine)/걸음마(Step by Step)

고도 장애물의 충돌 처리와 이펙트

export var scene : PackedScene 

먼저 이펙트 신을 불러온다

 

Area2D Node

 

Area2D 노드에 CollisionShape2D를 노트를 생성하여

body_entered(body:Node) 시그널을 연결한다

바닥에 닿았을 때와 플레이어와 충동했을 때 실행할 동작을 만든다

func _on_PlayerDetector_body_entered(body):
	if body.is_in_group("player"):	
		body.die()
		die()
		
	if body.is_in_group("floor"):
		die()	

Player 씬에 그룹으로 player를 설정해주었다

 

 

 

Play 화면

아래는 떨어지는 장애물의 GDScript이다

extends RigidBody2D

export var scene : PackedScene


func _ready():
	$Sprite.frame = rand_range(0, 3)
	
func _on_PlayerDetector_body_entered(body):
	if body.is_in_group("player"):	
		body.die()
		die()
		
	if body.is_in_group("floor"):
		die()	
	
	

func die():	
	#$PlayerDetector.collision_mask = false
	#$Sprite.visible = false
	
	var effect = scene.instance() as Sprite
	effect.position = position
	get_parent().add_child(effect)
	
	#yield(get_node("AnimationPlayer"), "animation_finished")
	#get_tree().reload_current_scene()
	queue_free()

 

참고 영상

https://youtu.be/PWH47qc6UY0