From 0c586d9b41933827395101825a9974f8d8ffc091 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robin=20H=C3=BCbner?= Date: Sat, 12 Aug 2017 19:23:11 +0200 Subject: [PATCH] missile testing, also let missiles be hit by bullets, its neat --- Bullet.gd | 3 +++ Bullet.tscn | 2 +- Game.tscn | 40 +++++++++++++++++++++++++++++++++++++++- Missile.gd | 16 ++++++++++++---- MissileImpact.gd | 2 +- MissileImpact.tscn | 4 ++-- 6 files changed, 58 insertions(+), 9 deletions(-) diff --git a/Bullet.gd b/Bullet.gd index a40d907..64a5edd 100644 --- a/Bullet.gd +++ b/Bullet.gd @@ -19,6 +19,9 @@ func fire(delta, vel, dir, speed): func type(): return "Bullet" +func do_damage(v): + lifetime = 0 + func on_impact(e): # create bullet impact diff --git a/Bullet.tscn b/Bullet.tscn index b85fdfe..e0b419d 100644 --- a/Bullet.tscn +++ b/Bullet.tscn @@ -15,7 +15,7 @@ input/pickable = false shapes/0/shape = SubResource( 1 ) shapes/0/transform = Matrix32( 1, 0, 0, 1, 0, 0 ) shapes/0/trigger = false -collision/layers = 2 +collision/layers = 0 collision/mask = 2 collision/margin = 0.08 script/script = ExtResource( 1 ) diff --git a/Game.tscn b/Game.tscn index e11f5f3..a0ddb05 100644 --- a/Game.tscn +++ b/Game.tscn @@ -25,7 +25,7 @@ transform/pos = Vector2( 119.085, -182.303 ) [node name="Player" parent="." instance=ExtResource( 5 )] -transform/pos = Vector2( 92.7742, 71.7896 ) +transform/pos = Vector2( 92.7742, 1023.01 ) [node name="ParallaxBackground" type="ParallaxBackground" parent="."] @@ -74,4 +74,42 @@ transform/scale = Vector2( 1.5, 1.5 ) [node name="Missile" parent="." instance=ExtResource( 8 )] +transform/pos = Vector2( -494.716, 83.0652 ) + +[node name="Missile2" parent="." instance=ExtResource( 8 )] + +transform/pos = Vector2( -298.447, 258.752 ) + +[node name="Missile3" parent="." instance=ExtResource( 8 )] + +transform/pos = Vector2( 23.9903, 342.962 ) + +[node name="Missile4" parent="." instance=ExtResource( 8 )] + +transform/pos = Vector2( 337.516, 416.822 ) + +[node name="Missile5" parent="." instance=ExtResource( 8 )] + +transform/pos = Vector2( 744.497, 386.675 ) + +[node name="Missile6" parent="." instance=ExtResource( 8 )] + +transform/pos = Vector2( 972.105, 74.6563 ) + +[node name="Missile7" parent="." instance=ExtResource( 8 )] + +transform/pos = Vector2( 920.856, -183.098 ) + +[node name="Missile8" parent="." instance=ExtResource( 8 )] + +transform/pos = Vector2( 735.453, -300.671 ) + +[node name="Missile9" parent="." instance=ExtResource( 8 )] + +transform/pos = Vector2( 346.56, -311.222 ) + +[node name="Missile1" parent="." instance=ExtResource( 8 )] + +transform/pos = Vector2( -380.718, -157.427 ) + diff --git a/Missile.gd b/Missile.gd index 8bc90b9..f7da734 100644 --- a/Missile.gd +++ b/Missile.gd @@ -27,7 +27,7 @@ func _ready(): s_seek.set_target(player) s_arrive.set_target(player) -func on_impact(e): +func on_impact(e, is_bullet): # create bullet impact var new_mi = MissileImpact.instance() @@ -37,8 +37,12 @@ func on_impact(e): new_mi.set_scale(Vector2(1.5, 1.5)) # when missile, larger effect new_mi.set_global_pos(get_collision_pos()) - # align along "hit normal, the lazy way" - new_mi.set_global_rot((-get_collision_normal()).angle()) + if not is_bullet: + # align along "hit normal, the lazy way" + new_mi.set_global_rot((-get_collision_normal()).angle()) + else: + new_mi.set_global_rot(get_global_rot()) + new_mi.rotate(deg2rad(180)) # new_bi.rotate(deg2rad(180)) @@ -53,7 +57,11 @@ func _fixed_process(delta): if is_colliding(): var e = get_collider() - on_impact(e) + var e_t = e.type() + if e_t == "Bullet": + on_impact(e, true) + elif e_t != "Missile": + on_impact(e, false) func type(): return "Missile" diff --git a/MissileImpact.gd b/MissileImpact.gd index ec2af49..1642913 100644 --- a/MissileImpact.gd +++ b/MissileImpact.gd @@ -10,7 +10,7 @@ var done = false func _ready(): set_process(true) - total_time = sprite.get_hframes() * frames_per_second + 1.5 # 4 extra seconds for particle blast + total_time = sprite.get_hframes() * frames_per_second + 0.75 # 4 extra seconds for particle blast ps.set_process(false) func _process(delta): diff --git a/MissileImpact.tscn b/MissileImpact.tscn index 337c713..933326e 100644 --- a/MissileImpact.tscn +++ b/MissileImpact.tscn @@ -17,8 +17,8 @@ hframes = 5 transform/pos = Vector2( 0.130829, -3.26887 ) transform/rot = -180.0 -config/amount = 32 -config/lifetime = 4.0 +config/amount = 8 +config/lifetime = 2.0 config/time_scale = 2.0 config/process_mode = 1 config/explosiveness = 0.1