@Override protected Scene onCreateScene() { this.mScene = new Scene(); this.xCoords = new float[COLUMNS]; this.yCoords = new float[ROWS]; float space = Math.min((float) CAMERA_HEIGHT / (float) ROWS, (float) CAMERA_WIDTH / (float) COLUMNS); float xCord = (CAMERA_WIDTH - space * (COLUMNS - 1)) / 2f; float yCord = (CAMERA_HEIGHT - space * (ROWS - 1)) / 2f; this.maps = new GomokuTiledSprite[COLUMNS - 1][ROWS - 1]; VertexBufferObjectManager VBOManager = this.getVertexBufferObjectManager(); Log.w("SPACE", "" + space); for (int i = 0; i < COLUMNS; i++) { xCoords[i] = xCord + i * space; } for (int i = 0; i < ROWS; i++) { yCoords[i] = yCord + i * space; } for (int i = 0; i < COLUMNS; i++) { Line line = new Line(xCoords[i], yCoords[0], xCoords[i], yCoords[ROWS - 1], STROKE_WIDTH, VBOManager); line.setColor(0f, 1f, 1f); mScene.attachChild(line); } for (int i = 0; i < ROWS; i++) { Line line = new Line( xCoords[0], yCoords[i], xCoords[COLUMNS - 1], yCoords[i], STROKE_WIDTH, VBOManager); line.setColor(0f, 1f, 1f); mScene.attachChild(line); } mScene.setTouchAreaBindingOnActionDownEnabled(true); mScene.setTouchAreaBindingOnActionMoveEnabled(false); for (int i = 0; i < COLUMNS - 1; i++) { for (int j = 0; j < ROWS - 1; j++) { this.maps[i][j] = new GomokuTiledSprite( xCoords[i] + space / 2f, yCoords[j] + space / 2f, blankRegion, xRegion, oRegion, winRegion, VBOManager, this); mScene.registerTouchArea(maps[i][j]); mScene.attachChild(maps[i][j]); maps[i][j].setCoordinates(i, j); } } return mScene; }
public void addGimmicsButton( Scene mScene, String[] sound, int[] image, TexturePackTextureRegionLibrary pTexturePackTextureRegionLibrary) { ITextureRegion[] ttrGimmic = new ITextureRegion[3]; sprGimmic = new Sprite[3]; final Sound[] sndGimmic = new Sound[3]; int[] start = {244, 436, 612}; for (int i = 0; i < sprGimmic.length; i++) { // load sound sndGimmic[i] = loadSoundResourceFromSD(sound[i]); ttrGimmic[i] = pTexturePackTextureRegionLibrary.get(image[i]); final int tmp = i; sprGimmic[i] = new Sprite(start[i], 496, ttrGimmic[i], this.getVertexBufferObjectManager()) { @Override public boolean onAreaTouched( final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) { if (pSceneTouchEvent.getAction() == TouchEvent.ACTION_DOWN) { if (isTouchGimmic[tmp]) { if (tmp == 2) { combineGimmic3WithAction(); } else { sndGimmic[tmp].play(); } sprGimmic[tmp].registerEntityModifier( new SequenceEntityModifier( new ScaleModifier(0.35f, 1, 1.3f), new ScaleModifier(0.35f, 1.3f, 1f))); } return true; } return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY); } }; mScene.registerTouchArea(sprGimmic[i]); mScene.attachChild(sprGimmic[i]); } mScene.setTouchAreaBindingOnActionDownEnabled(true); mScene.setTouchAreaBindingOnActionMoveEnabled(true); }