Sprite spawn加倍并导致力量关闭

时间:2011-05-26 19:16:20

标签: java android sprite

现在我有精灵在不同的时间产卵。我想弄清楚的是为什么经过这么多时间后它会突然开始以更大和更大的数量产生zombie2。就像它从一对夫妇产卵到3比6以及同时产卵更多。我以为我的postDelayed会处理得很好并且以恒定的速率使它们不增加。我不确定这是否是造成它的原因,但似乎它产生了一堆zombie2的时候,它会强行关闭。 (这可能与我将应用程序设置为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-elses都可以设置它,所以在一定的时间后产卵率会增加。

由于

编辑:好的,因此从进一步玩弄它我相信postDelayeds如何增加彼此。我只是拥有了所有东西,但只有其中一个被评论出来并重复,因为它应该这么多秒,并且它连续正确地做到了。当我将其中一个发布在一起(不包括if if-elses)时,开始就会越来越快地发生。知道为什么吗?

1 个答案:

答案 0 :(得分:0)

所以,如果其他人有这个问题......我想出它是什么。我需要两个单独的runnable,因为每次调用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();

它的效果很好。