I am new on Android Develpment
I am new on AndEngine
Perhabs I'm reinventing gun powder for all of that...
Situation: Can't get menu buttons to highlight or toogle on touch
Solution: This little new class I've developed.
Using java Syntax Highlighting
- package com.###########
- import org.anddev.andengine.entity.scene.menu.item.AnimatedSpriteMenuItem;
- import org.anddev.andengine.input.touch.TouchEvent;
- import org.anddev.andengine.opengl.texture.region.TiledTextureRegion;
- public class SpriteButton extends AnimatedSpriteMenuItem {
- private boolean pressed=false;
- enum T {BUTTON,TOGGLE};
- private T type = T.BUTTON;
- public SpriteButton(int pID, TiledTextureRegion pTiledTextureRegion) {
- super(pID, pTiledTextureRegion);
- }
- public SpriteButton(int pID, TiledTextureRegion pTiledTextureRegion,T type) {
- super(pID, pTiledTextureRegion);
- this.setType(type);
- }
- public boolean onAreaTouched(final TouchEvent pSceneTouchEvent, final float pTouchAreaLocalX, final float pTouchAreaLocalY) {
- switch(this.type){
- case BUTTON:
- if (!this.pressed){
- this.pressed=true;
- this.nextTile();
- }
- if (pSceneTouchEvent.getAction() == TouchEvent.ACTION_UP) {
- this.pressed=false;
- this.nextTile();
- }
- break;
- case TOGGLE:
- if (!this.pressed){
- this.pressed=true;
- this.nextTile();
- }
- if (pSceneTouchEvent.getAction() == TouchEvent.ACTION_UP) {
- this.pressed=false;
- }
- break;
- }
- return super.onAreaTouched(pSceneTouchEvent, pTouchAreaLocalX, pTouchAreaLocalY);
- }
- public void setType(T type) {
- this.type = type;
- }
- public T getType() {
- return type;
- }
- }
Parsed in 0.034 seconds, using GeSHi 1.0.8.4
And here is an example:
Using java Syntax Highlighting
- this.setPauseBackGround(new Sprite(0,0,this.getPauseBackGroundTextureRegion()));
- this.setPauseMenu(new MenuScene(this.getCamera()));
- final SpriteButton continueMenuItem = new SpriteButton(10,this.getPauseContinueTextureRegion());
- final SpriteButton mainMenuMenuItem = new SpriteButton(11,this.getPauseMainMenuTextureRegion());
- final SpriteButton musicTurnMenuItem = new SpriteButton(12,this.getPauseMusicTurnTextureRegion(),T.TOGGLE);
- this.getPauseMenu().addMenuItem(continueMenuItem);
- this.getPauseMenu().addMenuItem(mainMenuMenuItem);
- this.getPauseMenu().addMenuItem(musicTurnMenuItem);
- this.getPauseMenu().buildAnimations();
- this.getPauseMenu().setBackgroundEnabled(false);
Parsed in 0.033 seconds, using GeSHi 1.0.8.4
The only "requirement" is to have a TiledTextureRegion as the image source with 2 tiles. The idea is that these menu items will highlight itselfs when touched using the second tile in case of the buttons and toggle between the 2 tiles in case of the toggles.
