更新& DoDraw方法产生多个相同的sprite

时间:2015-05-05 19:10:27

标签: java android loops sprite

我正在尝试生成同一个精灵的多个版本。每个产生一个随机的速度(使用负速度和正速度之间的随机数来确定随机方向)我创建了2个for循环来加载带有新精灵的arraylist。然而,它似乎产生了5个精灵,但是它们似乎正在删除并且一遍又一遍地创建5个精灵。以下是使用的方法:

public void update(){ 
        spritesArrayList.clear(); 
        if (gameOver != true) 
        { 

        sprite.update(); 
        } 

        for (int i = 0; i < count; i++) 
        { 
        sprite = new Sprite(this); 
        spritesArrayList.add(sprite); 
        } 
        }
    /**
     * To draw the game to the screen
     * This is called from Thread, so synchronisation can be done
     */

    public void doDraw(Canvas canvas) {
         Paint textPaint = new Paint();

        canvas.drawBitmap(mBackgroundImage, 0, 0, null);
        //Draw all the objects on the canvas
        canvas.drawText("The Game ",5,25, paint);
        canvas.drawText("Score: " + hitCount, 5, 50, paint);
        canvas.drawText("Time: " +displayTime, 5, 75, paint);
        GetArrayListSize();

         //Loop for sprite creation
         for (int i = 0; i < arraySize; i++) 
         {          
            Sprite sprite = spritesArrayList.get(i);
            sprite.draw(canvas);

         }


        if (gameOver == true)
        {
            canvas.drawText("Final Score: "+finalScore, 5,100, paint);
            int width = this.getMeasuredWidth()/2;
            int height = this.getMeasuredHeight()/2;
            textPaint.setTextAlign(Align.CENTER);
            canvas.drawText("GAME OVER - PRESS BACK BUTTON TO RETURN", width, height, textPaint);
        }

    }

0 个答案:

没有答案