This site is currently in read-only mode during migration to a new platform.
You cannot post questions, answers or comments, as they would be lost during the migration otherwise.
+2 votes

I would like to have a ball in my game that would be affected by the gravity, however i don't want that the sprite rotate with the ball because i have a sort of shade effect on it. Thanks

in Engine by (49 points)
recategorized by

2 Answers

+5 votes

set the rigidbody to Character mode

by (584 points)
can confirm this
+3 votes

If you want to allow the RigidBody2D to rotate, but want to keep the sprite upright at all costs, you can just rotate the sprite in the opposite direction. Sample script (assuming it is run on the RigidBody2D, and the sprite is a child of it):

var sprite
func _ready():
    sprite = get_node("Sprite")
    set_process(true)
func _process():
    sprite.set_rot(-get_rot())

Also, for a nicer effect, you can have one multiplicative Sprite for the shadow (which you keep upright), and another Sprite for the texture, that would rotate with the RigidBody2D. In this case the node tree would look like so:

ball (RigidBody2D)
-- shadow (Sprite) # You would use this one in the code above
-- texture (Sprite) # Leave this one to rotate
by (1,608 points)
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read Frequently asked questions and How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to [email protected] with your username.