/** Draws the tank, bullets, planes, and background to the provided Canvas. */ private void doDraw(Canvas canvas) { // draw some background canvas.drawBitmap(mBackgroundImage, 0, 0, null); /* Paint mPaint = new Paint(); mPaint.setColor(0xFF94B0FF); canvas.drawRect(0, 0, canvas.getWidth(), canvas.getHeight(), mPaint); */ // draw the aircrafts for (Iterator it = aircrafts.iterator(); it.hasNext(); ) { FunctionalAircraft a = (FunctionalAircraft) it.next(); if (a != null) a.draw(canvas); } // draw the bullets for (Iterator it = bullets.iterator(); it.hasNext(); ) { FunctionalBullet b = (FunctionalBullet) it.next(); if (b != null) b.draw(canvas); } // Draw the tank tank.draw(canvas); // Hud draw hud.draw(canvas); }
/** * Figures the lander state (x, y, fuel, ...) based on the passage of realtime. Does not * invalidate(). Called at the start of draw(). Detects the end-of-game and sets the UI to the * next state. */ private void updatePhysics(long timer) { timer = (long) (timer); // adjust the overall speed // Log.i("update", "fisicacaaa"); tank.update(timer); FunctionalBullet b; int i = 0; while (!bullets.isEmpty() && bullets.size() > i) { b = bullets.get(i); if (b.isOver()) bullets.remove(i); else { b.update(timer); i++; } } FunctionalAircraft a; i = 0; while (!aircrafts.isEmpty() && aircrafts.size() > i) { a = aircrafts.get(i); if (a.isOver()) aircrafts.remove(i); else { a.update(timer); //// int j = 0; while (j < bullets.size()) { b = bullets.get(j); if (a.isFlying() && b.isFlying()) if (a.impactDetected(b)) { hud.addImpact(); a.setImpact(); b.setImpact(); aircrafts.add(new FunctionalAircraft()); // Vibrate for 300 milliseconds vibrator.vibrate(100); } j++; } i++; } } newaircraftimer += timer; if (newaircraftimer > 3000) { aircrafts.add(new FunctionalAircraft()); newaircraftimer = 0; } // hud.update(timer); }