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 ;
}
}
}
}
}