61 lines
1.3 KiB
GDScript
61 lines
1.3 KiB
GDScript
extends CharacterBody2D
|
|
|
|
var base_speed = 100
|
|
|
|
var speed
|
|
var bullet_speed
|
|
var ammunition
|
|
var damage
|
|
|
|
var incoming_damage
|
|
var bullet_delay
|
|
var size = 100
|
|
var tax
|
|
|
|
var remaining_bullets = 100
|
|
|
|
var bullet_timer = 0
|
|
|
|
@onready var sprite = $CollisionShape2D/Sprite2D
|
|
@onready var collision = $CollisionShape2D
|
|
|
|
@export var inventory : Control
|
|
|
|
@export var bullet_scene : PackedScene
|
|
|
|
func _physics_process(delta):
|
|
bullet_timer -= delta
|
|
velocity = Vector2(0,0)
|
|
if Input.is_action_pressed("left"):
|
|
velocity.x += -1
|
|
if Input.is_action_pressed("right"):
|
|
velocity.x += 1
|
|
if Input.is_action_pressed("up"):
|
|
velocity.y += -1
|
|
if Input.is_action_pressed("down"):
|
|
velocity.y += 1
|
|
|
|
if Input.is_mouse_button_pressed(MOUSE_BUTTON_LEFT):
|
|
spawn_bullet()
|
|
|
|
velocity = velocity.normalized() * speed*base_speed*delta
|
|
|
|
move_and_slide()
|
|
sprite.global_position = Vector2i(global_position)
|
|
|
|
collision.scale = Vector2(0.3,0.3)*(pow(size,0.2))
|
|
|
|
func reload():
|
|
pass
|
|
|
|
func spawn_bullet():
|
|
if bullet_timer > 0: return
|
|
var new_bullet = bullet_scene.instantiate()
|
|
new_bullet.direction = global_position.direction_to(get_global_mouse_position())
|
|
new_bullet.position = position
|
|
new_bullet.speed = sqrt(bullet_speed)
|
|
|
|
get_tree().root.add_child(new_bullet)
|
|
|
|
bullet_timer = 0.1*pow(bullet_delay,0.4)
|