@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; }
@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(); }