I'd say it depends on what your player will be able to do, and how you want to go about implementing it.
If you only need to detect collision bodies with the player then I'd suggest using a Area2D
node. The Area2D
node will allow you to know if another collision body has entered the area, but it will not do anything to said collision body. So for example, unless you do something when you detect a collision, the player will be able to go through solid objects like walls by default.
If you want to collide with other physics objects and move them on collision, then I'd use either a KinematicBody2D
or a StaticBody2D
. Personally for a player I'd use a KinematicBody2D node, as it has several handy functions for moving a around and has functions for detecting which side a collision occurred at.
Without knowing what you're project will need it is hard to say, but the most common node to use for a player, at least as far as I know, is the KinematicBody2D
node. It is easy to use, collides with other objects, and there are several examples of how to use it online. That said, if you do not want to collide with other objects, or you want to handle what happens when the player collides yourself, then maybe you would want to use an Area2D
node instead.
Hopefully this helps! :smile: