Files
Azzteroid/script/ship.gd

55 lines
1.2 KiB
GDScript

extends CharacterBody2D
class_name Ship
@export var MAX_SPEED: float = 200
@export var SHOOT_NODE: PackedScene
const SPEED = 25.0
const JUMP_VELOCITY = -400.0
var mouse_position: Vector2 = Vector2.ZERO
var direction :=Vector2(1,0)
var horizontal : float
var vertical : float
var rota_temp: float
var delay := 0.0
var is_in = true
func _input(event):
pass
if event is InputEventMouseMotion:
mouse_position = event.position
func _physics_process(delta: float) -> void:
delay += delta
if Input.is_action_pressed("ui_accept") and delay >= 0.5:
shoot()
delay = 0
horizontal = Input.get_axis("ui_up", "ui_down")
vertical = Input.get_axis("ui_left", "ui_right")
if vertical != 0:
velocity.x = move_toward(velocity.x, MAX_SPEED * vertical, SPEED)
else:
velocity.x = move_toward(velocity.x, 0, SPEED)
if horizontal != 0:
velocity.y = move_toward(velocity.y, MAX_SPEED * horizontal, SPEED)
else:
velocity.y = move_toward(velocity.y, 0, SPEED)
if horizontal != 0 or vertical != 0:
direction = velocity
rotation = atan2(horizontal, vertical)
move_and_slide()
func shoot()->void:
var new = SHOOT_NODE.instantiate()
new.direction = direction
new.position = position + (32 * direction.normalized())
get_parent().add_child(new)