-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathRPGObstacle.cs
More file actions
38 lines (35 loc) · 1.36 KB
/
RPGObstacle.cs
File metadata and controls
38 lines (35 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using Godot;
namespace Game1.Core.Scripts
{
public class RPGObstacle : StaticBody2D
{
private KinematicBody2D player;
private Sprite sprite;
private float spriteHeight, spriteWidth;
[Export] public bool fade = true;
public override void _Ready()
{
player = GetTree().Root.GetNode<KinematicBody2D>("MainScene/Player");
sprite = GetNode<Sprite>("Sprite");
spriteHeight = sprite.GetRect().End.y - sprite.GetRect().Position.y;
spriteWidth = sprite.GetRect().End.x - sprite.GetRect().Position.x;
}
public override void _Process(float delta)
{
if (player.GlobalPosition.y < GlobalPosition.y && player.GlobalPosition.y > GlobalPosition.y - spriteHeight && player.GlobalPosition.x > GlobalPosition.x - spriteWidth/2 && player.GlobalPosition.x < GlobalPosition.x + spriteWidth/2)
{
sprite.ZIndex = 1;
if (fade)
{
float alpha = Mathf.Clamp(.5f + Mathf.Abs(player.GlobalPosition.x - GlobalPosition.x)/spriteWidth, 0.5f, 1.0f);
sprite.Modulate = new Color(1, 1, 1, alpha);
}
}
else
{
sprite.Modulate = new Color(1, 1, 1, 1f);
sprite.ZIndex = -1;
}
}
}
}