@cybereality said:
You misspelled direction. Also rotation. Be careful when you type.
It seems there is still one problem due to another script in this. In the Player script it gives me this error:
W 0:00:00.429 The argument 'body' is never used in the function 'on_Player_body_entered'. If this is intended, prefix it with an underscore: 'body'
<C++ Error> UNUSED_ARGUMENT
<Source> Player.gd:44
When I run the game, I can move the player around, but the enemies never show up. Is that probably becuase of this error? I tried adding the underscore suggested above, but didn't fix the game.
Here is the player code.
extends Area2D
signal hit
export var speed = 400 # How fast player moves
var screen_size
# Called when the node enters the scene tree for the first time.
func _ready():
screen_size = get_viewport_rect().size
hide()
func _process(delta):
var velocity = Vector2()
if Input.is_action_pressed("ui_right"):
velocity.x += 1
if Input.is_action_pressed("ui_left"):
velocity.x -= 1
if Input.is_action_pressed("ui_down"):
velocity.y += 1
if Input.is_action_pressed("ui_up"):
velocity.y -= 1
if velocity.length() > 0:
velocity = velocity.normalized() * speed
$AnimatedSprite.play()
else:
$AnimatedSprite.stop()
position += velocity * delta
position.x = clamp(position.x, 0, screen_size.x)
position.y = clamp(position.y, 0, screen_size.y)
if velocity.x != 0:
$AnimatedSprite.animation = "walk"
$AnimatedSprite.flip_v =false
#See note below about boolean assignment
$AnimatedSprite.flip_h =velocity.x < 0
elif velocity.y != 0:
$AnimatedSprite.animation = "up"
$AnimatedSprite.flip_v = velocity.y > 0
func _on_Player_body_entered(body):
hide()
emit_signal("hit")
$CollisionShape2D.set_deferred("disabled", true)
func start(pos):
position = pos
show()
$CollisionShape2D.disabled = false