Seguinte, estou criando um jogo p/android usando o framework cocos2D, quero usar o toque na tela para acertar meus inimigos, mas não estou conseguindo fazer,precisaria pegar o local do toque e comparar com a posição do inimigo, ei as minhas classes:
classe principal
package com.example.esmagadragao;
import org.cocos2d.layers.CCScene;
import org.cocos2d.nodes.CCDirector;
import org.cocos2d.opengl.CCGLSurfaceView;
import com.example.esmagadragao.telas.TelaAbertura;
import android.os.Bundle;
import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.view.WindowManager;
public class MainActivity extends Activity {
private CCScene scene;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//definindo orientação
setRequestedOrientation(
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
//Configura a tela
CCGLSurfaceView ccglSurfaceView = new CCGLSurfaceView(this);
setContentView(ccglSurfaceView);
CCDirector.sharedDirector().attachInView(ccglSurfaceView);
//configura o CCDirector
CCDirector.sharedDirector().setScreenSize(320, 480);
scene = new TelaAbertura().scene();
CCDirector.sharedDirector().runWithScene(scene);
}
}
tela de abertura do jogo
package com.example.esmagadragao.telas;
import org.cocos2d.layers.CCLayer;
import org.cocos2d.layers.CCScene;
import org.cocos2d.types.CGPoint;
import com.example.esmagadragao.config.Assets;
import com.example.esmagadragao.config.ScreenBackground;
import com.example.esmagadragao.controladores.MenuBotoes;
import static com.example.esmagadragao.config.DeviceSettings.screenWidth;
import static com.example.esmagadragao.config.DeviceSettings.screenHeight;
import static com.example.esmagadragao.config.DeviceSettings.screenResolution;
public class TelaAbertura extends CCLayer{
private ScreenBackground background;
public TelaAbertura() {
this.background=new ScreenBackground(Assets.FUNDOVERMELHO);
this.background.setPosition(
screenResolution(
CGPoint.ccp(screenWidth() / 2.0f,
screenHeight() / 2.0f)));
this.addChild(this.background);
MenuBotoes menuBotoes=new MenuBotoes();
this.addChild(menuBotoes);
}
public CCScene scene(){
CCScene scene = CCScene.node();
scene.addChild(this);
return scene;
}
}
tela da primeira fase do jogo
package com.example.esmagadragao.cenas;
import java.util.ArrayList;
import java.util.List;
import org.cocos2d.layers.CCLayer;
import org.cocos2d.layers.CCScene;
import org.cocos2d.types.CGPoint;
import android.view.MotionEvent;
import com.example.esmagadragao.config.Assets;
import com.example.esmagadragao.config.ScreenBackground;
import com.example.esmagadragao.engines.InimigoEngine;
import com.example.esmagadragao.interfaces.InimigoDelegate;
import com.example.esmagadragao.objetos.Inimigo;
import static com.example.esmagadragao.config.DeviceSettings.screenWidth;
import static com.example.esmagadragao.config.DeviceSettings.screenHeight;
import static com.example.esmagadragao.config.DeviceSettings.screenResolution;
public class CenaJogo extends CCLayer implements InimigoDelegate{
private ScreenBackground background;
private InimigoEngine inimigoEngine;
private CCLayer inimigoLayer;
private List inimigoList;
public CenaJogo() {
this.background = new ScreenBackground(Assets.FUNDOVERMELHO);
this.background.setPosition(
screenResolution(
CGPoint.ccp(screenWidth()/2, screenHeight()/2)));
this.inimigoLayer = CCLayer.node();
this.addChild(this.background);
this.addChild(this.inimigoLayer);
addObjects();
}
private void addObjects() {
this.inimigoList=new ArrayList();
this.inimigoEngine=new InimigoEngine();
}
@Override
public void onEnter() {
super.onEnter();
this.startEngine();
}
private void startEngine() {
this.addChild(this.inimigoEngine);
this.inimigoEngine.setDelegate(this);
}
public static CCScene createGame(){
CCScene scene = CCScene.node();
CenaJogo cenaJogo = new CenaJogo();
scene.addChild(cenaJogo);
return scene;
}
public void checkAcerto(MotionEvent event){
}
@Override
public void destroiInimigo(Inimigo inimigo) {
// TODO Auto-generated method stub
}
@Override
public void criaInimigo(Inimigo inimigo) {
this.inimigoLayer.addChild(inimigo);
inimigo.start();
}
}
obrigado