Website Tutorial Dodge the Creeps - Player is not moving

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By DeathKurai

I started to learn Godot and GDScript for two days and I have a problem with the first game tutorial on the Godot website. My player isn’t moving and I don’t know what the mistake is.

Here is my code:

extends Area2D

export var speed = 400 # How fast the player will move (pixels/sec).
var screen_size # Size of the game window.

func ready():
screen_size = get_viewport_rect().size

func _process(delta):
var velocity = Vector2() # The player’s movement vector
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
position += velocity * delta
position.x = clamp(position.x, 0, screen_size.x)
position.y = clamp(position.y, 0, screen_size.y)

I don’t copy & paste it from the website. I’ve got an error which says 'Invalid get index ‘x’ (on base: ‘Nil’). What does ist mean?


:bust_in_silhouette: Reply From: Inces

Read error text to get which line exactly You made mistake in. It says somewhere in your code there is an empty variable followed by “.x”. You pasted code that is impossible to run by compiler - how can You introduce var velocity in process() and refer to this variable in Input() ? It is impossible. I am sure You introduced var velocity higher in your code, above process(). So You introduced it as Vector2 but without a value, that means it is NULL ( or Nill ). You can’t make any comparisons and calculations on NULL value, it must be set to something first.

Introduce var velocity as Vector2(0,0) in main script, not under any funcion.