簡體   English   中英

Sprite spawn 加倍並導致強制關閉

[英]Sprite spawn is doubling and causing a force close

現在我有在不同時間產生的精靈。 我想弄清楚的是,為什么經過這么長時間之后,它突然開始越來越多地產生僵屍2。 就像它從一對夫婦產卵到像 3 比 6 和更多同時產卵。 我認為我的 postDelayed 會處理得很好,並使它們以恆定的速率而不是遞增。 我不確定這是否是導致它的原因,但似乎在它產生一堆僵屍 2 的時候它強制關閉。 (這可能與我將應用程序設置為 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 - else 都在那里進行設置,因此在一定時間后生成率會增加。

謝謝

編輯:好的,所以從進一步玩弄它,我相信一些 postDelayeds 是如何彼此遞增的。 我只是擁有了所有東西,但只有其中一個被注釋掉了,它重復了這么多秒,並且它連續正確地執行了它。 當我將其中的一個貼在一起時(不包括 if if-elses ),它們自己開始越來越快地發生。 知道為什么嗎?

所以如果其他人有這個問題......我想出了它是什么。 我需要兩個單獨的可運行文件,因為每次調用 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();

它像這樣工作得很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM