Autore Topic: Problema con AndEngine sul touch  (Letto 650 volte)

Offline filipposapo

  • Utente junior
  • **
  • Post: 135
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    Tablet Samsung Note 10.1
  • Sistema operativo:
    Windows 8
Problema con AndEngine sul touch
« il: 04 Marzo 2014, 15:40:32 CET »
0
Salve a tutti,
sto usando AndEngine da poco e stavo provando a creare un menu.
Con il seguente codice mi genera la schermata ma i tasti non rispondono al touch, mi sapreste dire perché??
Grazie.
Codice (Java): [Seleziona]
package com.example.provafirstgame.scene;

import org.andengine.entity.scene.IOnAreaTouchListener;
import org.andengine.entity.scene.IOnSceneTouchListener;
import org.andengine.entity.scene.ITouchArea;
import org.andengine.entity.scene.Scene;
import org.andengine.entity.scene.background.Background;
import org.andengine.entity.scene.menu.MenuScene;
import org.andengine.entity.scene.menu.MenuScene.IOnMenuItemClickListener;
import org.andengine.entity.scene.menu.item.IMenuItem;
import org.andengine.entity.scene.menu.item.SpriteMenuItem;
import org.andengine.entity.scene.menu.item.decorator.ScaleMenuItemDecorator;
import org.andengine.entity.sprite.Sprite;
import org.andengine.input.touch.TouchEvent;
import org.andengine.util.color.Color;

import android.util.Log;
import android.view.MotionEvent;

import com.example.provafirstgame.ResourceManager;

public class MainMenuScene extends BaseScene implements IOnMenuItemClickListener{

        //Definisco una istanza di MenuScene, classe già definita in AndEngine.
        private MenuScene menu;
       
        //Definisco gli indici del menu.
        private final int MENU_PLAY=0;
        private final int MENU_EXIT=1;
       
       
       
        //Screo la scena. Per il MainMenu dovrò definire solo il background e l'oggetto menu
        @Override
        public void createScene() {
               
                setBackground(new Background(Color.WHITE));
                createMenu();
               
        }
       
        @Override
        public void onBackPressed() {
               
                System.exit(0);
               
        }

        @Override
        public void disposeScene() {
               
               
        }
       
       
       
        private void createMenu(){
               
               
                menu=new MenuScene(camera);
               
                menu.setPosition(0, 0);
                //Aggiungo un ascoltatore al menu. Con this indico al menu di inviare l'evento all'istanza corrente di MainMenuScene.
                menu.setBackgroundEnabled(false);
               
               
                //Creo i bottoni del menu.
                //1.2f e 1 sono le scale di rappresentazione del bottone nel caso in il bottone sia scelto oppure no.
                final IMenuItem playItem=new ScaleMenuItemDecorator(new SpriteMenuItem(MENU_PLAY, ResourceManager.getInstance().play_button_region, vbom), 1.2f, 1);
                final IMenuItem exitItem=new ScaleMenuItemDecorator(new SpriteMenuItem(MENU_EXIT, ResourceManager.getInstance().exit_button_region, vbom), 1.2f, 1);
       
                playItem.setPosition(playItem.getX(), playItem.getY());
                exitItem.setPosition(exitItem.getX(), exitItem.getY()+100);
               
               
                menu.buildAnimations();
               
                menu.clearTouchAreas();
               
                //Aggiungo i bottoni al menu
                menu.addMenuItem(playItem);
                menu.addMenuItem(exitItem);
                       
                menu.setOnMenuItemClickListener(this);
                                       

                //Aggiungo all'istanza corrente di MainMenuScene il menu appena implementato.
                setChildScene(menu);
               
                //this.registerTouchArea(menu.getTouchAreas().get(0));
                //this.registerTouchArea(menu.getTouchAreas().get(1));
               
               
                Log.i("menu: ", "inizializzato");
       
        }

       
        //Ascoltatore del menu.
        @Override
        public boolean onMenuItemClicked(MenuScene scene, IMenuItem item, float localX, float localY) {
               
                Log.i("Evento: ", "Avvenuto");
               
                switch(item.getID()){
                        case MENU_PLAY:
                                return true;
                        case MENU_EXIT:
                                //System.exit(0);
                       
                                return true;
                        default:
                                return false;
                }
        }

/*     
        public boolean onTouchEvent(MotionEvent event) {
               
        int myEventAction = event.getAction();

        Log.i("schermo toccato", "ok");
        float X = event.getX();
        float Y = event.getY();

        switch (myEventAction) {
                case MotionEvent.ACTION_DOWN:
                break;
           case MotionEvent.ACTION_MOVE: {
               
                break;}
           case MotionEvent.ACTION_UP:
                   
                break;
        }
        return true;
    }*/

}

Post unito: 04 Marzo 2014, 15:41:55 CET
In sostanza non entra mai all'interno di OnMenuItemClicked();