fast trail go fast

This commit is contained in:
Hurlu 2020-04-05 15:27:24 +02:00
parent e449361e47
commit ca1b21e95e
5 changed files with 88 additions and 2 deletions

22
Scene/FastTrail.tscn Normal file
View File

@ -0,0 +1,22 @@
[gd_scene load_steps=4 format=2]
[ext_resource path="res://Assets/BigPlaceholder.png" type="Texture" id=1]
[ext_resource path="res://Scripts/FastTrail.gd" type="Script" id=2]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 88.8117, 26.2111 )
[node name="FastTrail" type="Node2D"]
rotation = -6.28319
script = ExtResource( 2 )
[node name="Sprite" type="Sprite" parent="."]
modulate = Color( 0.901961, 0, 0, 1 )
z_index = 10
texture = ExtResource( 1 )
offset = Vector2( 88, 0 )
[node name="Area2D" type="Area2D" parent="Sprite"]
[node name="CollisionShape2D" type="CollisionShape2D" parent="Sprite/Area2D"]
shape = SubResource( 1 )

View File

@ -243,6 +243,7 @@ parameters/Idle/blend_position = Vector2( -1.1, 0.0314158 )
parameters/Run/blend_position = Vector2( -0.0925897, 0.517895 ) parameters/Run/blend_position = Vector2( -0.0925897, 0.517895 )
[node name="ConfusionStars" type="Node2D" parent="."] [node name="ConfusionStars" type="Node2D" parent="."]
scale = Vector2( 10, 10 )
[node name="Path2D" type="Path2D" parent="ConfusionStars"] [node name="Path2D" type="Path2D" parent="ConfusionStars"]
position = Vector2( -19.4617, -21.2425 ) position = Vector2( -19.4617, -21.2425 )

View File

@ -1,6 +1,7 @@
[gd_scene load_steps=5 format=2] [gd_scene load_steps=6 format=2]
[ext_resource path="res://Scene/Player.tscn" type="PackedScene" id=1] [ext_resource path="res://Scene/Player.tscn" type="PackedScene" id=1]
[ext_resource path="res://Scene/Clopinette.tscn" type="PackedScene" id=2]
[ext_resource path="res://Scene/EndGameWindow.tscn" type="PackedScene" id=4] [ext_resource path="res://Scene/EndGameWindow.tscn" type="PackedScene" id=4]
[ext_resource path="res://Scene/GameManager.tscn" type="PackedScene" id=5] [ext_resource path="res://Scene/GameManager.tscn" type="PackedScene" id=5]
[ext_resource path="res://Scene/HealthBar.tscn" type="PackedScene" id=6] [ext_resource path="res://Scene/HealthBar.tscn" type="PackedScene" id=6]
@ -52,3 +53,11 @@ position = Vector2( 1659.71, 594.146 )
"spawn_point", "spawn_point",
]] ]]
position = Vector2( 340.904, 670.119 ) position = Vector2( 340.904, 670.119 )
[node name="Clopinette" parent="." instance=ExtResource( 2 )]
position = Vector2( 265.689, 415.412 )
scriptName = "res://Scripts/PaintEffects/Upscale.gd"
[node name="Clopinette2" parent="." instance=ExtResource( 2 )]
position = Vector2( 259.961, 538.562 )
scriptName = "res://Scripts/PaintEffects/Slippery.gd"

29
Scripts/FastTrail.gd Normal file
View File

@ -0,0 +1,29 @@
extends Node
var fastFactor
var lifetime = 5
var elapsed = 0
var sprite
func slow_player(victim):
if victim.is_in_group("Player"):
victim.MAX_SPEED *= fastFactor
victim.ACCELERATION *= fastFactor
func unslow_player(victim):
if victim.is_in_group("Player"):
victim.MAX_SPEED /= fastFactor
victim.ACCELERATION /= fastFactor
# Called when the node enters the scene tree for the first time.
func _ready():
sprite = get_node("Sprite")
get_node("Sprite/Area2D").connect("body_entered", self, "slow_player")
get_node("Sprite/Area2D").connect("body_exited", self, "unslow_player")
func _process(delta):
elapsed += delta
if elapsed >= lifetime * 0.7:
sprite.self_modulate = Color(1,1,1,lerp(1, 0, (elapsed - lifetime * 0.7) / (lifetime * 0.3)))
if elapsed >= lifetime:
queue_free()

View File

@ -7,10 +7,13 @@ var MAX_LIFE = 30
const PICKUP_BONUS = 5 const PICKUP_BONUS = 5
export var rota_speed = 100 export var rota_speed = 100
export var slow_cooldown = 5 export var slow_cooldown = 5
export var fast_cooldown = 5
var slow_trail = load("res://Scene/SlowPaint.tscn") var slow_trail = load("res://Scene/SlowPaint.tscn")
var fast_trail = load("res://Scene/FastPaint.tscn")
var slow_cooldown_elapsed = 5 var slow_cooldown_elapsed = 5
var fast_cooldown_elapsed = 5
var follow1; var follow1;
var follow2; var follow2;
@ -65,6 +68,24 @@ func launch_slow():
inst.slowFactor = 2 inst.slowFactor = 2
world.add_child(inst) world.add_child(inst)
func launch_fast():
if fast_cooldown_elapsed < fast_cooldown:
return
fast_cooldown_elapsed = 0
var world = get_parent()
var inst = load("res://Scene/FastTrail.tscn").instance()
var dir = get_dir()
if dir == Vector2.ZERO:
dir = (last_dir if last_dir != Vector2.ZERO else Vector2.DOWN)
var angle = acos(dir.dot(Vector2.RIGHT))
var modifier = 0
if dir.y < 0:
modifier += angle * -2
inst.transform = inst.transform.rotated(angle + modifier)
inst.position = self.position
inst.fastFactor = 2
world.add_child(inst)
func _process(delta): func _process(delta):
follow1.set_offset(follow1.get_offset() + delta * rota_speed) follow1.set_offset(follow1.get_offset() + delta * rota_speed)
follow2.set_offset(follow2.get_offset() + delta * rota_speed) follow2.set_offset(follow2.get_offset() + delta * rota_speed)
@ -73,6 +94,10 @@ func _process(delta):
|| (self.name == "Player2" && Input.get_action_strength("gameplay_slow2") > 0): || (self.name == "Player2" && Input.get_action_strength("gameplay_slow2") > 0):
launch_slow() launch_slow()
if (self.name == "Player1" && Input.get_action_strength("gameplay_fast") > 0) \
|| (self.name == "Player2" && Input.get_action_strength("gameplay_fast2") > 0):
launch_fast()
updatePaintEffects(delta) updatePaintEffects(delta)
curLife -= delta curLife -= delta
slow_cooldown_elapsed += delta slow_cooldown_elapsed += delta