private void handleMovement(float deltaTime) { if (currentDirection.Y < 0) { if (moveDownTime >= totalMoveDownTime) { currentDirection.Y = 0.0f; moveDownTime = 0.0f; movementDirectionChanged = true; } moveDownTime += deltaTime; } if (!movementDirectionChanged) { return; } foreach (Entity invader in invaders) { var move = MoveEvent.Start(invader.ID, currentDirection); EventManager.Queue(move); if (invader[SpatialBehavior.Key_MovementSpeed] < 400.0f) { invader[SpatialBehavior.Key_MovementSpeed] *= 1 + speedIncreasePerDownTurn; } } if (totalMoveDownTime > 0.1f) { totalMoveDownTime /= 1 + speedIncreasePerDownTurn; } movementDirectionChanged = false; }