예제 #1
0
        private async Task Reset()
        {
            rigidbodyElement.IsKinematic = true; //sto motion and set kinematic (listen to our transform changes)
            rigidbodyElement.IsTrigger   = true; //set as ghost (bullets will go thru)

            Entity.Transform.Position.Y = enemyInitPositionY;

            var random = enemyRandomLocal;

            // Appearance position
            Entity.Transform.Position.X = (((float)(random.NextDouble())) * gameWidthX) - gameWidthHalfX;
            // Waiting time
            enemyLife = enemyLifeBase + (enemyLifeBase * (float)random.NextDouble());

            Entity.Transform.UpdateWorldMatrix();
            rigidbodyElement.UpdatePhysicsTransformation();

            if (playingAnimation == null || playingAnimation.Name != "Wait")
            {
                playingAnimation = animationComponent.Play("Wait");
            }

            await Script.NextFrame();

            rigidbodyElement.IsKinematic = false;
            rigidbodyElement.IsTrigger   = false;
            rigidbodyElement.Activate();
        }