public void doDraw(Canvas canvas) { canvas.drawColor(Color.BLACK); for (Asteroid asteroid : asteroids) { asteroid.doDraw(canvas); } crossHair.doDraw(canvas); }
private void renderObjects(float deltaTime) { GL10 gl = glGraphics.getGL(); gl.glEnable(GL10.GL_BLEND); gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA); if (manage.getArAsteroids().size() > 0) { batcher.beginBatch(Manage_Assets.gtBoxCycle); for (int i = 0; i < manage.getArAsteroids().size(); i++) { Asteroid asr = manage.getArAsteroids().get(i); batcher.drawSprite( asr.getPosition().getX(), asr.getPosition().getY(), asr.getRadious_bounds().getRadius(), asr.getRadious_bounds().getRadius() / 2 * 3, Manage_Assets.gsCycle); } batcher.endBatch(); } batcher.beginBatch(Manage_Assets.gtBoxCycle); batcher.drawSprite( manage.getPlayAsteroid().getPosition().getX(), manage.getPlayAsteroid().getPosition().getY(), manage.getPlayAsteroid().getRadious_bounds().getRadius(), manage.getPlayAsteroid().getRadious_bounds().getRadius() / 2 * 3, Manage_Assets.gsCycleBlue); batcher.endBatch(); gl.glDisable(GL10.GL_BLEND); }
/** * generates and adds asteroids * * @param count count of asteroids which should be generated * @param points the total amount of points which should be generated */ private void generateAsteroids(int count, int points) { Integer availablePoints = points; for (int i = 0; i < count; i++) { int thisPoints = generateRandomPoints(availablePoints, count - i); Asteroid asteroid = generateAsteroidByPoints(thisPoints); if (asteroid.overlapingObjects(this.objects).size() >= 1 || this.player.isWithinRange(asteroid, GENERATIONRADIUS)) { i--; } else { availablePoints -= thisPoints; this.objects.add(asteroid); } } }
public void update(long deltaTime) { if (!collided) { totalTime += deltaTime; if (Keyboard.isKeyDown(Keyboard.KEY_A)) angleDeg -= 0.025f * (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) ? 20 : (Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) || Keyboard.isKeyDown(Keyboard.KEY_RCONTROL) ? 5 : 10)); if (Keyboard.isKeyDown(Keyboard.KEY_D)) angleDeg += 0.025f * (Keyboard.isKeyDown(Keyboard.KEY_LSHIFT) || Keyboard.isKeyDown(Keyboard.KEY_RSHIFT) ? 20 : (Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) || Keyboard.isKeyDown(Keyboard.KEY_RCONTROL) ? 5 : 10)); if (angleDeg > 360) angleDeg -= 360; else if (angleDeg < 0) angleDeg = 360 - angleDeg; for (Asteroid a : ((AsteroidsModule) Project.currentModule).getAsteroids()) if (a.getArea().intersects(getArea())) collided = true; for (Bullet b : getBullets()) if (b != null && b.isFinished()) bullets.remove(b); for (Bullet b : getBullets()) if (b != null) b.update(deltaTime); } }
public void doUpdate(double elapsed) { // viewport float leftArm = direction - (X_ANGLE_WIDTH / 2); if (leftArm < 0) leftArm += 360; float rightArm = direction + (X_ANGLE_WIDTH / 2); if (rightArm > 360) rightArm -= 360; float upperArm = inclination + (Y_ANGLE_WIDTH / 2); float lowerArm = inclination - (Y_ANGLE_WIDTH / 2); ArrayList<Asteroid> toRemove = new ArrayList<>(); for (Asteroid asteroid : asteroids) { float azi = location.bearingTo(asteroid.getLocation()); if (azi < 0) azi += 360; float inc = (float) Math.atan( asteroid.getLocation().getAltitude() / location.distanceTo(asteroid.getLocation())); asteroid.x = computeX(leftArm, rightArm, azi); asteroid.y = computeY(lowerArm, upperArm, inc); asteroid.doUpdate(elapsed); if (asteroid.hits <= 0) { toRemove.add(asteroid); score += 100; } } timeRemaining -= elapsed; asteroids.removeAll(toRemove); toRemove.clear(); if (asteroids.size() < MAX_ASTEROIDS) { asteroids.add(new Asteroid(context, location)); } if (timeRemaining <= 0) { switchScreen(); } }