Просто .. Поиск ошибки при обновлении расчета, я думаю - PullRequest
0 голосов
/ 29 января 2012

У меня есть прямоугольник с процентом 1.0f
это означает 100%
поэтому в определенный момент я установил этот процент на 0,0f в другой функции с помощью щелчка мыши
и теперь, чтобы заполнить прямоугольник обратно до 100% или 1,0f, где проблема
Я вижу, как прямоугольник снова растет, но никогда не в нужное время (time_to_fill_in_seconds)
При обновлении у меня есть следующее

    private void updateInterface(GameTime gameTime)
    {
        this.newGameTime += gameTime.ElapsedGameTime.Milliseconds;

        if ((rectangle.getPercentage() == 0) &&
            (rectangle.getAddValue() == 0))
        {
            float time = 1000 * time_to_fill_in_seconds;

            // update rectangle add values
            rectangle.incrementToIn(1.0f, time);
       }

       rectangle.Update(gameTime);
    }

и внутри прямоугольника

    // Value to be added on each Update
    public void incrementToIn(float targetPercentage, float time)
    {
        setAddValue((targetPercentage - currentPercentage) / time);
    }


    public override void Update(GameTime gameTime)
    {
        if ((percentage <= 1.0f) && (addValue > 0))
        {
            if (percentage == 1.0f)
                addValue = 0;
            percentage += addValue;
        }
    }

Я уже потерял, как 2 дня, в поисках проблемы ...
Заполнение бара занимает слишком много времени
Что я делаю неправильно?

это наверное что-то очень простое ... если вы видите что-то не так, я ценю вашу помощь спасибо

1 Ответ

1 голос
/ 29 января 2012

Pheraps Я ошибаюсь, но кажется, что процент никогда не будет 0. На самом деле Update устанавливает addValue в 0, но не в процентах.
Более того, я предлагаю вам заменить тест процент == 1 с процент> = 1.

...