mira te paso mi codigo solo de Gameview, los dos metodos que se encuentran comentados que se llaman salir y gameover cargan activity y lo e puesto con getcontext y tampoco, Podrias ayudarme
public class GameView<Graphics> extends SurfaceView {
private SurfaceHolder holder;
private GameLoopThread gameLoopThread;
private List<Sprite> sprites=new ArrayList<Sprite>();
private List<TempSprite> temps=new ArrayList<TempSprite>();
private Bitmap bmpRoto;
private Bitmap imagen;
private Bitmap upNivel;
private Bitmap barra;
private SoundPool soundPool;
private int fallos=0;
private int aciertos=0;
private int platos=20;
private int Nivel=1;
private int cuota=15;
private int puntuacion;
private int miSonidoId=-1;
private Paint pincel1;
private Typeface face;
private boolean preparado=true;
public GameView(Context context,SoundPool soundPool,int miSound) {
super(context);
gameLoopThread=new GameLoopThread(this);
pincel1=new Paint();
holder=getHolder();
holder.addCallback(new SurfaceHolder.Callback(){
public void surfaceDestroyed(SurfaceHolder holder) {
boolean retry=true;
//cierre ordenado
gameLoopThread.setRunning(false);
while(retry){
try{
gameLoopThread.join();//hace destruccion esperando a que el termine para destruirlo
retry=false;
}catch(InterruptedException e){}
}
}
public void surfaceCreated(SurfaceHolder holder) {
createSprites();
gameLoopThread.setRunning(true);
gameLoopThread.start();
}
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
});
bmpRoto=BitmapFactory.decodeResource(getResources(),R.drawable.humo);
imagen = BitmapFactory.decodeResource(getResources(),R.drawable.paisaje);
upNivel = BitmapFactory.decodeResource(getResources(),R.drawable.gameover);
barra=BitmapFactory.decodeResource(getResources(),R.drawable.barrapuntos);
miSonidoId=miSound;
face = Typeface.createFromAsset(context.getAssets(),"face.ttf");
pincel1.setTypeface(face);
pincel1.setColor(Color.BLACK);
pincel1.setTextSize(15);
this.soundPool=soundPool;
}
private void createSprites(){
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
sprites.add(createSprite(R.drawable.plato));
}
private Sprite createSprite(int resource){
Bitmap bmp=BitmapFactory.decodeResource(getResources(), resource);
return new Sprite(this,bmp);
}
protected void onDraw(Canvas canvas){
pincel1.setColor(Color.BLACK);
canvas.drawBitmap(imagen, 0, 0,null);
canvas.drawBitmap(barra, 0,canvas.getHeight()-barra.getHeight(),null);
canvas.drawText(Integer.toString(platos),20, canvas.getHeight()-15, pincel1);
canvas.drawText(Integer.toString(puntuacion),404, canvas.getHeight()-15, pincel1);
canvas.drawText(Integer.toString(Nivel),124, canvas.getHeight()-15, pincel1);
canvas.drawText(Integer.toString(cuota),254, canvas.getHeight()-15, pincel1);
for (int i=temps.size()-1;i>=0;i--){
temps.get(i).onDraw(canvas);
}
if(platos>0){
sprites.get(0).onDraw(canvas);
}
if(platos==0 && aciertos<cuota){
//gameover();
}
if(platos==0 && Nivel==5 && aciertos>=cuota){
//salir();
}
if(platos==0 && Nivel<5 && aciertos>=cuota){
subirNivel();
}
}
public void subirNivel(){
createSprites();
Nivel++;
platos=20;
fallos=0;
aciertos=0;
cuota++;
}
/*public void salir(){
Intent mainIntent = new Intent(GameView.this, menu.class);
GameView.this.startActivity(mainIntent);
GameView.this.finish();
}
public void gameover(View view){
Intent mainIntent = new Intent(GameView.this, GameOver.class);
GameView.this.startActivity(mainIntent);
GameView.this.finish();
}*/
public boolean onTouchEvent(MotionEvent event){
if(event.getAction()==MotionEvent.ACTION_DOWN){
float x=event.getX();
float y=event.getY();
synchronized (getHolder()){
for(int i=sprites.size()-1;i>=0;i--){
Sprite sprite=sprites.get(i);
if(sprite.isCollision(event.getX(),event.getY())){
muertess(sprite,x,y);
break;
}
}
}
}
return true;
}
public void muertess(Sprite sprite,float x, float y){
sprites.remove(sprite);
temps.add(new TempSprite(temps,this,x,y,bmpRoto));
aciertos++;
puntuacion+=100;
platos--;
if(miSonidoId!=-1){
soundPool.play(miSonidoId,1,1,0,0,1);
}
}
public void muertesss(Sprite sprite){
sprites.remove(sprite);
fallos++;
platos--;
}
}