Added Weapon

This commit is contained in:
2025-10-21 17:58:33 +03:00
parent 2d58e385fd
commit 594e2f95f5
9 changed files with 53 additions and 3 deletions
+9 -1
View File
@@ -6,7 +6,15 @@ var position : Vector2:
$Ship.position = value
get:
return $Ship.position
func _input(event: InputEvent) -> void:
var weapons : Array = $Ship.weapons
var weapon_actions := { 0: "shoot_weapon_1", 1: "shoot_weapon_2" }
for index : int in weapon_actions:
if event.is_action_pressed(weapon_actions[index]) and weapons.size() > index:
$Ship.shoot(weapons[index])
func _process(delta: float) -> void:
var input_direction := Input.get_vector("move_left", "move_right", "move_up", "move_down")
+20 -2
View File
@@ -15,13 +15,27 @@ extends CharacterBody2D
@export var deceleration : int
@export var max_speed : int
#var _velocity : Vector2
@onready var weapons : Array:
set(value):
pass
get:
return weapons
func _ready() -> void:
var texture := PlaceholderTexture2D.new()
texture.size = size
$Sprite2D.texture = texture
var weapons_by_offset := {
8: preload("res://game/entities/weapon.tscn").instantiate(),
-8: preload("res://game/entities/weapon.tscn").instantiate(),
}
for offset : int in weapons_by_offset:
var weapon : Node2D = weapons_by_offset[offset]
weapon.position = Vector2(0, offset)
add_child(weapon)
weapons.append(weapon)
func _physics_process(_delta: float) -> void:
@@ -29,7 +43,6 @@ func _physics_process(_delta: float) -> void:
if was_collided:
var normal := get_wall_normal()
velocity -= normal.abs() * velocity
print(was_collided, get_wall_normal(), velocity)
func accelerate(direction: Vector2, delta: float) -> void:
@@ -50,3 +63,8 @@ func _get_new_speed(accel: float, decel: float, current_speed: float) -> float:
return current_speed + (decel if current_speed < 0 else -decel)
else:
return current_speed + accel
func shoot(weapon: Node) -> void:
if weapon in weapons:
weapon.shoot()
+11
View File
@@ -0,0 +1,11 @@
extends Node2D
func _ready() -> void:
var texture := PlaceholderTexture2D.new()
texture.size = Vector2(10, 7)
$Sprite2D.texture = texture
func shoot() -> void:
print("shoot")
+1
View File
@@ -0,0 +1 @@
uid://dpqxs8hlql2o0
+8
View File
@@ -0,0 +1,8 @@
[gd_scene load_steps=2 format=3 uid="uid://dwm4iejnbuhxo"]
[ext_resource type="Script" uid="uid://dpqxs8hlql2o0" path="res://game/entities/weapon.gd" id="1_4oq3a"]
[node name="Weapon" type="Node2D"]
script = ExtResource("1_4oq3a")
[node name="Sprite2D" type="Sprite2D" parent="."]
+1
View File
@@ -14,6 +14,7 @@ anchors_preset = 0
script = ExtResource("1_wp78b")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
top_level = true
layout_mode = 0
offset_left = 100.0
offset_top = 100.0
+1
View File
@@ -8,6 +8,7 @@ anchors_preset = 0
script = ExtResource("1_chmv6")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
top_level = true
layout_mode = 0
offset_left = 100.0
offset_top = 100.0
+1
View File
@@ -14,6 +14,7 @@ anchors_preset = 0
script = ExtResource("1_61pji")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
top_level = true
layout_mode = 0
offset_left = 100.0
offset_top = 100.0
+1
View File
@@ -18,6 +18,7 @@ anchors_preset = 0
script = ExtResource("1_inj1j")
[node name="VBoxContainer" type="VBoxContainer" parent="."]
top_level = true
layout_mode = 0
offset_left = 100.0
offset_top = 100.0