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

I am creating a 2D platformer in which there is an enemy that has to change its side when it touches the platform, but using scale it changes its side every frame, how can I pin number(-1)?

Godot version 3.2.3
in Engine by (99 points)

Please add some code.

If globals.player.position.x < position.x
  Vel.x = speed
  Scale.x =-1
If globals.player.position.x > position.x
  Vel.x =  -speed
  Scale.x = 1

1 Answer

+1 vote

You have to add the current direction to both if. Maybe swap Vel.x < and Vel.x > between the ifs.

# Moving to the left
If Vel.x < 0 and globals.player.position.x < position.x
    Vel.x = speed
    Scale.x =-1

# Moving to the right
If Vel.x > 0 and globals.player.position.x > position.x
    Vel.x =  -speed
    Scale.x = 1
by (646 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.