first commit

This commit is contained in:
DerTyp7
2023-09-19 15:17:39 +02:00
commit f8b11b590b
15 changed files with 442 additions and 0 deletions

91
Player.gd Normal file
View File

@@ -0,0 +1,91 @@
extends CharacterBody2D
var movespeed = 300;
var bullet_speed = 2000;
var bullet = preload("res://Bullet.tscn")
var shoot_timer := Timer.new()
var can_shoot := true
func _ready():
add_child(shoot_timer);
shoot_timer.wait_time = 0.3
shoot_timer.start()
shoot_timer.connect("timeout", _on_shoot_timer_timeout)
func _on_shoot_timer_timeout():
can_shoot = true
func _physics_process(delta):
look()
move()
if Input.is_action_pressed("shoot"):
shoot()
func shoot():
if can_shoot:
fire()
can_shoot = false
shoot_timer.start()
func look():
var look_direction = Vector2.ZERO
if Input.is_action_pressed("look_up"):
look_direction.y -= 1
if Input.is_action_pressed("look_down"):
look_direction.y += 1
if Input.is_action_pressed("look_left"):
look_direction.x -= 1
if Input.is_action_pressed("look_right"):
look_direction.x += 1
# Diagonal look
if Input.is_action_pressed("look_up") && Input.is_action_pressed("look_left"):
look_direction = Vector2(-1, -1).normalized()
if Input.is_action_pressed("look_up") && Input.is_action_pressed("look_right"):
look_direction = Vector2(1, -1).normalized()
if Input.is_action_pressed("look_down") && Input.is_action_pressed("look_left"):
look_direction = Vector2(-1, 1).normalized()
if Input.is_action_pressed("look_down") && Input.is_action_pressed("look_right"):
look_direction = Vector2(1, 1).normalized()
if look_direction != Vector2.ZERO:
look_direction = look_direction.normalized()
rotation = look_direction.angle()
func move():
velocity = Vector2.ZERO
if Input.is_action_pressed("walk_up"):
velocity.y -= 1
if Input.is_action_pressed("walk_down"):
velocity.y += 1
if Input.is_action_pressed("walk_left"):
velocity.x -= 1
if Input.is_action_pressed("walk_right"):
velocity.x += 1
velocity = velocity.normalized() * movespeed
move_and_slide()
func fire():
var bullet_instance = bullet.instantiate() # Create an instance of the bullet
var offset = Vector2(20, 0).rotated(rotation) # Adjust the offset as needed
bullet_instance.position = global_position + offset
bullet_instance.rotation_degrees = rotation_degrees
# Calculate the bullet direction based on the player's rotation
var bullet_direction = Vector2(bullet_speed, 0).rotated(rotation)
# Apply the impulse in the correct direction
bullet_instance.apply_impulse(bullet_direction, Vector2())
# Add the bullet to the scene
get_tree().get_root().call_deferred("add_child", bullet_instance)