The Godot Q&A is currently undergoing maintenance!

Your ability to ask and answer questions is temporarily disabled. You can browse existing threads in read-only mode.

We are working on bringing this community platform back to its full functionality, stay tuned for updates.

godotengine.org | Twitter

0 votes

When I go do the left the sprite flips. But how can i flip the collisionshape2d?
Here'S s the code:

``
extends KinematicBody2D

const SPEED = 110
const UP = Vector2(0, -1)
var motion = Vector2()

func physicsprocess(delta) :
motion.y += 25

if Input.is_action_pressed("ui_right") :
    motion.x = SPEED
    $Sprite.flip_h = false
    $Sprite.play("Walk")

elif Input.is_action_pressed("ui_left") :
    motion.x = -SPEED
    $Sprite.flip_h = true
    $Sprite.play("Walk")

else :
    $Sprite.play("Idle")
    motion.x = 0
if is_on_floor() :
    if Input.is_action_just_pressed("ui_up") :
        motion.y = -550
else :
    $Sprite.play("Idle")

motion = move_and_slide(motion, UP)``

Here's a picture:
https://imgur.com/a/cvX0to8

in Engine by (232 points)
reshown by

Use Vector2.UP. No need for const UP = Vector2(0, -1).

1 Answer

0 votes

Instead of flipping the sprite, can you just flip the entire node?

if Input.is_action_pressed("ui_right") :
    motion.x = SPEED
    self.scale.y = abs(self.scale.y)
    $Sprite.play("Walk")

elif Input.is_action_pressed("ui_left") :
    motion.x = -SPEED
    self.scale.y = -abs(self.scale.y)
    $Sprite.play("Walk")

else :
    $Sprite.play("Idle")
    motion.x = 0
if is_on_floor() :
    if Input.is_action_just_pressed("ui_up") :
        motion.y = -550
else :
    $Sprite.play("Idle")
by (1,663 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.