@Override public Scene onLoadScene() { this.mEngine.registerUpdateHandler(new FPSLogger()); final Scene scene = new Scene(); scene.setBackground(new ColorBackground(0.0f, 0.0f, 0.0f)); /* Left to right Particle System. */ { final ParticleSystem particleSystem = new ParticleSystem( new PointParticleEmitter(0, CAMERA_HEIGHT), 6, 10, 200, this.mParticleTextureRegion); particleSystem.setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE); particleSystem.addParticleInitializer(new VelocityInitializer(15, 22, -60, -90)); particleSystem.addParticleInitializer(new AccelerationInitializer(5, 15)); particleSystem.addParticleInitializer(new RotationInitializer(0.0f, 360.0f)); particleSystem.addParticleInitializer(new ColorInitializer(1.0f, 0.0f, 0.0f)); particleSystem.addParticleModifier(new ScaleModifier(0.5f, 2.0f, 0, 5)); particleSystem.addParticleModifier(new ExpireModifier(11.5f)); particleSystem.addParticleModifier(new AlphaModifier(1.0f, 0.0f, 2.5f, 3.5f)); particleSystem.addParticleModifier(new AlphaModifier(0.0f, 1.0f, 3.5f, 4.5f)); particleSystem.addParticleModifier( new ColorModifier(1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 11.5f)); particleSystem.addParticleModifier(new AlphaModifier(1.0f, 0.0f, 4.5f, 11.5f)); scene.attachChild(particleSystem); } /* Right to left Particle System. */ { final ParticleSystem particleSystem = new ParticleSystem( new PointParticleEmitter(CAMERA_WIDTH - 32, CAMERA_HEIGHT), 8, 12, 200, this.mParticleTextureRegion); particleSystem.setBlendFunction(GL10.GL_SRC_ALPHA, GL10.GL_ONE); particleSystem.addParticleInitializer(new VelocityInitializer(-15, -22, -60, -90)); particleSystem.addParticleInitializer(new AccelerationInitializer(-5, 15)); particleSystem.addParticleInitializer(new RotationInitializer(0.0f, 360.0f)); particleSystem.addParticleInitializer(new ColorInitializer(0.0f, 0.0f, 1.0f)); particleSystem.addParticleModifier(new ScaleModifier(0.5f, 2.0f, 0, 5)); particleSystem.addParticleModifier(new ExpireModifier(11.5f)); particleSystem.addParticleModifier(new AlphaModifier(1.0f, 0.0f, 2.5f, 3.5f)); particleSystem.addParticleModifier(new AlphaModifier(0.0f, 1.0f, 3.5f, 4.5f)); particleSystem.addParticleModifier( new ColorModifier(0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 11.5f)); particleSystem.addParticleModifier(new AlphaModifier(1.0f, 0.0f, 4.5f, 11.5f)); scene.attachChild(particleSystem); } return scene; }
@Override public Scene onLoadScene() { mEngine.registerUpdateHandler(new FPSLogger()); final int barX = (int) ((mCamera.getWidth() - mBarTextureRegion.getWidth()) / 2); ballX = barX; final int barY = (int) ((mCamera.getHeight() - mBarTextureRegion.getHeight()) / 2); // player = new Sprite(PlayerX, PlayerY, mPlayerTextureRegion); // player.setScale(2); bar = new Sprite(barX, barY, mBarTextureRegion); bar.setScale(4, 2.5f); ball = new Sprite(ballX, barY + bar.getHeight(), mBallTextureRegion); ball.setScale(2.5f); mMainScene = new Scene(); mMainScene.setBackground(new ColorBackground(0.09804f, 0.6274f, 0.8784f)); // mMainScene.attachChild(player); mMainScene.attachChild(bar); mMainScene.attachChild(ball); mMainScene.registerUpdateHandler(detect); // projectileLL = new LinkedList(); // projectilesToBeAdded = new LinkedList(); mMainScene.setOnSceneTouchListener(this); mPauseScene = new CameraScene(mCamera); final int x = (int) (mCamera.getWidth() / 2 - mPausedTextureRegion.getWidth() / 2); final int y = (int) (mCamera.getHeight() / 2 - mPausedTextureRegion.getHeight() / 2); final Sprite pausedSprite = new Sprite(x, y, mPausedTextureRegion); mPauseScene.attachChild(pausedSprite); mPauseScene.setBackgroundEnabled(false); mResultScene = new CameraScene(mCamera); winSprite = new Sprite(x, y, mWinTextureRegion); failSprite = new Sprite(x, y, mFailTextureRegion); mResultScene.attachChild(winSprite); mResultScene.attachChild(failSprite); mResultScene.setBackgroundEnabled(false); winSprite.setVisible(false); failSprite.setVisible(false); score = new ChangeableText(0, 0, mFont, "ButtsButtsButts"); score.setPosition(5, 5); // mCamera.getWidth() - score.getWidth() - 5, 5); score.setWidth(2000); mMainScene.attachChild(score); sensorManager = (SensorManager) this.getSystemService(this.SENSOR_SERVICE); sensorManager.registerListener( this, sensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR), 1); return mMainScene; }
public void addFace(final int pID, final float pX, final float pY) { final Scene scene = this.mEngine.getScene(); /* Create the face and add it to the scene. */ final Sprite face = new Sprite(0, 0, this.mFaceTextureRegion); face.setPosition(pX - face.getWidth() * 0.5f, pY - face.getHeight() * 0.5f); face.setUserData(pID); this.mFaces.put(pID, face); scene.registerTouchArea(face); scene.attachChild(face); }
public void create( Scene scene, int left, int top, int positionx, int positionY, TiledTextureRegion region) { position.x = positionx; position.y = positionY; int with = region.getWidth() / 2; int height = region.getHeight(); backgroud = new AnimatedSprite(left + positionx * with, top + positionY * height, region.deepCopy()); scene.attachChild(backgroud); }
public void randomType(Scene scene, int type, BaseMSprise bigs) { this.type = type; int index = type; if (index >= 10) index = index / 10; if (sprite == null) { sprite = new AnimatedSprite(backgroud.getX(), backgroud.getY(), bigs.getRegCat().deepCopy()); scene.attachChild(sprite); } update(scene); }
// This simple creates the scene // That can hold other objects too @Override public Scene onLoadScene() { mEngine.registerUpdateHandler(new FPSLogger()); // Create a scene 'myscene' object Scene myscene = new Scene(); // Create one animated Sprite AnimatedSprite banana = new AnimatedSprite(100, 100, mTiledTextureRegion); // Attach sprite to the scene myscene.attachChild(banana); // set the time in milisec for each picture banana.animate(100); return myscene; }
@Override public Scene onLoadScene() { this.mEngine.registerUpdateHandler(new FPSLogger()); scene = new Scene(); // GameManager = new SquareManager(CAMERA_WIDTH/2-CAMERA_HEIGHT/2, 0, // CAMERA_HEIGHT, CAMERA_HEIGHT, mParallaxLayerBack); // GameManager = new SquareManager( CAMERA_WIDTH - CAMERA_HEIGHT, 0, CAMERA_HEIGHT, CAMERA_HEIGHT, mParallaxLayerBack); // Sprite1.registerEntityModifier(new MoveModifier(30, 0, CAMERA_WIDTH - Sprite1.getWidth(), 0, // CAMERA_HEIGHT - Sprite1.getHeight())); scene.registerTouchArea(GameManager); GameManager.setZIndex(0); scene.attachChild(GameManager); scene.sortChildren(); scene.registerUpdateHandler( new TimerHandler( 1f / 2f, true, new ITimerCallback() { @Override public void onTimePassed(TimerHandler arg0) { if (GameManager.CanClean && GameManager.CleanListCounter == 0) { GameManager.CanMove = false; GameManager.MoveDetected = true; GameManager.CanClean = false; GameManager.CollectToRemove(); GameManager.CalculateScore(); GameManager.CleanGame(); GameManager.ListAddedOnTop.clear(); GameManager.CanMove = true; GameManager.MoveDetected = false; GameManager.CanClean = GameManager.FindCoinsidence(); } } })); return scene; }
/** * Этот метод обновляет игровое поле в соответствии с пришедшим новым пулом <b>pool</b> * * @param pool новый пул пришедший от сервера */ public void udateGrid(LetterPool pool) { // TODO:(danichbloomTOacbelter): сделать так чтобы размер fieldGrid совпадал с получаемым пулом. for (int i = 0; i < fieldGrid.getGrid().size(); i++) { LOGGER.info("Point i: " + i); Pair<Float, Float> point = fieldGrid.getGrid().get(i); if (i < pool.size()) { Letter newLetter = pool.get(i); // буква из нового пула LetterSprite localLetterSprite = point.getPointLetter(); // буква-спрайт из поля, которое на экране if (newLetter == null) { // Если в новом пуле на месте i нет буквы... LOGGER.debug("newLetter == null"); if (localLetterSprite != null) { // Если на поле в этом месте есть буква-спрайт... LOGGER.debug("localLetterSprite != null"); Letter localLetter = localLetterSprite.getLetter(); // извлекаем букву из спрайта if (localLetter != null) { // Если это оказывается не пустое место. (кстати сейчас иначе быть не // может, мы удаляем саму букву-спрайт) LOGGER.debug("deleteing localLetter: " + localLetter); gameScene.detachChild( localLetterSprite); // удаляем букву с поля, потому что пришла буква null fieldGrid.deleteLetter(localLetterSprite); // TODO(danichbloomTOacbelter): Do I remove the letter correctly? Some times when fake // opponent picks a letter, // game fails with error java.lang.IndexOutOfBoundsException: Invalid index 34, size // is 34. // FATAL EXCEPTION: GLThread } } } else { // Если в новом пуле на месте i есть буква... LOGGER.debug("newLetter != null"); if (localLetterSprite != null) { // Если на поле в этом месте есть буква-спрайт... LOGGER.debug("localLetterSprite != null"); Letter localLetter = localLetterSprite.getLetter(); // извлекаем букву из спрайта if (localLetter != null) { // Если это оказывается не пустое место. (кстати сейчас иначе быть не // может, мы удаляем саму букву-спрайт) LOGGER.debug("localLetter != null"); if (newLetter.getId() != localLetter .getId()) { // если новопришедная буква отличается от той что там должна // стоять // новая буква пришла на место старой, хотя старую никто не брал. LOGGER.warn("Substitution of a letter in the grid without picking it!"); } continue; } } else { // Если на поле в этом месте нет буквы-спрайт... LOGGER.debug("putting new letter: " + newLetter); final LetterSprite newLetterSprite = new LetterSprite( newLetter, point.getKey() - SPRITE_SIZE * SCALE / 2, point.getValue() - SPRITE_SIZE * SCALE / 2, texBase); newLetterSprite.setScale(0); newLetterSprite.registerEntityModifier( new ScaleModifier(1.5f, 0, SCALE, EaseBounceOut.getInstance())); gameScene.attachChild(newLetterSprite, 0); gameScene.registerTouchArea(newLetterSprite); point.setPointLetter(newLetterSprite); continue; } } } } }
@Override public Scene onLoadScene() { this.mEngine.registerUpdateHandler(new FPSLogger()); client = new WBClient(host, port, this); if (client.ConnectToServer()) { client.sendRegitsteringRequestForPlayerName("acbelter"); } else { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder .setMessage("Can't connect to server") .setCancelable(false) .setPositiveButton( "Exit", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { WordsBattleActivity.this.finish(); } }) .setNegativeButton( "Close", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alert = builder.create(); alert.show(); } // TODO(acbelter): Был глюк,что буквы сами появляются на сетке. // TODO(acbelter): После разблокировки экрана иногда не работает тачскрин и сцена // перезагружается. // TODO(acbelter): Причем не работают нажатия только на кнопки в сетке. // TODO(acbelter): Иногда неправильное отображение слов. // TODO(acbelter): Новые буквы не привязываются к сцене. fieldGrid = new CoordinateGrid(CAMERA_WIDTH, CAMERA_HEIGHT, SPRITE_SIZE, SCALE); SceneManager.init(this); MenuScene.load(); // TODO(acbelter):Попросить пользователя ввести имя [userName]. // затем вызвать client.sendRegitsteringRequestForPlayerName(userName); // Далее все дело проиходит в вызове реализации IWBClientDelegate в методе // UserNameSuccessfullyRegistered(), либо в любое время после. // тоесть, когда игрок зарегистрировался, дальше он уже может запрашивать игру. Можешь пока это // делать hard кодом, а можешь выдавать окошки, // которые будут спрашивать у пользователя имя оппонента. // gameScene.setBackground(new ColorBackground(10f/255f, 134f/255f, 7f/255f)); gameScene = new Scene(); gameScene.setBackground(new SpriteBackground(new Sprite(0, 0, texBase.getBackgroundTexture()))); float fieldWidth = CAMERA_WIDTH - leftOffset - rightOffset; int wordMaxLength = (int) (fieldWidth / (SPRITE_SIZE * SCALE)); // Позиции, от которых рисуются слова. float wordX = leftOffset + (fieldWidth - wordMaxLength * SPRITE_SIZE * SCALE) / 2; float opponentWordY = (upOffset - SPRITE_SIZE * SCALE) / 2; float playerWordY = CAMERA_HEIGHT - SPRITE_SIZE * SCALE - (downOffset - SPRITE_SIZE * SCALE) / 2; final WordSprite opponentWord = new WordSprite(wordMaxLength, wordX, opponentWordY, texBase.getPlaceTexture(), false); final WordSprite playerWord = new WordSprite(wordMaxLength, wordX, playerWordY, texBase.getPlaceTexture(), true); myWord = playerWord; for (Sprite spr : opponentWord.cells) { gameScene.attachChild(spr, 0); gameScene.registerTouchArea(spr); } for (Sprite spr : playerWord.cells) { gameScene.attachChild(spr, 0); gameScene.registerTouchArea(spr); } // TODO(acbelter): Разобраться с добавлением новых букв. Sprite menuButton = new Sprite( CAMERA_WIDTH - 2 * SPRITE_SIZE + (SPRITE_SIZE - SPRITE_SIZE * SCALE), -(SPRITE_SIZE - SPRITE_SIZE * SCALE) * 0.5f, texBase.getMenuButtonTexture()) { @Override public boolean onAreaTouched( final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) { // TODO(acbelter): Реализовать этот метод. // Пока тут будет тест сервера. // FieldFiller.fill(gameScene, conn); SceneManager.setScene(MenuScene.run()); return false; } }; menuButton.setScale(0); menuButton.registerEntityModifier(new ScaleModifier(3, 0, SCALE, EaseBounceOut.getInstance())); // fillgrid gameScene.attachChild(menuButton); gameScene.registerTouchArea(menuButton); Sprite submitButton = new Sprite( CAMERA_WIDTH - 2 * SPRITE_SIZE + (SPRITE_SIZE - SPRITE_SIZE * SCALE), CAMERA_HEIGHT - SPRITE_SIZE * SCALE - (SPRITE_SIZE - SPRITE_SIZE * SCALE) * 0.5f, texBase.getSubmitButtonTexture()) { @Override public boolean onAreaTouched( final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) { // String str = conn.checkWord(playerWord.getWord()); String str = playerWord.getWord().toUpperCase(); Toast toast = Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.show(); return false; } }; submitButton.setScale(0); submitButton.registerEntityModifier( new ScaleModifier(3, 0, SCALE, EaseBounceOut.getInstance())); gameScene.attachChild(submitButton); gameScene.registerTouchArea(submitButton); // TODO: При нажатии на меню нажимается game scene. gameScene.setTouchAreaBindingEnabled(false); // return gameScene; return MenuScene.run(); }