stride/samples/Graphics/SpriteStudioDemo/SpriteStudioDemo.Game/BeamScript.cs

36 lines
1 KiB
C#
Raw Normal View History

2021-04-19 03:49:55 +00:00
// Copyright (c) .NET Foundation and Contributors (https://dotnetfoundation.org/ & https://stride3d.net) and Silicon Studio Corp. (https://www.siliconstudio.co.jp)
2018-06-19 09:06:54 +00:00
// Distributed under the MIT license. See the LICENSE.md file in the project root for more information.
using System.Threading.Tasks;
2020-04-14 14:37:41 +00:00
using Stride.Engine;
using Stride.Physics;
2018-06-19 09:06:54 +00:00
namespace SpriteStudioDemo
{
public class BeamScript : AsyncScript
{
private const float maxWidthX = 8f + 2f;
private const float minWidthX = -8f - 2f;
private bool dead;
public void Die()
{
dead = true;
}
public override async Task Execute()
{
while(Game.IsRunning)
{
await Script.NextFrame();
if ((Entity.Transform.Position.X <= minWidthX) || (Entity.Transform.Position.X >= maxWidthX) || dead)
{
SceneSystem.SceneInstance.RootScene.Entities.Remove(Entity);
return;
}
}
}
}
}