public void Update(float seconds, IModelObserver observer)
        {
            if (IsGameOver () == false) {
                player.Update (seconds);
            }

            if (player.centerModelPosition.Y - player.modelRadius < map.getRoofHeight (player.centerModelPosition.X)) {
                player.centerModelPosition.Y = map.getRoofHeight (player.centerModelPosition.X) + player.modelRadius;
                player.takeDamage ();
                observer.Collision ();
            }
            if (player.centerModelPosition.Y + player.modelRadius > map.getFloorHeight (player.centerModelPosition.X)) {
                player.centerModelPosition.Y = map.getFloorHeight (player.centerModelPosition.X) - player.modelRadius;
                player.takeDamage ();
                observer.Collision ();
            }

            for (int  i = 0; i < MAX_ENEMIES; i++) {
                if ((player.centerModelPosition - enemies [i].modelCenterPosition).Length () < player.modelRadius + enemies[i].modelRadius) {
                    player.takeDamage ();
                    observer.Collision ();
                }
            }
        }