Add new cool light beam for the flashlight

Co-authored-by: Евгений Титаренко <frundle@teasanctuary.ru>
This commit is contained in:
Иван Кузьменко 2023-08-16 00:13:37 +03:00
parent 3832a05c1b
commit f307a7ef00
20 changed files with 230 additions and 68 deletions

View file

@ -1,52 +1,37 @@
using Godot;
using System;
public partial class Player : CharacterBody2D
{
[Export] public Node2D FlashlightUI;
[Export] public Node2D FlashlightWorld;
[Export] public const float Speed = 50.0f;
[Export] public const float Speed = 50.0f;
protected AnimatedSprite2D Sprite;
protected AnimatedSprite2D Sprite;
public override void _Ready()
{
base._Ready();
public override void _Ready()
{
base._Ready();
Sprite = (AnimatedSprite2D)FindChild("AnimatedSprite2D");
}
Sprite = (AnimatedSprite2D)FindChild("AnimatedSprite2D");
}
public override void _PhysicsProcess(double delta)
{
Vector2 velocity = Velocity;
public override void _PhysicsProcess(double delta)
{
Vector2 velocity = Velocity;
// Get the input direction and handle the movement/deceleration.
// As good practice, you should replace UI actions with custom gameplay actions.
Vector2 direction = Input.GetVector("ui_left", "ui_right", "ui_up", "ui_down");
if (direction != Vector2.Zero)
{
velocity.X = direction.X * Speed;
velocity.Y = direction.Y * Speed;
}
else
{
velocity.X = Mathf.MoveToward(Velocity.X, 0, Speed);
velocity.Y = Mathf.MoveToward(Velocity.Y, 0, Speed);
}
// Get the input direction and handle the movement/deceleration.
// As good practice, you should replace UI actions with custom gameplay actions.
Vector2 direction = Input.GetVector("ui_left", "ui_right", "ui_up", "ui_down");
if (direction != Vector2.Zero)
{
velocity.X = direction.X * Speed;
velocity.Y = direction.Y * Speed;
}
else
{
velocity.X = Mathf.MoveToward(Velocity.X, 0, Speed);
velocity.Y = Mathf.MoveToward(Velocity.Y, 0, Speed);
}
Velocity = velocity;
MoveAndSlide();
}
public override void _Input(InputEvent @event)
{
base._Input(@event);
if (@event is InputEventMouseMotion eventMouseMotion)
{
FlashlightUI.Position = eventMouseMotion.Position;
FlashlightWorld.Position = eventMouseMotion.Position - new Vector2(128F, 96F);
}
}
}
Velocity = velocity;
MoveAndSlide();
}
}