Added Weapon
This commit is contained in:
@@ -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
@@ -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()
|
||||
|
||||
@@ -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")
|
||||
@@ -0,0 +1 @@
|
||||
uid://dpqxs8hlql2o0
|
||||
@@ -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="."]
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user