Переходы между днями
This commit is contained in:
parent
71502b0653
commit
26db1ea66d
4 changed files with 42 additions and 25 deletions
|
@ -17,20 +17,26 @@ public partial class Day : Node2D
|
|||
private Player _player;
|
||||
private ColorRect _colorRect;
|
||||
private AudioStreamPlayer _music;
|
||||
|
||||
|
||||
private double _transitionTimeout = 0;
|
||||
|
||||
// Called when the node enters the scene tree for the first time.
|
||||
public override void _Ready()
|
||||
{
|
||||
_player = (Player)FindChild("Player");
|
||||
_colorRect = (ColorRect)FindChild("ColorRect");
|
||||
_colorRect = _player.CRect;
|
||||
_music = (AudioStreamPlayer)FindChild("Music");
|
||||
_colorRect.Color = new Color(0, 0, 0, 1f);
|
||||
_music.VolumeDb = -40;
|
||||
_player.CurrentState = Player.State.Wait;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void ChangeDay()
|
||||
{
|
||||
_state = State.TransitionOut;
|
||||
}
|
||||
|
||||
// Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||
public override void _Process(double delta)
|
||||
{
|
||||
|
@ -60,7 +66,7 @@ public partial class Day : Node2D
|
|||
}
|
||||
else
|
||||
{
|
||||
GetNode<SceneManager>("/root/SceneManager").SwitchScene("Day1");
|
||||
GetNode<SceneManager>("/root/SceneManager").SwitchScene(NextScene);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -101,6 +101,8 @@ public partial class Player : CharacterBody2D
|
|||
|
||||
private PackedScene _dialogBox = GD.Load<PackedScene>("res://prefabs/Dialog.tscn");
|
||||
|
||||
public ColorRect CRect { get; private set; }
|
||||
|
||||
public override void _Ready()
|
||||
{
|
||||
_sprite = (AnimatedSprite2D)FindChild("AnimatedSprite2D");
|
||||
|
@ -111,6 +113,7 @@ public partial class Player : CharacterBody2D
|
|||
_camera = (Camera2D)FindChild("Camera2D");
|
||||
_footsteps = (AudioCollection)FindChild("Footsteps");
|
||||
_doorSounds = (AudioCollection)FindChild("DoorSounds");
|
||||
CRect = (ColorRect)FindChild("ColorRect");
|
||||
}
|
||||
|
||||
public override void _PhysicsProcess(double delta)
|
||||
|
@ -119,19 +122,7 @@ public partial class Player : CharacterBody2D
|
|||
{
|
||||
case State.Normal:
|
||||
|
||||
if (_camera.Offset != _cameraDefaultPosition)
|
||||
{
|
||||
if (_currentCameraTransitionTime < CameraTransitionTime)
|
||||
{
|
||||
_camera.Offset = _cameraChatLogPosition.Lerp(_cameraDefaultPosition,
|
||||
(float)(_currentCameraTransitionTime * 1 / CameraTransitionTime));
|
||||
_currentCameraTransitionTime += delta;
|
||||
}
|
||||
else
|
||||
{
|
||||
_currentCameraTransitionTime = 0;
|
||||
}
|
||||
}
|
||||
HideChatLog(delta);
|
||||
|
||||
Vector2 velocity = Velocity;
|
||||
|
||||
|
@ -179,12 +170,30 @@ public partial class Player : CharacterBody2D
|
|||
ShowChatLog(delta);
|
||||
break;
|
||||
case State.Wait:
|
||||
_camera.Offset = _cameraDefaultPosition;
|
||||
break;
|
||||
default:
|
||||
throw new ArgumentOutOfRangeException();
|
||||
}
|
||||
}
|
||||
|
||||
private void HideChatLog(double delta)
|
||||
{
|
||||
if (_camera.Offset != _cameraDefaultPosition)
|
||||
{
|
||||
if (_currentCameraTransitionTime < CameraTransitionTime)
|
||||
{
|
||||
_camera.Offset = _cameraChatLogPosition.Lerp(_cameraDefaultPosition,
|
||||
(float)(_currentCameraTransitionTime * 1 / CameraTransitionTime));
|
||||
_currentCameraTransitionTime += delta;
|
||||
}
|
||||
else
|
||||
{
|
||||
_currentCameraTransitionTime = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void ShowChatLog(double delta)
|
||||
{
|
||||
if (_camera.Offset != _cameraChatLogPosition)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue