Beispiel #1
0
        private void Move(Enemy e)
        {
            // Direction muss umgekehrt werden ( sonst läuft er rückwärts ;) )
            Vector2 moveVector = -e.LocationBehavior.Direction;

            //
            moveVector.Normalize();
            moveVector = moveVector * (float)Main.GameTimeUpdate.ElapsedGameTime.TotalSeconds * e.Speed;

            if (e.MoveGameObject(moveVector))
            {
                e.HasMoved = true;

                // QT update
                Main.MainObject.GameManager.GameState.QuadTreeEnemies.Move(e);
            }
            else
            {
                e.HasMoved = false;
            }
        }
Beispiel #2
0
        // Laufe gerade aus
        private Vector2 Move(Enemy e)
        {
            // Direction - muss umgekehrt werden sonst läuft er rückwärts
            Vector2 moveVector = -e.LocationBehavior.Direction;

            // Geschwindigkeit berechnen
            moveVector.Normalize();
            moveVector = moveVector * (float)Main.GameTimeUpdate.ElapsedGameTime.TotalSeconds * e.Speed;

            // Wieviel gelaufen wurde
            Vector2 moved = new Vector2();

            // Laufe falls möglich
            if (e.MoveGameObject(moveVector, out moved, false, true, true))
            {
                // ist gelaufen
                e.HasMoved = true;

                // QT update
                Main.MainObject.GameManager.GameState.QuadTreeEnemies.Move(e);
            }
            else
            {
                // konnte nicht laufen
                e.HasMoved = false;
            }

            return moved;
        }