Спаун спавн удваивается и вызывает близкую силу - PullRequest
0 голосов
/ 26 мая 2011

Прямо сейчас у меня есть спрайты, которые появляются в разное время. То, что я пытаюсь выяснить, это то, почему после стольких временных интервалов он внезапно начинает порождать зомби2 в больших и больших количествах. Как будто это происходит от пары, порождающей 3 до 6 и более, порождаемой в одно и то же время. Я думал, что мой postDelayed справился бы с этим просто отлично и сделал бы их с постоянной скоростью, не увеличивая их. Я не уверен, является ли это причиной этого или нет, но кажется, что в то время, когда он порождает кучу зомби, его сила закрывается. (Может ли это быть связано с тем, что у меня установлено приложение на 1.5? Должно ли оно быть настроено на что-то более высокое, как я видел у других?) Любая помощь будет оценена. Вот некоторый код, который запускает спавны.

    @Override
    public void run() {
        long  elapsed;
        elapsed=System.currentTimeMillis()-startTime;


        if (elapsed> 5000)
        {
            normZombie.add(createSprite(R.drawable.zombie1));
            normZomb.postDelayed(this, 3000);
        }
        else if (elapsed >15000)
        {
            normZombie.add(createSprite(R.drawable.zombie1));
            normZomb.postDelayed(this, 1500);
        }
        else
        {
            normZombie.add(createSprite(R.drawable.zombie1));
            normZomb.postDelayed(this, 1000);
        }

        if (elapsed >= 10000)
        {
            fastZombie.add(createZombie2(R.drawable.zombie2));
            fastZomb.postDelayed(this, 10000);
        }
//      else if(elapsed >25000)
//      {
//          fastZombie.add(createZombie2(R.drawable.zombie2));
//          fastZomb.postDelayed(this, 5000);
//      }
//      else if(elapsed >40000)
//      {
//          fastZombie.add(createZombie2(R.drawable.zombie2));
//          fastZomb.postDelayed(this, 3000);
//      }


    }

Раздел, который закомментирован, я вынул, потому что думал, что в нем есть часть. Я действительно думаю, что это ускоряет это все же. Все if - это все, что нужно для его настройки, поэтому через некоторое время скорость появления увеличивается.

Спасибо

РЕДАКТИРОВАТЬ: Хорошо, так что от дальнейшей игры с этим я считаю, что кое-как postDelayeds увеличиваются друг от друга. У меня просто было все, но только один из них закомментирован, и это повторялось так много секунд, и он делал это правильно непрерывно. Когда я пишу по одному из каждого вместе (не считая if-elses), они начинают происходить все быстрее и быстрее. Есть идеи почему?

1 Ответ

0 голосов
/ 27 мая 2011

Так что, если у кого-то еще есть эта проблема ... Я понял, что это было.Мне нужно было два отдельных запускаемых, потому что некоторые, как они увеличивались друг от друга каждый раз, когда вызывался 1.Вот как выглядит код сейчас.

Runnable norm = new Runnable(){

            @Override
            public void run() {
                normZombie.add(createSprite(R.drawable.zombie1));
                normZomb.postDelayed(this, 3000);

            }

           };

                 Runnable fast = new Runnable(){

                    @Override
                    public void run() {

                        fastZombie.add(createZombie2(R.drawable.zombie2));
                        fastZomb.postDelayed(this, 10000);
                    }

                };
                norm.run();
                fast.run();

Это работает хорошо, как это.

...