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