Entity.CreateMoved C# (CSharp) Method

CreateMoved() public method

public CreateMoved ( Vector2 deltaPosition ) : Entity
deltaPosition Vector2
return Entity
    public Entity CreateMoved(Vector2 deltaPosition)
    {
        return new Entity()
        {
          Position = this.Position + deltaPosition,
          Appearance = this.Appearance
        };
    }

Usage Example

Esempio n. 1
0
        protected override void Update(GameTime gameTime)
        {
            float deltaTime = (float)gameTime.ElapsedGameTime.TotalSeconds;

            input.Update(deltaTime);
            if (input.Quit)
            {
                Exit();
            }

            var newPlasmas =
                (from plasma in plasmas
                 let colliders =
                     from asteroid in asteroids
                     where Vector2.Distance(plasma.Position, asteroid.Position) < 20.0f
                     select asteroid
                     where plasma.X > 50.0f &&
                     plasma.X <600.0f &&
                               plasma.Y> 50.0f &&
                     plasma.Y < 600.0f &&
                     colliders.Count() == 0
                     select plasma.CreateMoved(-Vector2.UnitY * 200.0f * deltaTime)).ToList();

            if (input.Shooting)
            {
                newPlasmas.Add(
                    new Entity(ship.Position,
                               Content.Load <Texture2D>("plasmaSmall")));
            }

            var newAsteroids =
                (from asteroid in asteroids
                 let colliders =
                     from plasma in plasmas
                     where Vector2.Distance(plasma.Position, asteroid.Position) < 20.0f
                     select plasma
                     where asteroid.X > 50.0f &&
                     asteroid.X <600.0f &&
                                 asteroid.Y> 50.0f &&
                     asteroid.Y < 300.0f &&
                     colliders.Count() == 0
                     select asteroid.CreateMoved(Vector2.UnitY * 100.0f * deltaTime)).ToList();

            Vector2 shipVelocity = input.ShipMovement * shipSpeed;
            var     newShip      = ship.CreateMoved(shipVelocity * deltaTime);

            switch (gameLogicScriptPC)
            {
            case 0:
                if (true)
                {
                    gameLogicScriptPC = 1;
                    iLine1            = 1;
                    rndNumberLine1    = randomGenerator.Next(20, 60);
                }
                else
                {
                    gameLogicScriptPC = 9;
                }
                break;

            case 1:
                if (iLine1 <= rndNumberLine1)
                {
                    gameLogicScriptPC = 2;
                }
                else
                {
                    gameLogicScriptPC = 4;
                    timeToWaitLine4   = (float)(randomGenerator.NextDouble() * 2.0 + 5.0);
                }
                break;

            case 2:
                newAsteroids.Add(
                    new Entity(new Vector2((float)(randomGenerator.NextDouble() * 500.0 + 51.0), 51.0f),
                               Content.Load <Texture2D>("asteroid")));
                gameLogicScriptPC = 3;
                timeToWaitLine3   = (float)(randomGenerator.NextDouble() * 0.2 + 0.1);
                break;

            case 3:
                timeToWaitLine3 -= deltaTime;
                if (timeToWaitLine3 > 0.0f)
                {
                    gameLogicScriptPC = 3;
                }
                else
                {
                    gameLogicScriptPC = 1;
                    iLine1++;
                }
                break;

            case 4:
                timeToWaitLine4 -= deltaTime;
                if (timeToWaitLine4 > 0.0f)
                {
                    gameLogicScriptPC = 4;
                }
                else
                {
                    gameLogicScriptPC = 5;
                    iLine5            = 1;
                    rndNumberLine5    = randomGenerator.Next(10, 20);
                }
                break;

            case 5:
                if (iLine5 <= rndNumberLine5)
                {
                    gameLogicScriptPC = 6;
                }
                else
                {
                    gameLogicScriptPC = 8;
                    timeToWaitLine8   = (float)(randomGenerator.NextDouble() * 2.0 + 5.0);
                }
                break;

            case 6:
                newAsteroids.Add(
                    new Entity(new Vector2((float)(randomGenerator.NextDouble() * 500.0 + 51.0), 51.0f),
                               Content.Load <Texture2D>("asteroid")));
                gameLogicScriptPC = 7;
                timeToWaitLine7   = (float)(randomGenerator.NextDouble() * 1.5 + 0.5);
                break;

            case 7:
                timeToWaitLine7 -= deltaTime;
                if (timeToWaitLine7 > 0)
                {
                    gameLogicScriptPC = 7;
                }
                else
                {
                    gameLogicScriptPC = 5;
                    iLine5++;
                }
                break;

            case 8:
                timeToWaitLine8 -= deltaTime;
                if (timeToWaitLine8 > 0.0f)
                {
                    gameLogicScriptPC = 8;
                }
                else
                {
                    gameLogicScriptPC = 0;
                }
                break;

            default:
                break;
            }


            // COMMIT CHANGES TO THE STATE
            plasmas   = newPlasmas;
            asteroids = newAsteroids;
            ship      = newShip;

            base.Update(gameTime);
        }
All Usage Examples Of Entity::CreateMoved