hop les trails fdp

This commit is contained in:
Hurlu 2020-04-05 18:11:40 +02:00
parent e02127522f
commit 8c5ab22d90
6 changed files with 58 additions and 16 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 236 B

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -1,7 +1,8 @@
[gd_scene load_steps=4 format=2] [gd_scene load_steps=5 format=2]
[ext_resource path="res://Assets/BigPlaceholder.png" type="Texture" id=1] [ext_resource path="res://Assets/PAINT1.png" type="Texture" id=1]
[ext_resource path="res://Scripts/FastTrail.gd" type="Script" id=2] [ext_resource path="res://Scripts/FastTrail.gd" type="Script" id=2]
[ext_resource path="res://Assets/BigPlaceholder.png" type="Texture" id=3]
[sub_resource type="RectangleShape2D" id=1] [sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 88.8117, 26.2111 ) extents = Vector2( 88.8117, 26.2111 )
@ -12,6 +13,7 @@ script = ExtResource( 2 )
[node name="Sprite" type="Sprite" parent="."] [node name="Sprite" type="Sprite" parent="."]
modulate = Color( 0.901961, 0, 0, 1 ) modulate = Color( 0.901961, 0, 0, 1 )
light_mask = 64
z_index = 10 z_index = 10
texture = ExtResource( 1 ) texture = ExtResource( 1 )
offset = Vector2( 88, 0 ) offset = Vector2( 88, 0 )
@ -19,4 +21,13 @@ offset = Vector2( 88, 0 )
[node name="Area2D" type="Area2D" parent="Sprite"] [node name="Area2D" type="Area2D" parent="Sprite"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/Area2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/Area2D"]
visible = false
position = Vector2( 87, 0 )
shape = SubResource( 1 ) shape = SubResource( 1 )
[node name="Mask" type="Light2D" parent="."]
position = Vector2( 88.2346, -0.629855 )
scale = Vector2( 1, 1.2 )
texture = ExtResource( 3 )
mode = 3
range_item_cull_mask = 64

View File

@ -1,16 +1,18 @@
[gd_scene load_steps=4 format=2] [gd_scene load_steps=5 format=2]
[ext_resource path="res://Assets/BigPlaceholder.png" type="Texture" id=1] [ext_resource path="res://Assets/PAINT1.png" type="Texture" id=1]
[ext_resource path="res://Scripts/SlowTrail.gd" type="Script" id=2] [ext_resource path="res://Scripts/SlowTrail.gd" type="Script" id=2]
[ext_resource path="res://Assets/BigPlaceholder.png" type="Texture" id=3]
[sub_resource type="RectangleShape2D" id=1] [sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 88.8117, 26.2111 ) extents = Vector2( 88.8117, 26.2111 )
[node name="SlowTrail" type="Node2D"] [node name="SlowTrail" type="Node2D"]
rotation = -6.28319
script = ExtResource( 2 ) script = ExtResource( 2 )
[node name="Sprite" type="Sprite" parent="."] [node name="Sprite" type="Sprite" parent="."]
modulate = Color( 0.0392157, 0.0313726, 0.917647, 1 )
light_mask = 512
z_index = 10 z_index = 10
texture = ExtResource( 1 ) texture = ExtResource( 1 )
offset = Vector2( 88, 0 ) offset = Vector2( 88, 0 )
@ -18,4 +20,13 @@ offset = Vector2( 88, 0 )
[node name="Area2D" type="Area2D" parent="Sprite"] [node name="Area2D" type="Area2D" parent="Sprite"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/Area2D"] [node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/Area2D"]
visible = false
position = Vector2( 87, 0 )
shape = SubResource( 1 ) shape = SubResource( 1 )
[node name="Mask" type="Light2D" parent="."]
position = Vector2( 88, 0 )
scale = Vector2( 1, 1.2 )
texture = ExtResource( 3 )
mode = 3
range_item_cull_mask = 512

View File

@ -4,25 +4,33 @@ var fastFactor
var lifetime = 5 var lifetime = 5
var elapsed = 0 var elapsed = 0
var sprite var sprite
var players
onready var mask = $Mask
func slow_player(victim): func slow_player(victim):
if victim.is_in_group("Player"): if victim.is_in_group("Player"):
victim.MAX_SPEED *= fastFactor players.append(victim)
victim.ACCELERATION *= fastFactor
func unslow_player(victim): func unslow_player(victim):
if victim.is_in_group("Player"): players.remove(players.find(victim))
victim.MAX_SPEED /= fastFactor
victim.ACCELERATION /= fastFactor
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
players = []
sprite = get_node("Sprite") sprite = get_node("Sprite")
get_node("Sprite/Area2D").connect("body_entered", self, "slow_player") get_node("Sprite/Area2D").connect("body_entered", self, "slow_player")
get_node("Sprite/Area2D").connect("body_exited", self, "unslow_player") get_node("Sprite/Area2D").connect("body_exited", self, "unslow_player")
func _process(delta): func _process(delta):
elapsed += delta elapsed += delta
if mask != null:
mask.offset.x = lerp(88, 270, elapsed / 0.8)
if mask.offset.x >= 269:
mask.queue_free()
mask = null
for each in players:
each.SPEED_FACTORS.append(2)
if elapsed >= lifetime * 0.7: if elapsed >= lifetime * 0.7:
sprite.self_modulate = Color(1,1,1,lerp(1, 0, (elapsed - lifetime * 0.7) / (lifetime * 0.3))) sprite.self_modulate = Color(1,1,1,lerp(1, 0, (elapsed - lifetime * 0.7) / (lifetime * 0.3)))
if elapsed >= lifetime: if elapsed >= lifetime:

View File

@ -71,6 +71,7 @@ func _ready():
func launch_slow(): func launch_slow():
if slow_cooldown_elapsed < slow_cooldown: if slow_cooldown_elapsed < slow_cooldown:
return return
curLife -= 3
slow_cooldown_elapsed = 0 slow_cooldown_elapsed = 0
var world = get_parent() var world = get_parent()
var inst = load("res://Scene/SlowTrail.tscn").instance() var inst = load("res://Scene/SlowTrail.tscn").instance()
@ -89,6 +90,7 @@ func launch_slow():
func launch_fast(): func launch_fast():
if fast_cooldown_elapsed < fast_cooldown: if fast_cooldown_elapsed < fast_cooldown:
return return
curLife -= 3
fast_cooldown_elapsed = 0 fast_cooldown_elapsed = 0
var world = get_parent() var world = get_parent()
var inst = load("res://Scene/FastTrail.tscn").instance() var inst = load("res://Scene/FastTrail.tscn").instance()
@ -119,6 +121,7 @@ func _process(delta):
updatePaintEffects(delta) updatePaintEffects(delta)
curLife -= delta curLife -= delta
slow_cooldown_elapsed += delta slow_cooldown_elapsed += delta
fast_cooldown_elapsed += delta
if curLife <= 0: if curLife <= 0:
get_node("/root/World/GameManager").endGame() get_node("/root/World/GameManager").endGame()
healthBar.healthUpdated(curLife) healthBar.healthUpdated(curLife)

View File

@ -4,24 +4,33 @@ var slowFactor
var lifetime = 5 var lifetime = 5
var elapsed = 0 var elapsed = 0
var sprite var sprite
var players
func slow_player(victim): onready var mask = $Mask
func slow_player(victim):
if victim.is_in_group("Player"): if victim.is_in_group("Player"):
victim.MAX_SPEED /= slowFactor players.append(victim)
func unslow_player(victim): func unslow_player(victim):
if victim.is_in_group("Player"): players.remove(players.find(victim))
victim.MAX_SPEED *= slowFactor
# Called when the node enters the scene tree for the first time. # Called when the node enters the scene tree for the first time.
func _ready(): func _ready():
players = []
sprite = get_node("Sprite") sprite = get_node("Sprite")
get_node("Sprite/Area2D").connect("body_entered", self, "slow_player") get_node("Sprite/Area2D").connect("body_entered", self, "slow_player")
get_node("Sprite/Area2D").connect("body_entered", self, "slow_player")
get_node("Sprite/Area2D").connect("body_exited", self, "unslow_player") get_node("Sprite/Area2D").connect("body_exited", self, "unslow_player")
func _process(delta): func _process(delta):
elapsed += delta elapsed += delta
if mask != null:
mask.offset.x = lerp(88, 270, elapsed / 0.8)
if mask.offset.x >= 269:
mask.queue_free()
mask = null
for each in players:
each.SPEED_FACTORS.append(0.5)
if elapsed >= lifetime * 0.7: if elapsed >= lifetime * 0.7:
sprite.self_modulate = Color(1,1,1,lerp(1, 0, (elapsed - lifetime * 0.7) / (lifetime * 0.3))) sprite.self_modulate = Color(1,1,1,lerp(1, 0, (elapsed - lifetime * 0.7) / (lifetime * 0.3)))
if elapsed >= lifetime: if elapsed >= lifetime: