RigidBody2Dのオブジェクトを押す(Topdown)

CharacterBody2DのPlayerがRigidBody2Dの箱や岩などのオブジェクトを押す動作

■RigidBody2D(岩、箱など)

TopdownなのでGravityは無し。
他のオブジェクトにぶつかっても回転しないようにLockRotaionをオン。
Dampの摩擦を設定

■CharacterBody2D

func _push_object():
	for i in range(get_slide_collision_count()):
		var collision = get_slide_collision(i)
		var object_col = collision.get_collider()
		if object_col.is_in_group("PushObject"):
			object_col.apply_central_impulse(collision.get_normal() * -Push_Force)

キャラクターが接触したCollisionからオブジェクトのグループを判定して、オブジェクトを4方向に移動させる。
Push_Forceで移動する距離を設定

コメントを残す 0

Your email address will not be published. Required fields are marked *