Mdr le jeu il fonctionne plus de la même façon

This commit is contained in:
Hurlu 2020-04-05 17:34:11 +02:00
parent ca1b21e95e
commit b54e6d0233
8 changed files with 324 additions and 72 deletions

View File

@ -1,9 +1,10 @@
[gd_scene load_steps=29 format=2]
[gd_scene load_steps=30 format=2]
[ext_resource path="res://Assets/spriteset test.png" type="Texture" id=1]
[ext_resource path="res://Scripts/Player.gd" type="Script" id=2]
[ext_resource path="res://Assets/zétoile.png" type="Texture" id=3]
[ext_resource path="res://Sounds/PaintJamPickupSound.wav" type="AudioStream" id=4]
[ext_resource path="res://Assets/Patain.png" type="Texture" id=5]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 15.5015, 46.849 )
@ -243,7 +244,7 @@ parameters/Idle/blend_position = Vector2( -1.1, 0.0314158 )
parameters/Run/blend_position = Vector2( -0.0925897, 0.517895 )
[node name="ConfusionStars" type="Node2D" parent="."]
scale = Vector2( 10, 10 )
visible = false
[node name="Path2D" type="Path2D" parent="ConfusionStars"]
position = Vector2( -19.4617, -21.2425 )
@ -275,5 +276,39 @@ scale = Vector2( 1.1136, 1.2906 )
z_index = -1
texture = ExtResource( 3 )
[node name="Patins" type="Node2D" parent="."]
visible = false
[node name="Path2D" type="Path2D" parent="Patins"]
position = Vector2( -19.4617, -21.2425 )
scale = Vector2( 0.731191, 0.591658 )
curve = SubResource( 24 )
[node name="PathFollow2D" type="PathFollow2D" parent="Patins/Path2D"]
position = Vector2( 42.3056, -54.7672 )
rotation = 0.639347
offset = 68.39
rotate = false
[node name="Sprite" type="Sprite" parent="Patins/Path2D/PathFollow2D"]
position = Vector2( 0.823479, -2.89215 )
rotation = -0.639347
scale = Vector2( 1.1136, 1.2906 )
z_index = -1
texture = ExtResource( 5 )
[node name="PathFollow2D2" type="PathFollow2D" parent="Patins/Path2D"]
position = Vector2( 3.62132, -97.5903 )
rotation = 0.639347
offset = 203.97
rotate = false
[node name="Sprite" type="Sprite" parent="Patins/Path2D/PathFollow2D2"]
position = Vector2( 0.823479, -2.89215 )
rotation = -0.639347
scale = Vector2( 1.1136, 1.2906 )
z_index = -1
texture = ExtResource( 5 )
[node name="PickupPlayer" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource( 4 )

View File

@ -25,10 +25,8 @@ margin_bottom = -5.0
] instance=ExtResource( 1 )]
position = Vector2( 317.194, 221.462 )
[node name="Player2" parent="." groups=[
"player",
] instance=ExtResource( 1 )]
position = Vector2( 1593.81, 209.193 )
[node name="Player2" parent="." instance=ExtResource( 1 )]
position = Vector2( 1338.97, 220.441 )
[node name="CanvasLayer" parent="." instance=ExtResource( 4 )]
@ -55,9 +53,178 @@ position = Vector2( 1659.71, 594.146 )
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"
position = Vector2( 201.25, 408.252 )
scriptName = "res://Scripts/PaintEffects/Invisibility.gd"
[node name="Label" type="Label" parent="Clopinette"]
margin_left = -22.9116
margin_top = -44.3913
margin_right = 17.0884
margin_bottom = -30.3913
text = "Invisible"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Clopinette3" parent="." instance=ExtResource( 2 )]
position = Vector2( 201.25, 533.362 )
scriptName = "res://Scripts/PaintEffects/Invisibility.gd"
[node name="Label" type="Label" parent="Clopinette3"]
margin_left = -22.9116
margin_top = -44.3913
margin_right = 17.0884
margin_bottom = -30.3913
text = "Invisible"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Clopinette5" parent="." instance=ExtResource( 2 )]
position = Vector2( 201.25, 635.861 )
scriptName = "res://Scripts/PaintEffects/Invisibility.gd"
[node name="Label" type="Label" parent="Clopinette5"]
margin_left = -22.9116
margin_top = -44.3913
margin_right = 17.0884
margin_bottom = -30.3913
text = "Invisible"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Clopinette6" parent="." instance=ExtResource( 2 )]
position = Vector2( 202.757, 735.346 )
scriptName = "res://Scripts/PaintEffects/Invisibility.gd"
[node name="Label" type="Label" parent="Clopinette6"]
margin_left = -22.9116
margin_top = -44.3913
margin_right = 17.0884
margin_bottom = -30.3913
text = "Invisible"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Clopinette2" parent="." instance=ExtResource( 2 )]
position = Vector2( 259.961, 538.562 )
position = Vector2( 1454.23, 429.732 )
scriptName = "res://Scripts/PaintEffects/Upscale.gd"
[node name="Label" type="Label" parent="Clopinette2"]
margin_left = -22.9116
margin_top = -44.3913
margin_right = 17.0884
margin_bottom = -30.3913
text = "Gigantisme"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Clopinette10" parent="." instance=ExtResource( 2 )]
position = Vector2( 1455.74, 509.621 )
scriptName = "res://Scripts/PaintEffects/Upscale.gd"
[node name="Label" type="Label" parent="Clopinette10"]
margin_left = -22.9116
margin_top = -44.3913
margin_right = 17.0884
margin_bottom = -30.3913
text = "Gigantisme"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Clopinette11" parent="." instance=ExtResource( 2 )]
position = Vector2( 1460.26, 589.511 )
scriptName = "res://Scripts/PaintEffects/Upscale.gd"
[node name="Label" type="Label" parent="Clopinette11"]
margin_left = -22.9116
margin_top = -44.3913
margin_right = 17.0884
margin_bottom = -30.3913
text = "Gigantisme"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Clopinette12" parent="." instance=ExtResource( 2 )]
position = Vector2( 1464.78, 675.429 )
scriptName = "res://Scripts/PaintEffects/Upscale.gd"
[node name="Label" type="Label" parent="Clopinette12"]
margin_left = -22.9116
margin_top = -44.3913
margin_right = 17.0884
margin_bottom = -30.3913
text = "Gigantisme"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Clopinette4" parent="." instance=ExtResource( 2 )]
position = Vector2( 733.945, 418.276 )
scriptName = "res://Scripts/PaintEffects/Slippery.gd"
[node name="Label" type="Label" parent="Clopinette4"]
margin_left = -22.9116
margin_top = -44.3913
margin_right = 17.0884
margin_bottom = -30.3913
text = "Patinage"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Clopinette7" parent="." instance=ExtResource( 2 )]
position = Vector2( 736.96, 525.298 )
scriptName = "res://Scripts/PaintEffects/Slippery.gd"
[node name="Label" type="Label" parent="Clopinette7"]
margin_left = -22.9116
margin_top = -44.3913
margin_right = 17.0884
margin_bottom = -30.3913
text = "Patinage"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Clopinette8" parent="." instance=ExtResource( 2 )]
position = Vector2( 742.99, 638.348 )
scriptName = "res://Scripts/PaintEffects/Slippery.gd"
[node name="Label" type="Label" parent="Clopinette8"]
margin_left = -22.9116
margin_top = -44.3913
margin_right = 17.0884
margin_bottom = -30.3913
text = "Patinage"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="Clopinette9" parent="." instance=ExtResource( 2 )]
position = Vector2( 746.004, 716.73 )
scriptName = "res://Scripts/PaintEffects/Slippery.gd"
[node name="Label" type="Label" parent="Clopinette9"]
margin_left = -22.9116
margin_top = -44.3913
margin_right = 17.0884
margin_bottom = -30.3913
text = "Patinage"
__meta__ = {
"_edit_use_anchors_": false
}
[node name="DebugLabel" type="Label" parent="."]
margin_left = 701.0
margin_top = 52.0
margin_right = 1289.0
margin_bottom = 264.0
__meta__ = {
"_edit_use_anchors_": false
}

View File

@ -2,16 +2,13 @@ extends Node
export var Duration = 7.5
func ConfusionRoutine(player, delta):
player.get_node("ConfusionStars").visible = true
var tex = load("res://Assets/zétoile.png")
player.get_node("ConfusionStars/Path2D/PathFollow2D/Sprite").texture = tex
player.get_node("ConfusionStars/Path2D/PathFollow2D2/Sprite").texture = tex
func ConfusionRoutine(player, delta):
var elapsed = delta
var inputs = player.baseInputs + []
inputs.shuffle()
player.inputs = inputs
while elapsed < Duration:
player.get_node("ConfusionStars").visible = true
elapsed += yield()
player.inputs = player.baseInputs
player.get_node("ConfusionStars").visible = false

View File

@ -13,18 +13,17 @@ func AlmostFadeOutRoutine(player, delta):
var elapsed = delta
var origin = sprite.get_modulate().a
while sprite.self_modulate.a > FadeOutValue:
var a = lerp(origin, FadeOutValue, elapsed / FadeOutTime)
sprite.self_modulate = Color(1,1,1, a)
player.ALPHA_FACTORS.append(lerp(1, FadeOutValue, elapsed / FadeOutTime))
elapsed += yield()
elapsed -= FadeOutTime;
while elapsed < InvisTime:
player.ALPHA_FACTORS.append(FadeOutValue)
elapsed += yield()
elapsed -= InvisTime;
while sprite.self_modulate.a < origin:
var a = lerp(FadeOutValue, origin, elapsed / FadeInTime)
sprite.self_modulate = Color(1,1,1, a)
player.ALPHA_FACTORS.append(lerp(FadeOutValue, 1, elapsed / FadeInTime))
elapsed += yield()

View File

@ -4,28 +4,19 @@ extends Node
export var SlipperyTime = 7.5
#How much less friction should the player have
export var FrictionFactor = 20
export var FrictionFactor = 1.0 / 20.0
export var SpeedFactor = 3
func SlipperyRoutine(player, delta):
var elapsed = delta
player.get_node("ConfusionStars").visible = true
var tex = load("res://Assets/Patain.png")
player.get_node("ConfusionStars/Path2D/PathFollow2D/Sprite").texture = tex
player.get_node("ConfusionStars/Path2D/PathFollow2D2/Sprite").texture = tex
var originalFriction = player.FRICTION
var originalSpeed = player.MAX_SPEED
player.FRICTION /= FrictionFactor
player.MAX_SPEED *= SpeedFactor
func SlipperyRoutine(player, delta):
var elapsed = delta
while elapsed < SlipperyTime:
player.get_node("Patins").visible = true
player.FRICTION_FACTORS.append(FrictionFactor)
player.SPEED_FACTORS.append(SpeedFactor)
elapsed += yield()
player.get_node("ConfusionStars").visible = false
player.FRICTION = originalFriction
player.MAX_SPEED = originalSpeed
player.get_node("Patins").visible = false
func StartEffect(player):
var rout = SlipperyRoutine(player, 0)

View File

@ -9,14 +9,10 @@ export var GrowDownTime = 1.0
export var GrowUpFactor = 5
#How much slower should the player become
export var SlowFactor = 6
export var SlowFactor = 1.0 / 6.0
func GiantRoutine(player, delta):
var elapsed = delta
var fast_speed = player.MAX_SPEED
var slow_speed = player.MAX_SPEED / SlowFactor
var fast_acc = player.ACCELERATION
var slow_acc = player.ACCELERATION / SlowFactor
var small_scale = player.transform.get_scale()
var big_scale = player.transform.get_scale() * GrowUpFactor
var sprite = player.get_node("Sprite")
@ -24,26 +20,24 @@ func GiantRoutine(player, delta):
var conf = player.get_node("ConfusionStars")
while elapsed < GrowUpTime:
player.MAX_SPEED = lerp(fast_speed, slow_speed, elapsed / GrowUpTime)
player.ACCELERATION = lerp(fast_acc, slow_acc, elapsed / GrowUpTime)
setScale(sprite, coll, conf, lerp(small_scale, big_scale, elapsed / GrowUpTime))
player.SPEED_FACTORS.append(lerp(1, SlowFactor, elapsed / GrowUpTime))
player.ACCELERATION_FACTORS.append(lerp(1, SlowFactor, elapsed / GrowUpTime))
player.SCALE_FACTORS.append(lerp(1, GrowUpFactor, elapsed / GrowUpTime))
elapsed += yield()
elapsed -= GrowUpTime;
while elapsed < IsBigTime:
player.SPEED_FACTORS.append(SlowFactor)
player.ACCELERATION_FACTORS.append(SlowFactor)
player.SCALE_FACTORS.append(GrowUpFactor)
elapsed += yield()
elapsed -= IsBigTime;
while elapsed < GrowDownTime:
player.MAX_SPEED = lerp(slow_speed, fast_speed, elapsed / GrowDownTime)
player.ACCELERATION = lerp(slow_acc, fast_acc, elapsed / GrowDownTime)
setScale(sprite, coll, conf, lerp(big_scale, small_scale, elapsed / GrowDownTime))
player.SPEED_FACTORS.append(lerp(SlowFactor, 1, elapsed / GrowDownTime))
player.ACCELERATION_FACTORS.append(lerp(SlowFactor, 1, elapsed / GrowDownTime))
player.SCALE_FACTORS.append(lerp(GrowUpFactor, 1, elapsed / GrowDownTime))
elapsed += yield()
func setScale(sprite, coll, conf, scale):
sprite.scale = scale;
coll.scale = scale;
conf.scale = scale;
func StartEffect(player):
var rout = GiantRoutine(player, 0)

View File

@ -1,8 +1,20 @@
extends KinematicBody2D
var MAX_SPEED = 600
var ACCELERATION = 1800
var FRICTION = 2000
const MAX_SPEED = 600
const ACCELERATION = 1800
const FRICTION = 2000
var SPEED_FACTORS = []
var ACCELERATION_FACTORS = []
var FRICTION_FACTORS = []
var SCALE_FACTORS = []
var ALPHA_FACTORS = []
var empty_coroutine_frames = 0
var current_speed = MAX_SPEED
var current_acceleration = ACCELERATION
var current_friction = FRICTION
var MAX_LIFE = 30
const PICKUP_BONUS = 5
export var rota_speed = 100
@ -15,8 +27,7 @@ var fast_trail = load("res://Scene/FastPaint.tscn")
var slow_cooldown_elapsed = 5
var fast_cooldown_elapsed = 5
var follow1;
var follow2;
var pathFollows = []
var vel = Vector2.ZERO
var last_dir = Vector2.ZERO
@ -38,12 +49,19 @@ onready var animationPlayer = $AnimationPlayer
onready var animationTree = $AnimationTree
onready var animationState = animationTree.get("parameters/playback")
onready var pickupPlayer = $PickupPlayer
onready var sprite = $Sprite
onready var coll = $CollisionShape2D
onready var conf = $ConfusionStars
onready var pati = $Patins
var healthBar = null
func _ready():
get_node("ConfusionStars").visible = false
follow1 = get_node("ConfusionStars/Path2D/PathFollow2D")
follow2 = get_node("ConfusionStars/Path2D/PathFollow2D2")
coroutines = []
pathFollows.append(get_node("ConfusionStars/Path2D/PathFollow2D"))
pathFollows.append(get_node("ConfusionStars/Path2D/PathFollow2D2"))
pathFollows.append(get_node("Patins/Path2D/PathFollow2D"))
pathFollows.append(get_node("Patins/Path2D/PathFollow2D2"))
if self.name == "Player1":
healthBar = get_tree().get_nodes_in_group("healthbar")[0]
elif self.name == "Player2":
@ -87,8 +105,8 @@ func launch_fast():
world.add_child(inst)
func _process(delta):
follow1.set_offset(follow1.get_offset() + delta * rota_speed)
follow2.set_offset(follow2.get_offset() + delta * rota_speed)
for each in pathFollows:
each.set_offset(each.get_offset() + delta * rota_speed)
if (self.name == "Player1" && Input.get_action_strength("gameplay_slow") > 0) \
|| (self.name == "Player2" && Input.get_action_strength("gameplay_slow2") > 0):
@ -118,32 +136,82 @@ func get_dir():
input_vector = input_vector.normalized()
return input_vector
func setScale(scale):
sprite.scale = scale;
coll.scale = scale;
conf.scale = scale;
func setAlpha(alpha):
sprite.self_modulate = Color(1,1,1, alpha)
func array_mul(array):
var val = 1
for i in array:
val *= i
return val
func array_sum(array):
var val = 0
for i in array:
val += i
return val
func array_specsum(array):
if array.size() == 0:
return 1
var smaller = []
var bigger = []
for val in array:
smaller.append(val) if val < 1 else bigger.append(val)
smaller = array_mul(smaller)
bigger = 1 if bigger.size() == 0 else array_sum(bigger)
return smaller * bigger
func update_current():
current_speed = MAX_SPEED * array_specsum(SPEED_FACTORS)
current_acceleration = ACCELERATION * array_specsum(ACCELERATION_FACTORS)
current_friction = FRICTION * array_specsum(FRICTION_FACTORS)
setScale(Vector2.ONE * array_specsum(SCALE_FACTORS))
if SCALE_FACTORS.size() > 1:
print("FACTO == " + String(SCALE_FACTORS))
print("SCALE == " + String(Vector2.ONE * array_specsum(SCALE_FACTORS)))
setAlpha(1 * array_specsum(ALPHA_FACTORS))
func _physics_process(delta):
var input_vector = get_dir()
update_current()
if input_vector != Vector2.ZERO:
last_dir = input_vector
animationTree.set("parameters/Idle/blend_position", input_vector)
animationTree.set("parameters/Run/blend_position", input_vector)
animationState.travel("Run")
vel = vel.move_toward(input_vector * MAX_SPEED, ACCELERATION * delta)
vel = vel.move_toward(input_vector * current_speed, current_acceleration * delta)
else:
animationState.travel("Idle")
vel = vel.move_toward(Vector2.ZERO, FRICTION * delta)
vel = vel.move_toward(Vector2.ZERO, current_friction * delta)
vel = move_and_slide(vel)
func updatePaintEffects(delta):
var updated = []
for rout in coroutines:
if rout != null && rout.is_valid():
var new_rout = rout.resume(delta)
if new_rout != null && new_rout.is_valid():
updated.append(new_rout)
coroutines.remove(coroutines.find(rout))
for rout in updated:
coroutines.append(rout)
var updated = []
#if coroutines.size() == 0:
# empty_coroutine_frames += 1
#else:
# empty_coroutine_frames = 0
#if empty_coroutine_frames > 2 || coroutines.size() > 0:
ACCELERATION_FACTORS = []
FRICTION_FACTORS = []
SPEED_FACTORS = []
SCALE_FACTORS = []
ALPHA_FACTORS = []
for rout in coroutines:
if rout != null && rout.is_valid():
updated.append(rout.resume(delta))
coroutines = updated + []
func addCoroutine(routine):
pickupPlayer.play()

View File

@ -17,6 +17,7 @@ func unslow_player(victim):
func _ready():
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")
func _process(delta):