From 704f43e8d5cfc5d3e3f1d9a07cb60ec4b4d8119e Mon Sep 17 00:00:00 2001 From: Laurent Bovet Date: Wed, 4 Aug 2021 02:45:16 +0200 Subject: [PATCH] feat: aircraft dropping boxes --- Aircraft.gd | 49 +++++++++++++++++++++ Aircraft.tscn | 29 ++++++++++++ Barrel.gd | 6 +++ Barrel.tscn | 30 +++++++++++++ Box.gd | 78 +++++++++++++++++++++++++++++++++ Box.tscn | 63 ++++++++++++++++++++++++++ Bush.tscn | 3 ++ Controls.gd | 1 - Field.gd | 31 ++++++++++++- Field.tscn | 32 +++++++++++++- Game.tscn | 2 +- Rock1.tscn | 3 +- Rock2.tscn | 2 +- Rock3.tscn | 2 +- Shell.gd | 38 ++++++++++++---- Shell.tscn | 64 +++++++++++++++------------ Tank.gd | 56 ++++++++++++++++++----- Tank.tscn | 6 ++- images/big-shell.png | Bin 0 -> 3752 bytes images/big-shell.png.import | 34 ++++++++++++++ images/box.png | Bin 0 -> 3696 bytes images/box.png.import | 34 ++++++++++++++ images/health.png | Bin 0 -> 5290 bytes images/health.png.import | 34 ++++++++++++++ images/nitro.png | Bin 0 -> 4726 bytes images/nitro.png.import | 34 ++++++++++++++ images/plane.png | Bin 0 -> 34878 bytes images/plane.png.import | 34 ++++++++++++++ images/small-shell.png | Bin 0 -> 2265 bytes images/small-shell.png.import | 34 ++++++++++++++ images/small-shells.png | Bin 0 -> 20991 bytes images/small-shells.png.import | 34 ++++++++++++++ images/spring.png | Bin 0 -> 10040 bytes images/spring.png.import | 34 ++++++++++++++ 34 files changed, 713 insertions(+), 54 deletions(-) create mode 100644 Aircraft.gd create mode 100644 Aircraft.tscn create mode 100644 Barrel.gd create mode 100644 Barrel.tscn create mode 100644 Box.gd create mode 100644 Box.tscn create mode 100644 images/big-shell.png create mode 100644 images/big-shell.png.import create mode 100644 images/box.png create mode 100644 images/box.png.import create mode 100644 images/health.png create mode 100644 images/health.png.import create mode 100644 images/nitro.png create mode 100644 images/nitro.png.import create mode 100644 images/plane.png create mode 100644 images/plane.png.import create mode 100644 images/small-shell.png create mode 100644 images/small-shell.png.import create mode 100644 images/small-shells.png create mode 100644 images/small-shells.png.import create mode 100644 images/spring.png create mode 100644 images/spring.png.import diff --git a/Aircraft.gd b/Aircraft.gd new file mode 100644 index 0000000..7b669ba --- /dev/null +++ b/Aircraft.gd @@ -0,0 +1,49 @@ +extends Area2D + +export (PackedScene) var Box + +var speed = 400 + +var obstacles = 0 +var dropAllowed = false +var dropped = false + +func _ready(): + $DropTimer.start(0.9 + (0.2 - randf()*0.4)) + +func _physics_process(delta): + position += -transform.y * speed * delta + if not dropped and dropAllowed and obstacles == 0: + drop() + +func _on_VisibilityNotifier2D_screen_exited(): + queue_free() + +func drop(): + var box = Box.instance() + box.global_position = global_position + box.apply_central_impulse(-transform.y * 500) + box.rotation = rotation + rand_range(-PI / 2, PI / 2) + var rnd = randf() + if rnd < 0.5: + box.setContent(1) + elif rnd < 0.9: + box.setContent(2) + else: + box.setContent(3) + box.z_index = z_index - 1 + box.collision_layer = 128 + box.collision_mask = 128 + box.set_angular_velocity(5) + get_parent().add_child(box) + box.setScale(Vector2(1.5, 1.5)) + dropped = true + +func _on_DropTimer_timeout(): + dropAllowed = true + +func _on_Aircraft_body_entered(body): + obstacles += 1 + +func _on_Aircraft_body_exited(body): + obstacles -= 1 diff --git a/Aircraft.tscn b/Aircraft.tscn new file mode 100644 index 0000000..b7819ca --- /dev/null +++ b/Aircraft.tscn @@ -0,0 +1,29 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://images/plane.png" type="Texture" id=1] +[ext_resource path="res://Aircraft.gd" type="Script" id=2] +[ext_resource path="res://Box.tscn" type="PackedScene" id=3] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 15.8861, 14.1277 ) + +[node name="Aircraft" type="Area2D"] +z_index = 10 +script = ExtResource( 2 ) +Box = ExtResource( 3 ) + +[node name="Sprite" type="Sprite" parent="."] +scale = Vector2( 0.063, 0.063 ) +texture = ExtResource( 1 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +position = Vector2( -0.374573, -82.9523 ) +scale = Vector2( 2.04304, 1.96886 ) +shape = SubResource( 1 ) + +[node name="DropTimer" type="Timer" parent="."] +one_shot = true + +[connection signal="body_entered" from="." to="." method="_on_Aircraft_body_entered"] +[connection signal="body_exited" from="." to="." method="_on_Aircraft_body_exited"] +[connection signal="timeout" from="DropTimer" to="." method="_on_DropTimer_timeout"] diff --git a/Barrel.gd b/Barrel.gd new file mode 100644 index 0000000..bbd9bb6 --- /dev/null +++ b/Barrel.gd @@ -0,0 +1,6 @@ +extends RigidBody2D + + +func _on_PickArea_body_entered(body): + if body.is_in_group("tank") and body.life > 0: + queue_free() diff --git a/Barrel.tscn b/Barrel.tscn new file mode 100644 index 0000000..b69165b --- /dev/null +++ b/Barrel.tscn @@ -0,0 +1,30 @@ +[gd_scene load_steps=5 format=2] + +[ext_resource path="res://images/nitro.png" type="Texture" id=1] +[ext_resource path="res://Barrel.gd" type="Script" id=2] + +[sub_resource type="RectangleShape2D" id=1] +extents = Vector2( 2.76727, 4.33193 ) + +[sub_resource type="CapsuleShape2D" id=2] +radius = 8.06976 +height = 33.491 + +[node name="Barrel" type="RigidBody2D"] +script = ExtResource( 2 ) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] +scale = Vector2( 3.12, 2.6 ) +shape = SubResource( 1 ) + +[node name="Sprite" type="Sprite" parent="."] +scale = Vector2( 0.063, 0.063 ) +texture = ExtResource( 1 ) + +[node name="PickArea" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PickArea"] +scale = Vector2( 2.06014, -0.801646 ) +shape = SubResource( 2 ) + +[connection signal="body_entered" from="PickArea" to="." method="_on_PickArea_body_entered"] diff --git a/Box.gd b/Box.gd new file mode 100644 index 0000000..58339ff --- /dev/null +++ b/Box.gd @@ -0,0 +1,78 @@ +extends RigidBody2D + +export (PackedScene) var Shell + +enum Content { SHELL=0, SMALL_SHELLS=1, BIG_SHELL=2, SPRING=3 } + +var content = null +var targetScale = Vector2(1, 1) +var scaleDelta = Vector2(0.4, 0.4) +var blinks = 5 +var shells = 0 +var life = 8 + +func _ready(): + content = $Sprite/Content.frame + +func setScale(scale): + self.scale = scale + scaleDelta = scale - targetScale + +func _physics_process(delta): + if scale.length() > 1: + var ratio = $FallTimer.time_left / $FallTimer.wait_time + scale = targetScale + ratio * scaleDelta + +func setContent(content): + $Sprite/Content.frame = content + self.content = content + +func hit(damage, source): + life -= damage + if life < 0: + if content != Content.SPRING: + fire(source) + queue_free() + +func fire(source, angle=0): + var s = Shell.instance() + if content == Content.BIG_SHELL: + s.setBig() + elif content == Content.SMALL_SHELLS: + s.setSmall() + if angle == 0: + fire(source, randf() * PI + PI / 3) + fire(source, -randf() * PI + PI / 3) + s.transform = transform + s.rotate(angle) + get_parent().add_child(s) + s.setSource(source) + +func _on_PickArea_body_entered(body): + if body.is_in_group("tank") and body.life > 0: + collision_layer = 256 + collision_mask = 256 + $PickTimer.start() + z_index = 0 + if content == Content.SPRING: + body.addSpring() + if content == Content.SHELL: + body.addPoints(shells) + if content == Content.BIG_SHELL: + body.addBigShell() + if content == Content.SMALL_SHELLS: + body.addSmallShells() + +func _on_FallTimer_timeout(): + z_index = 1 + collision_layer = 1 + set_angular_velocity(0) + +func _on_PickTimer_timeout(): + if blinks % 2: + modulate.a = 0 + else: + modulate.a = 1 + blinks -= 1 + if blinks == 0: + queue_free() diff --git a/Box.tscn b/Box.tscn new file mode 100644 index 0000000..af46da9 --- /dev/null +++ b/Box.tscn @@ -0,0 +1,63 @@ +[gd_scene load_steps=10 format=2] + +[ext_resource path="res://images/box.png" type="Texture" id=1] +[ext_resource path="res://images/shell.png" type="Texture" id=2] +[ext_resource path="res://images/small-shells.png" type="Texture" id=3] +[ext_resource path="res://images/spring.png" type="Texture" id=4] +[ext_resource path="res://images/big-shell.png" type="Texture" id=5] +[ext_resource path="res://Box.gd" type="Script" id=6] +[ext_resource path="res://Shell.tscn" type="PackedScene" id=7] + +[sub_resource type="SpriteFrames" id=1] +animations = [ { +"frames": [ ExtResource( 2 ), ExtResource( 3 ), ExtResource( 5 ), ExtResource( 4 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] + +[sub_resource type="CapsuleShape2D" id=3] +radius = 10.7314 +height = 44.8859 + +[node name="Box" type="RigidBody2D" groups=[ +"heavy", +"target", +]] +z_index = 1 +z_as_relative = false +script = ExtResource( 6 ) +Shell = ExtResource( 7 ) + +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] +position = Vector2( 0, -2 ) +scale = Vector2( 0.063, 0.063 ) +polygon = PoolVector2Array( -203.652, -271.332, -96.4444, -272.383, -96.4261, -311.874, 95.2381, -312.128, 95.2381, -273.189, 203.106, -273.434, 203.398, 270.991, 95.1389, 272.042, 94.5607, 310.2, -94.2023, 309.61, -95.0871, 271.858, -203.036, 271.858 ) + +[node name="Sprite" type="Sprite" parent="."] +scale = Vector2( 0.063, 0.063 ) +texture = ExtResource( 1 ) + +[node name="Content" type="AnimatedSprite" parent="Sprite"] +modulate = Color( 0.776471, 0.776471, 0.776471, 1 ) +position = Vector2( 0, -7 ) +rotation = 0.207694 +frames = SubResource( 1 ) + +[node name="PickArea" type="Area2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="PickArea"] +scale = Vector2( 2.06014, -0.801646 ) +shape = SubResource( 3 ) + +[node name="FallTimer" type="Timer" parent="."] +wait_time = 0.6 +one_shot = true +autostart = true + +[node name="PickTimer" type="Timer" parent="."] +wait_time = 0.06 + +[connection signal="body_entered" from="PickArea" to="." method="_on_PickArea_body_entered"] +[connection signal="timeout" from="FallTimer" to="." method="_on_FallTimer_timeout"] +[connection signal="timeout" from="PickTimer" to="." method="_on_PickTimer_timeout"] diff --git a/Bush.tscn b/Bush.tscn index e331dcb..73839c4 100644 --- a/Bush.tscn +++ b/Bush.tscn @@ -50,6 +50,8 @@ radius = 19.2516 [node name="Bush" type="Area2D" groups=[ "target", ]] +z_index = 4 +z_as_relative = false script = ExtResource( 2 ) [node name="Sprite" type="AnimatedSprite" parent="."] @@ -60,6 +62,7 @@ frames = SubResource( 1 ) shape = SubResource( 2 ) [node name="Particles2D" type="Particles2D" parent="."] +z_as_relative = false emitting = false amount = 40 lifetime = 4.3 diff --git a/Controls.gd b/Controls.gd index 0b58b04..5e91585 100644 --- a/Controls.gd +++ b/Controls.gd @@ -4,7 +4,6 @@ extends Node2D export (int) var player func _ready(): - print("p"+str(player)+"_left") $Left/TouchScreenButton.action = "p"+str(player)+"_left" $Button/TouchScreenButton.action = "p"+str(player)+"_button" $Right/TouchScreenButton.action = "p"+str(player)+"_right" diff --git a/Field.gd b/Field.gd index ca5c5f4..1d5f268 100644 --- a/Field.gd +++ b/Field.gd @@ -1,5 +1,7 @@ extends Area2D +export (PackedScene) var Aircraft + signal tank_removed(tank) signal game_over @@ -11,10 +13,10 @@ func _ready(): var winner = null func update(): - print("updating ", len(candidates)) if len(candidates) < 2: if len(candidates) == 1: winner = candidates[0] + $Airfcrafts.stop() emit_signal("game_over") else: var zeroes=0 @@ -28,6 +30,7 @@ func update(): maybeWinner = c if zeroes > len(candidates) -1: winner = maybeWinner + $Airfcrafts.stop() emit_signal("game_over") func _on_Tank1_dead(): @@ -53,3 +56,29 @@ func _on_Tank3_dead(): func _on_Tank3_zero(): update() + +func spawnAircraft(): + var spawn_location + if randf() > 0.5: + + spawn_location = $Airfcrafts/UpperAircraftSpawner/PathFollow2D + else: + spawn_location = $Airfcrafts/LowerAircraftSpawner/PathFollow2D + + spawn_location.offset = randi() + + var aircraft = Aircraft.instance() + add_child(aircraft) + + # Set the direction perpendicular to the path direction. + var direction = spawn_location.rotation + PI + + # Set the position to a random location. + aircraft.position = spawn_location.position + + # Add some randomness to the direction. + direction += rand_range(-PI / 8, PI / 8) + aircraft.rotation = direction + +func _on_Airfcrafts_timeout(): + spawnAircraft() diff --git a/Field.tscn b/Field.tscn index 9df9385..f904bd6 100644 --- a/Field.tscn +++ b/Field.tscn @@ -1,7 +1,8 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=10 format=2] [ext_resource path="res://Field.gd" type="Script" id=1] [ext_resource path="res://Tank.tscn" type="PackedScene" id=2] +[ext_resource path="res://Aircraft.tscn" type="PackedScene" id=3] [sub_resource type="RectangleShape2D" id=1] extents = Vector2( 508.316, 365.276 ) @@ -15,11 +16,22 @@ extents = Vector2( 11.2731, 298.849 ) [sub_resource type="RectangleShape2D" id=4] extents = Vector2( 13.3929, 299.584 ) +[sub_resource type="Curve2D" id=5] +_data = { +"points": PoolVector2Array( 0, 0, 0, 0, 296.219, -97.4863, 0, 0, 0, 0, 751.939, -97.4863 ) +} + +[sub_resource type="Curve2D" id=6] +_data = { +"points": PoolVector2Array( 0, 0, 0, 0, 736.224, 683.747, 0, 0, 0, 0, 489.47, 684.874, 0, 0, 0, 0, 347.852, 685.992 ) +} + [node name="Field" type="Area2D" groups=[ "range", ]] position = Vector2( 3.41637, -0.172768 ) script = ExtResource( 1 ) +Aircraft = ExtResource( 3 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2( 509.627, 299.821 ) @@ -72,9 +84,27 @@ collision_mask = 2 position = Vector2( 1035.76, 300.097 ) shape = SubResource( 4 ) +[node name="Airfcrafts" type="Timer" parent="."] +wait_time = 20.0 +autostart = true + +[node name="UpperAircraftSpawner" type="Path2D" parent="Airfcrafts"] +curve = SubResource( 5 ) + +[node name="PathFollow2D" type="PathFollow2D" parent="Airfcrafts/UpperAircraftSpawner"] +position = Vector2( 296.219, -97.4863 ) + +[node name="LowerAircraftSpawner" type="Path2D" parent="Airfcrafts"] +curve = SubResource( 6 ) + +[node name="PathFollow2D" type="PathFollow2D" parent="Airfcrafts/LowerAircraftSpawner"] +position = Vector2( 736.224, 683.747 ) +rotation = 3.13701 + [connection signal="dead" from="Tank1" to="." method="_on_Tank1_dead"] [connection signal="zero" from="Tank1" to="." method="_on_Tank1_zero"] [connection signal="dead" from="Tank2" to="." method="_on_Tank2_dead"] [connection signal="zero" from="Tank2" to="." method="_on_Tank2_zero"] [connection signal="dead" from="Tank3" to="." method="_on_Tank3_dead"] [connection signal="zero" from="Tank3" to="." method="_on_Tank3_zero"] +[connection signal="timeout" from="Airfcrafts" to="." method="_on_Airfcrafts_timeout"] diff --git a/Game.tscn b/Game.tscn index e866758..ca44612 100644 --- a/Game.tscn +++ b/Game.tscn @@ -69,7 +69,7 @@ polygon = PoolVector2Array( -2.29916, -147.88, 4.43562, -85.0226, 7.803, 60.8975 rocks = 3.0 [node name="Lower Bush" parent="Levels/Canyon" instance=ExtResource( 2 )] -polygon = PoolVector2Array( 8.58331, 298.73, 34.3999, 473.834, 146.646, 509.753, 327.363, 528.835, 356.547, 503.018, 462.853, 516.771, 469.915, 547.917, 578.794, 559.141, 662.979, 595.06, 998.595, 586.081, 1017.68, 469.345, 969.411, 529.958, 874.002, 559.141, 779.715, 586.081, 664.101, 550.162, 588.896, 516.488, 476.65, 481.692, 469.897, 505.398, 361.036, 490.671, 366.649, 460.365, 99.5027, 419.956, 52.3593, 349.241 ) +polygon = PoolVector2Array( 8.58331, 298.73, 34.3999, 473.834, 146.646, 509.753, 327.363, 528.835, 356.547, 503.018, 462.853, 516.771, 469.915, 547.917, 578.794, 559.141, 662.979, 595.06, 998.595, 586.081, 1017.68, 469.345, 969.411, 529.958, 874.002, 559.141, 779.715, 586.081, 664.101, 550.162, 588.896, 516.488, 476.65, 481.692, 469.897, 505.398, 361.036, 490.671, 366.649, 460.365, 323.521, 453.841, 99.5027, 419.956, 52.3593, 349.241 ) bushes = 2.0 [node name="Mountain" type="Node2D" parent="Levels"] diff --git a/Rock1.tscn b/Rock1.tscn index 1e17cab..c096c76 100644 --- a/Rock1.tscn +++ b/Rock1.tscn @@ -13,7 +13,8 @@ script = ExtResource( 2 ) [node name="Sprite" type="Sprite" parent="."] position = Vector2( -3.8147e-06, 1.90735e-06 ) scale = Vector2( 0.063, 0.063 ) -z_index = -1 +z_index = 1 +z_as_relative = false texture = ExtResource( 1 ) [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] diff --git a/Rock2.tscn b/Rock2.tscn index 57da0a5..9084f41 100644 --- a/Rock2.tscn +++ b/Rock2.tscn @@ -7,7 +7,7 @@ "heavy", "target", ]] -z_index = -1 +z_index = 1 mass = 3.06122 script = ExtResource( 2 ) diff --git a/Rock3.tscn b/Rock3.tscn index 648449f..f555495 100644 --- a/Rock3.tscn +++ b/Rock3.tscn @@ -7,7 +7,7 @@ "heavy", "target", ]] -z_index = -1 +z_index = 1 mass = 3.06122 script = ExtResource( 2 ) diff --git a/Shell.gd b/Shell.gd index 7597693..b72990d 100644 --- a/Shell.gd +++ b/Shell.gd @@ -1,9 +1,9 @@ extends Area2D -var speed = 480 -const SHELL_FORCE = 70 const HIT_REWARD = 10 -const DAMAGE = 11 +var speed = 480 +var shell_force = 70 +var damage = 11 var exploding = false var targets = {} @@ -19,29 +19,49 @@ func _physics_process(delta): func _on_shell_body_entered(body : PhysicsBody2D): explode() if body is RigidBody2D: - body.apply_impulse(global_position-body.global_position, transform.basis_xform(Vector2(0,-SHELL_FORCE))) + body.apply_impulse(global_position-body.global_position, transform.basis_xform(Vector2(0,-shell_force))) func _on_Shell_area_entered(area): if area.is_in_group("target"): explode() if area.is_in_group("shell") and not exploding: - explode() + if $Sprite.frame != 2: + explode() + +func setBig(): + var ratio = 207 / 160 + speed *= 0.5 + $Trail.process_material.emission_sphere_radius *= ratio + $CollisionShape2D.scale = Vector2($CollisionShape2D.scale.x * ratio, 1) + $Explosion.scale *= 2 + damage *= 3 + shell_force *= 2 + $Sprite.frame = 1 + +func setSmall(): + var ratio = 99 / 160.0 + speed *= 1.4 + $Trail.process_material.emission_sphere_radius *= ratio + $CollisionShape2D.scale = Vector2($CollisionShape2D.scale.x * ratio, 1) + $Explosion.scale *= ratio + damage *= 0.8 + shell_force *= 0.6 + $Sprite.frame = 2 func explode(): speed = 0 exploding = true var damageRange = ($Explosion/ExplosionRange/Position2D.global_position - $Explosion.global_position).length() - for target in targets.values(): var distance = (target.global_position - $Explosion.global_position).length() - var damage = max(0, DAMAGE * (1 - (distance / damageRange))) + var actualDamage = max(0, damage * (1 - (distance / damageRange))) if target.is_in_group("tank") and target.life >= 0 and target != source: source.addPoints(HIT_REWARD) - target.hit(damage, source) + target.hit(actualDamage, source) $Sprite.hide() - $Particles2D.restart() + $Explosion/Particles2D.restart() $Explosion.show() $Explosion.play() $CollisionShape2D.hide() diff --git a/Shell.tscn b/Shell.tscn index 77cf735..970e9dd 100644 --- a/Shell.tscn +++ b/Shell.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=17 format=2] [ext_resource path="res://images/shell.png" type="Texture" id=1] [ext_resource path="res://Shell.gd" type="Script" id=2] @@ -6,12 +6,30 @@ [ext_resource path="res://images/boom3.png" type="Texture" id=4] [ext_resource path="res://images/boom4.png" type="Texture" id=5] [ext_resource path="res://images/boom2.png" type="Texture" id=6] +[ext_resource path="res://images/big-shell.png" type="Texture" id=7] +[ext_resource path="res://images/small-shell.png" type="Texture" id=8] + +[sub_resource type="SpriteFrames" id=8] +animations = [ { +"frames": [ ExtResource( 1 ), ExtResource( 7 ), ExtResource( 8 ) ], +"loop": true, +"name": "default", +"speed": 5.0 +} ] [sub_resource type="CapsuleShape2D" id=1] radius = 4.9976 height = 12.3372 -[sub_resource type="ParticlesMaterial" id=6] +[sub_resource type="SpriteFrames" id=3] +animations = [ { +"frames": [ ExtResource( 3 ), ExtResource( 6 ), ExtResource( 4 ), ExtResource( 5 ), ExtResource( 4 ) ], +"loop": false, +"name": "default", +"speed": 5.0 +} ] + +[sub_resource type="ParticlesMaterial" id=2] flag_disable_z = true spread = 180.0 gravity = Vector3( 0, 0, 0 ) @@ -25,27 +43,19 @@ scale = 41.54 scale_random = 0.75 color = Color( 0.270588, 0.231373, 0.231373, 1 ) -[sub_resource type="SpriteFrames" id=2] -animations = [ { -"frames": [ ExtResource( 3 ), ExtResource( 6 ), ExtResource( 4 ), ExtResource( 5 ), ExtResource( 4 ) ], -"loop": false, -"name": "default", -"speed": 5.0 -} ] - -[sub_resource type="CircleShape2D" id=8] +[sub_resource type="CircleShape2D" id=4] radius = 790.0 -[sub_resource type="Gradient" id=4] +[sub_resource type="Gradient" id=5] offsets = PoolRealArray( 0, 0.00974026, 0.246753, 0.568182 ) colors = PoolColorArray( 0, 0, 0, 1, 0.351562, 0.300751, 0.300751, 1, 0.478818, 0.478818, 0.478818, 1, 1, 1, 1, 1 ) -[sub_resource type="GradientTexture" id=5] -gradient = SubResource( 4 ) +[sub_resource type="GradientTexture" id=6] +gradient = SubResource( 5 ) [sub_resource type="ParticlesMaterial" id=7] trail_divisor = 2 -trail_color_modifier = SubResource( 5 ) +trail_color_modifier = SubResource( 6 ) emission_shape = 1 emission_sphere_radius = 4.0 flag_disable_z = true @@ -59,20 +69,26 @@ color = Color( 0.780392, 0.764706, 0.764706, 1 ) "shell", ]] position = Vector2( -0.408664, -0.25976 ) +z_index = 3 script = ExtResource( 2 ) -[node name="Sprite" type="Sprite" parent="."] +[node name="Sprite" type="AnimatedSprite" parent="."] position = Vector2( 0.0745754, -11.1122 ) scale = Vector2( 0.063, 0.063 ) -texture = ExtResource( 1 ) +frames = SubResource( 8 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2( 0.0556774, -11.1362 ) shape = SubResource( 1 ) -[node name="Particles2D" type="Particles2D" parent="."] +[node name="Explosion" type="AnimatedSprite" parent="."] position = Vector2( 0, -18.5975 ) scale = Vector2( 0.08, 0.08 ) +frames = SubResource( 3 ) +speed_scale = 5.0 + +[node name="Particles2D" type="Particles2D" parent="Explosion"] +z_index = 5 emitting = false amount = 30 lifetime = 0.5 @@ -80,13 +96,7 @@ one_shot = true speed_scale = 3.11 explosiveness = 0.71 randomness = 0.55 -process_material = SubResource( 6 ) - -[node name="Explosion" type="AnimatedSprite" parent="."] -position = Vector2( 0, -18.5975 ) -scale = Vector2( 0.08, 0.08 ) -frames = SubResource( 2 ) -speed_scale = 5.0 +process_material = SubResource( 2 ) [node name="ExplosionRange" type="Area2D" parent="Explosion"] position = Vector2( 0, 232.469 ) @@ -95,7 +105,7 @@ scale = Vector2( 12.5, 12.5 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="Explosion/ExplosionRange"] position = Vector2( 0, -18.5975 ) scale = Vector2( 0.08, 0.08 ) -shape = SubResource( 8 ) +shape = SubResource( 4 ) [node name="Position2D" type="Position2D" parent="Explosion/ExplosionRange"] position = Vector2( 74.9046, -18.6998 ) @@ -111,8 +121,8 @@ process_material = SubResource( 7 ) [connection signal="animation_finished" from="Explosion" to="." method="_on_Explosion_animation_finished"] [connection signal="area_entered" from="Explosion/ExplosionRange" to="." method="_on_ExplosionRange_area_entered"] [connection signal="area_entered" from="Explosion/ExplosionRange" to="." method="_on_Area2D_area_entered"] -[connection signal="area_exited" from="Explosion/ExplosionRange" to="." method="_on_Area2D_area_exited"] [connection signal="area_exited" from="Explosion/ExplosionRange" to="." method="_on_ExplosionRange_area_exited"] +[connection signal="area_exited" from="Explosion/ExplosionRange" to="." method="_on_Area2D_area_exited"] [connection signal="body_entered" from="Explosion/ExplosionRange" to="." method="_on_ExplosionRange_body_entered"] [connection signal="body_entered" from="Explosion/ExplosionRange" to="." method="_on_Area2D_body_entered"] [connection signal="body_exited" from="Explosion/ExplosionRange" to="." method="_on_ExplosionRange_body_exited"] diff --git a/Tank.gd b/Tank.gd index 16535a9..43064cc 100644 --- a/Tank.gd +++ b/Tank.gd @@ -1,14 +1,18 @@ extends RigidBody2D + export (PackedScene) var Shell +export (PackedScene) var Box + export (int) var player signal dead signal zero +const SMALL_ROTATE_RATIO = 0.2 const ROTATE_IMPULSE = 6000 const THROTTLE_IMPULSE = 600 -const FIRE_IMPULSE = 50 -const FIRE_SKEW = 30 +const FIRE_IMPULSE = 60 +const FIRE_SKEW = 40 const LOAD_TIME = 0.260 const SHOTS_PER_SEQUENCE = 3 const DAMAGE_RATIO = 1.4 @@ -31,6 +35,9 @@ var lastDelta = 0 var focused = false var ready = false var virgin = true +var springed = false +var bigShell = 0 +var smallShells = 0 func _ready(): if player == 1: @@ -53,6 +60,8 @@ func _physics_process(delta): var buttonPressed = Input.is_action_pressed("p"+str(player)+"_button") var rightPressed = Input.is_action_pressed("p"+str(player)+"_right") var leftPressed = Input.is_action_pressed("p"+str(player)+"_left") + var amplitude = SMALL_ROTATE_RATIO if Input.is_action_just_pressed("p"+str(player)+"_right") or \ + Input.is_action_just_pressed("p"+str(player)+"_left") else 1 var n = 0 n += 1 if buttonPressed else 0 @@ -64,11 +73,11 @@ func _physics_process(delta): virgin = false if rightPressed: - apply_torque_impulse(ROTATE_IMPULSE*delta) + apply_torque_impulse(ROTATE_IMPULSE*delta*amplitude) return if leftPressed: - apply_torque_impulse(-ROTATE_IMPULSE*delta) + apply_torque_impulse(-ROTATE_IMPULSE*delta*amplitude) return if buttonPressed: @@ -80,11 +89,23 @@ func _physics_process(delta): fire() buttonDuration = 0 -func fire(): - if not loading and points > 0: - shot += 1 +func fire(angle=0): + if not loading and points > 0 or bigShell > 0 or smallShells > 0: var s = Shell.instance() + if bigShell > 0: + s.setBig() + bigShell -= 1 + elif smallShells > 0: + s.setSmall() + smallShells -= 1 + if angle == 0: + fire(-PI/28) + fire(PI/28) + else: + shot += 1 + addPoints(-1) s.transform = transform * $Muzzle.transform + s.rotate(angle) get_parent().add_child(s) $Muzzle/MuzzleFire/Timer.start_default() s.setSource(self) @@ -95,10 +116,11 @@ func fire(): else: $LoadTimer.start(LOAD_TIME) # recoil - apply_impulse(Vector2(FIRE_SKEW*randf()-FIRE_SKEW/2,FIRE_SKEW*randf()-FIRE_SKEW/2), - transform.basis_xform(Vector2(0, FIRE_IMPULSE*randf()))) + if not springed and angle == 0 or bigShell: + apply_impulse(Vector2(FIRE_SKEW*randf()-FIRE_SKEW/2,FIRE_SKEW*randf()-FIRE_SKEW/2), + transform.basis_xform(Vector2(0, FIRE_IMPULSE*randf()))) loading = true - addPoints(-1) + func hit(damage, source): virgin = false @@ -135,6 +157,12 @@ func addPoints(delta): if points == 0: emit_signal("zero") +func addBigShell(): + bigShell += 2 + +func addSmallShells(): + smallShells += 9 + func showPoints(hide=true): if(lastDelta == 0): $Label.modulate = Color(1, 1, 1) @@ -159,11 +187,19 @@ func _on_LoadTimer_timeout(): func _on_Fade_timeout(): $Life.hide() +func addSpring(): + springed = true + func die(): emit_signal("dead") $Life.hide() $Sprite.modulate = Color(0.2,0.2,0.2) $Explosion.restart() + if points > 0: + var box = Box.instance() + box.shells = points / 3 + box.global_position = global_position + get_parent().add_child(box) if virgin: queue_free() diff --git a/Tank.tscn b/Tank.tscn index d0ee6bf..5ab5a68 100644 --- a/Tank.tscn +++ b/Tank.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=11 format=2] +[gd_scene load_steps=12 format=2] [ext_resource path="res://images/tank.png" type="Texture" id=1] [ext_resource path="res://Tank.gd" type="Script" id=2] @@ -7,6 +7,7 @@ [ext_resource path="res://VisibilityTimer.gd" type="Script" id=5] [ext_resource path="res://images/cell.png" type="Texture" id=6] [ext_resource path="res://fonts/Xolonium-Regular.ttf" type="DynamicFontData" id=7] +[ext_resource path="res://Box.tscn" type="PackedScene" id=8] [sub_resource type="ParticlesMaterial" id=1] lifetime_randomness = 0.32 @@ -39,12 +40,15 @@ font_data = ExtResource( 7 ) "target", ]] position = Vector2( 200, 200 ) +z_index = 1 +z_as_relative = false collision_layer = 3 collision_mask = 3 linear_damp = 8.434 angular_damp = 12.319 script = ExtResource( 2 ) Shell = ExtResource( 3 ) +Box = ExtResource( 8 ) [node name="Sprite" type="Sprite" parent="."] position = Vector2( 0.180908, -5.59229 ) diff --git a/images/big-shell.png b/images/big-shell.png new file mode 100644 index 0000000000000000000000000000000000000000..42ed53ebd0c7f6c5fd0b13fd4723deb1084d0e22 GIT binary patch literal 3752 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 literal 0 HcmV?d00001 diff --git a/images/nitro.png.import b/images/nitro.png.import new file mode 100644 index 0000000..366d5da --- /dev/null +++ b/images/nitro.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/nitro.png-9bd12b3a326bfaa92d3ad1353807452d.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/nitro.png" +dest_files=[ "res://.import/nitro.png-9bd12b3a326bfaa92d3ad1353807452d.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/images/plane.png b/images/plane.png new file mode 100644 index 0000000000000000000000000000000000000000..645485f2e823d9a6bb3c03275550608624e81400 GIT binary patch literal 34878 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 J|NU_C{{Vpq_GAD6 literal 0 HcmV?d00001 diff --git a/images/small-shell.png.import b/images/small-shell.png.import new file mode 100644 index 0000000..9ba81e8 --- /dev/null +++ b/images/small-shell.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/small-shell.png-8424434fec0dff53087aa156b671fada.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/small-shell.png" +dest_files=[ "res://.import/small-shell.png-8424434fec0dff53087aa156b671fada.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/images/small-shells.png b/images/small-shells.png new file mode 100644 index 0000000000000000000000000000000000000000..d95ad8e38c19f2ce66396c3a162be7ef2948cd52 GIT binary patch literal 20991 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 literal 0 HcmV?d00001 diff --git a/images/small-shells.png.import b/images/small-shells.png.import new file mode 100644 index 0000000..a901165 --- /dev/null +++ b/images/small-shells.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/small-shells.png-7ddd0fc8b450e2b336e03baf40be5b52.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/small-shells.png" +dest_files=[ "res://.import/small-shells.png-7ddd0fc8b450e2b336e03baf40be5b52.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/images/spring.png b/images/spring.png new file mode 100644 index 0000000000000000000000000000000000000000..894de213a5bc7700b89ac4c93d99d090ca076c74 GIT binary patch literal 10040 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 literal 0 HcmV?d00001 diff --git a/images/spring.png.import b/images/spring.png.import new file mode 100644 index 0000000..75be7cf --- /dev/null +++ b/images/spring.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/spring.png-760b5a95c35b9be2f741ece806025d20.stex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://images/spring.png" +dest_files=[ "res://.import/spring.png-760b5a95c35b9be2f741ece806025d20.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0