godot-shooter / commit
Added speed powerups, which can actually make the game more difficult, because with a faster speed, the turns become much wider. Might need to change the turn rate to account for this.
Player.gd | 5 ++++ SpeedPowerUp.gd | 8 ++++++ SpeedPowerUp.tscn | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ World.tscn | 12 ++++++++- 4 files changed, 104 insertions(+), 1 deletion(-) diff --git a/Player.gd b/Player.gd index af9d598..9d3c7ed 100644 --- a/Player.gd +++ b/Player.gd @@ -48,6 +48,11 @@ func heal(amount: int = 1): if health > max_health: health = max_health +func speed_up(delta: int = 10): + if dead: + return + move_speed += delta + func hurt(damage_amount: int = 1): if dead or is_invincible: return diff --git a/SpeedPowerUp.gd b/SpeedPowerUp.gd new file mode 100644 index 0000000..863780e --- /dev/null +++ b/SpeedPowerUp.gd @@ -0,0 +1,8 @@ +extends Node2D + +export var speed_amount = 10 + +func _on_Area2D_body_entered(body: Node) -> void: + if body.has_method("speed_up"): + body.speed_up() + $AnimationPlayer.play("fade_out") diff --git a/SpeedPowerUp.tscn b/SpeedPowerUp.tscn new file mode 100644 index 0000000..a489fb2 --- /dev/null +++ b/SpeedPowerUp.tscn @@ -0,0 +1,80 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://SpeedPowerUp.gd" type="Script" id=1] +[ext_resource path="res://assets/kenney_simple-space/PNG/Retina/star_tiny.png" type="Texture" id=2] + +[sub_resource type="Animation" id=1] +length = 0.001 +tracks/0/type = "value" +tracks/0/path = NodePath(".:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0 ), +"transitions": PoolRealArray( 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ) ] +} + +[sub_resource type="Animation" id=2] +resource_name = "fade_out" +tracks/0/type = "value" +tracks/0/path = NodePath(".:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/keys = { +"times": PoolRealArray( 0, 1 ), +"transitions": PoolRealArray( 1, 1 ), +"update": 0, +"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ] +} +tracks/1/type = "method" +tracks/1/path = NodePath(".") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/keys = { +"times": PoolRealArray( 1.3 ), +"transitions": PoolRealArray( 1 ), +"values": [ { +"args": [ ], +"method": "queue_free" +} ] +} +tracks/2/type = "value" +tracks/2/path = NodePath("Area2D/CollisionPolygon2D:disabled") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/keys = { +"times": PoolRealArray( 0.1 ), +"transitions": PoolRealArray( 1 ), +"update": 1, +"values": [ true ] +} + +[node name="SpeedPowerUp" type="Node2D"] +script = ExtResource( 1 ) +speed_amount = 20 + +[node name="Area2D" type="Area2D" parent="."] + +[node name="Sprite" type="Sprite" parent="Area2D"] +modulate = Color( 0, 0.462745, 1, 1 ) +texture = ExtResource( 2 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="Area2D"] +visible = false +polygon = PoolVector2Array( 0, -15, -16, 0, 0, 16, 16, 0 ) + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +anims/RESET = SubResource( 1 ) +anims/fade_out = SubResource( 2 ) + +[connection signal="body_entered" from="Area2D" to="." method="_on_Area2D_body_entered"] diff --git a/World.tscn b/World.tscn index d7fb400..2836a51 100644 --- a/World.tscn +++ b/World.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=2] +[gd_scene load_steps=10 format=2] [ext_resource path="res://assets/kenney_simple-space/PNG/Default/icon_crossLarge.png" type="Texture" id=1] [ext_resource path="res://Player.tscn" type="PackedScene" id=2] @@ -7,6 +7,7 @@ [ext_resource path="res://StarField.tscn" type="PackedScene" id=5] [ext_resource path="res://CharacterTheme.tres" type="Theme" id=6] [ext_resource path="res://HealPowerUp.tscn" type="PackedScene" id=7] +[ext_resource path="res://SpeedPowerUp.tscn" type="PackedScene" id=8] [sub_resource type="CircleShape2D" id=1] radius = 29.0172 @@ -61,6 +62,15 @@ position = Vector2( 199, 534 ) [node name="HealPowerUp3" parent="Environment" instance=ExtResource( 7 )] position = Vector2( 837, 158 ) +[node name="SpeedPowerUp" parent="Environment" instance=ExtResource( 8 )] +position = Vector2( 747, 342 ) + +[node name="SpeedPowerUp2" parent="Environment" instance=ExtResource( 8 )] +position = Vector2( 123, 307 ) + +[node name="SpeedPowerUp3" parent="Environment" instance=ExtResource( 8 )] +position = Vector2( 450, 505 ) + [node name="CanvasLayer" type="CanvasLayer" parent="."] [node name="HUD" parent="CanvasLayer" instance=ExtResource( 3 )]