@Override public Scene onCreateScene() { this.mEngine.registerUpdateHandler(new FPSLogger()); final Scene scene = new Scene(); scene.setBackground(new Background(0, 0, 0)); for (int i = 0; i < COUNT; i++) { final float tension = MathUtils.random(-0.5f, 0.5f); this.addRectangleWithTension(scene, tension, MathUtils.random(0, DURATION * 2f)); } return scene; }
public static final <T> T random(final List<T> pList) { return pList.get(MathUtils.random(0, pList.size() - 1)); }
@Override protected Bird onAllocatePoolItem() { Log.e("GAME", "NewSmallLeft"); return new SimpleBirdL( background.getWidth(), MathUtils.random(0, 200), BirdType.SIMPLE_SMALL_LEFT); }
@Override protected Bird onAllocatePoolItem() { Log.e("GAME", "NewSmallRight"); return new SimpleBirdR( -BirdsSizes.smallBirdWidth, MathUtils.random(0, 200), BirdType.SIMPLE_SMALL_RIGHT); }
@Override protected void onManagedUpdate(float pSecondsElapsed) { if (score > record) record = score; FPScounter++; if (FPScounter == FPS) { FPScounter = 0; timeLeft--; timeText.setText(String.valueOf(timeLeft)); FPScounter = 0; } if (timeLeft == 0) this.onBackKeyPressed(); int bigBird = MathUtils.random(0, 800); int smallBird = MathUtils.random(0, 1000); for (int i = 0; i < plumageArray.size(); i++) { plumageArray.get(i).lifetime -= pSecondsElapsed; if (plumageArray.get(i).lifetime <= 0) { plumageArray.get(i).detachSelf(); plumageArray.get(i).dispose(); plumageArray.remove(plumageArray.get(i)); } } if (birdArray.size() < maxBirdCount) { if (bigBird == 1 || bigBird == 2) { Log.w("GAME", "addBigRight"); birdArray.add( GetNewtBird( bigRightBirdPool, -BirdsSizes.bigBirdWidth, MathUtils.random(0, 200), BirdsSizes.bigBirdDuration)); getChildByIndex(0).attachChild(birdArray.getLast()); } else if (bigBird == 3 || bigBird == 4) { Log.w("GAME", "addBigLeft"); birdArray.add( GetNewtBird( bigLeftBirdPool, background.getWidth(), MathUtils.random(0, 200), BirdsSizes.bigBirdDuration)); getChildByIndex(0).attachChild(birdArray.getLast()); } if (smallBird == 1 || smallBird == 2) { Log.w("GAME", "addSmallRight"); birdArray.add( GetNewtBird( smallRightBirdPool, -BirdsSizes.smallBirdWidth, MathUtils.random(0, 200), BirdsSizes.smallBirdDuration)); getChildByIndex(0).attachChild(birdArray.getLast()); } else if (smallBird == 3 || smallBird == 4) { Log.w("GAME", "addSmallLeft"); birdArray.add( GetNewtBird( smallLeftBirdPool, background.getWidth(), MathUtils.random(0, 200), BirdsSizes.smallBirdDuration)); getChildByIndex(0).attachChild(birdArray.getLast()); } } for (int i = 0; i < birdArray.size(); i++) { if ((birdArray.get(i).getX() >= background.getWidth() && birdArray.get(i).currentDirection == DIRECTIONS.RIGHT) || (birdArray.get(i).getX() <= -BirdsSizes.bigBirdWidth && birdArray.get(i).currentType == BirdType.SIMPLE_BIG_LEFT)) { AddToPool(i); } else if ((birdArray.get(i).getX() <= -BirdsSizes.smallBirdWidth && birdArray.get(i).currentType == BirdType.SIMPLE_SMALL_LEFT)) { AddToPool(i); } } super.onManagedUpdate(pSecondsElapsed); }
@Override public void onLoadScene() { // Load the menu resources ResourceManager.loadMenuResources(); // Create the background BackgroundSprite = new Sprite( ResourceManager.getInstance().cameraWidth / 2f, ResourceManager.getInstance().cameraHeight / 2f, ResourceManager.menuBackgroundTextureRegion, ResourceManager.getInstance().engine.getVertexBufferObjectManager()); BackgroundSprite.setScaleX(ResourceManager.getInstance().cameraWidth); BackgroundSprite.setScaleY(ResourceManager.getInstance().cameraHeight / 480f); BackgroundSprite.setZIndex(-5000); this.attachChild(BackgroundSprite); // Create clouds that move from one side of the screen to the other, and repeat. CloudSprites = new Sprite[20]; for (Sprite curCloudSprite : CloudSprites) { curCloudSprite = new Sprite( MathUtils.random( -(this.getWidth() * this.getScaleX()) / 2, ResourceManager.getInstance().cameraWidth + (this.getWidth() * this.getScaleX()) / 2), MathUtils.random( -(this.getHeight() * this.getScaleY()) / 2, ResourceManager.getInstance().cameraHeight + (this.getHeight() * this.getScaleY()) / 2), ResourceManager.cloudTextureRegion, ResourceManager.getInstance().engine.getVertexBufferObjectManager()) { private float XSpeed = MathUtils.random(0.2f, 2f); private boolean initialized = false; @Override protected void onManagedUpdate(final float pSecondsElapsed) { super.onManagedUpdate(pSecondsElapsed); if (!initialized) { initialized = true; this.setScale(XSpeed / 2); this.setZIndex(-4000 + Math.round(XSpeed * 1000f)); MainMenu.getInstance().sortChildren(); } if (this.getX() < -(this.getWidth() * this.getScaleX()) / 2) { XSpeed = MathUtils.random(0.2f, 2f); this.setScale(XSpeed / 2); this.setPosition( ResourceManager.getInstance().cameraWidth + (this.getWidth() * this.getScaleX()) / 2, MathUtils.random( -(this.getHeight() * this.getScaleY()) / 2, ResourceManager.getInstance().cameraHeight + (this.getHeight() * this.getScaleY()) / 2)); this.setZIndex(-4000 + Math.round(XSpeed * 1000f)); MainMenu.getInstance().sortChildren(); } this.setPosition(this.getX() - (XSpeed * (pSecondsElapsed / 0.016666f)), this.getY()); } }; this.attachChild(curCloudSprite); } // Create a Play button. Notice that the Game scenes, unlike menus, are not referred to in a // static way. PlayButton = new ButtonSprite( (ResourceManager.getInstance().cameraWidth - ResourceManager.buttonTiledTextureRegion.getTextureRegion(0).getWidth()) / 2f, (ResourceManager.getInstance().cameraHeight - ResourceManager.buttonTiledTextureRegion.getTextureRegion(0).getHeight()) * (1f / 3f), ResourceManager.buttonTiledTextureRegion.getTextureRegion(0), ResourceManager.buttonTiledTextureRegion.getTextureRegion(1), ResourceManager.getInstance().engine.getVertexBufferObjectManager()); PlayButtonText = new Text( 0, 0, ResourceManager.fontDefault32Bold, "PLAY", ResourceManager.getInstance().engine.getVertexBufferObjectManager()); PlayButtonText.setPosition((PlayButton.getWidth()) / 2, (PlayButton.getHeight()) / 2); PlayButton.attachChild(PlayButtonText); this.attachChild(PlayButton); PlayButton.setOnClickListener( new OnClickListener() { @Override public void onClick( ButtonSprite pButtonSprite, float pTouchAreaLocalX, float pTouchAreaLocalY) { // Create a new GameLevel and show it using the SceneManager. And play a click. SceneManager.getInstance().showScene(new GameLevel()); ResourceManager.clickSound.play(); } }); this.registerTouchArea(PlayButton); // Create an Option button. Notice that the SceneManager is being told to not pause the scene // while the OptionsLayer is open. OptionsButton = new ButtonSprite( PlayButton.getX() + PlayButton.getWidth(), PlayButton.getY(), ResourceManager.buttonTiledTextureRegion.getTextureRegion(0), ResourceManager.buttonTiledTextureRegion.getTextureRegion(1), ResourceManager.getInstance().engine.getVertexBufferObjectManager()); OptionsButtonText = new Text( 0, 0, ResourceManager.fontDefault32Bold, "OPTIONS", ResourceManager.getInstance().engine.getVertexBufferObjectManager()); OptionsButtonText.setPosition((OptionsButton.getWidth()) / 2, (OptionsButton.getHeight()) / 2); OptionsButton.attachChild(OptionsButtonText); this.attachChild(OptionsButton); OptionsButton.setOnClickListener( new OnClickListener() { @Override public void onClick( ButtonSprite pButtonSprite, float pTouchAreaLocalX, float pTouchAreaLocalY) { // Show the OptionsLayer and play a click. SceneManager.getInstance().showOptionsLayer(false); ResourceManager.clickSound.play(); } }); this.registerTouchArea(OptionsButton); // Create a title TitleText = new Text( 0, 0, ResourceManager.fontDefault72Bold, "HAPPY BIRDS", ResourceManager.getInstance().engine.getVertexBufferObjectManager()); TitleText.setPosition( (ResourceManager.getInstance().cameraWidth) / 2, (ResourceManager.getInstance().cameraHeight * 2) / 3f); TitleText.setColor(0.153f, 0.290f, 0.455f); this.attachChild(TitleText); }