[EDIT] merged

This commit is contained in:
baldas_h 2020-04-04 15:27:26 +02:00
commit a5c2aca4d6
4 changed files with 76 additions and 13 deletions

View File

@ -1,8 +1,9 @@
[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://Assets/Placeholder.png" type="Texture" id=2]
[ext_resource path="res://Scripts/GameManager.gd" type="Script" id=3]
[ext_resource path="res://Scene/Clopinette.tscn" type="PackedScene" id=3]
[ext_resource path="res://Scripts/GameManager.gd" type="Script" id=4]
[sub_resource type="RectangleShape2D" id=1]
extents = Vector2( 15.6178, 15.7669 )
@ -28,14 +29,20 @@ shape = SubResource( 1 )
position = Vector2( 221.278, 126.847 )
[node name="GameManager" type="Node2D" parent="."]
script = ExtResource( 3 )
script = ExtResource( 4 )
[node name="SpawnPoint" type="Node2D" parent="." groups=[
"spawn_point",
]]
position = Vector2( 272.415, 35.2101 )
position = Vector2( 272.415, 34.2101 )
[node name="SpawnPoint2" type="Node2D" parent="." groups=[
"spawn_point",
]]
position = Vector2( 65.7874, 32.4304 )
[node name="Clopinette" parent="." groups=[
"bucket",
] instance=ExtResource( 3 )]
position = Vector2( 149.267, 34.1946 )
scriptName = "res://Scripts/PaintEffects/Invisibility.gd"

View File

@ -1,18 +1,19 @@
extends Node2D
var sprite;
var area;
var collider;
var sprite
var area
var collider
var loadedScript
export(String, FILE, "*.gd") var scriptName
# Called when the node enters the scene tree for the first time.
func _ready():
sprite = get_node("Sprite")
area = get_node("Area2D")
loadedScript = load(scriptName).new()
area.connect("body_entered", self, "onBodyEntered")
func onBodyEntered(body : PhysicsBody2D):
queue_free()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta):
pass
func onBodyEntered(body):
body.addCoroutine(loadedScript.StartEffect(body))
queue_free()

View File

@ -0,0 +1,34 @@
extends Node
#The time, in seconds, it should take for the character to fade to FadeOutValue
export var FadeOutTime = 2.0
export var InvisTime = 5.0
export var FadeInTime = 2.0
#The alpha value we aim for when fading out
export var FadeOutValue = 0.05
func AlmostFadeOutRoutine(player, delta):
var sprite : Sprite = player.get_node("Sprite")
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)
elapsed += yield()
elapsed -= FadeOutTime;
while elapsed < InvisTime:
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)
elapsed += yield()
func StartEffect(player):
var rout = AlmostFadeOutRoutine(player, 0)
return rout

View File

@ -8,11 +8,14 @@ const MAX_LIFE = 30
var vel = Vector2.ZERO
var curLife = MAX_LIFE
var coroutines = []
#onready var animationPlayer = $AnimationPlayer
#onready var animationTree = $AnimationTree
#onready var animationState = animationTree.get("parameters/playback")
func _process(delta):
updatePaintEffects(delta)
curLife -= delta
if curLife <= 0:
#fin du game laul
@ -40,3 +43,21 @@ func _physics_process(delta):
vel = vel.move_toward(Vector2.ZERO, FRICTION * delta)
vel = move_and_slide(vel)
func updatePaintEffects(delta):
var sprite = get_node("Sprite")
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)
func addCoroutine(routine):
coroutines.append(routine)