Ajouter des élements dans une surface view
Salut à tous!
Je suis actuellement entrain de m'amuser a crée un petit jeu.
Et la je bloque sur le fait que quand je fait pause je voudrais faire apparaitre des bouton ou autre tout en gardant en arrière la l'état du jeux.
Pour le moment en fait quand je fait pause je dit a l'activité de faire un autre setContentView mais le problème c'est que du coup la vue n'est plus la surfaceView est donc je ne vois pas l'état du jeux.
Je voudrais donc savoir si c'était possible de rajouter des boutons et tous sur la surfaceView?
L'activité:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
public class GameActivity extends Activity implements OnLooseListener,OnPauseListener
{
ViewGame view ;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
view = new ViewGame(this);
setContentView(view);
view.setLooseListener(this);
view.setOnPauseListener(this);
}
@Override
protected void onPause()
{
super.onPause();
this.view.getThread().pause();
}
/**
* Call when game loosed
*/
public void onLoosed(int point)
{
Intent intent = new Intent(this,LooseActivity.class);
intent.putExtra("point", point+"");
startActivity(intent);
}
public void onPauseClicked()
{
setContentView(R.layout.pause);
}
} |
La surface View:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| public class ViewGame extends SurfaceView implements SurfaceHolder.Callback , Constantes
{
private GameThread thread;//game thread
//listener
private OnLooseListener listener;
private OnPauseListener pauseListener;
public ViewGame(Context context)
{
super(context);
SurfaceHolder holder = getHolder();
this.thread = new GameThread(holder, context);
holder.addCallback(this);
setFocusable(true);
}
/**
*
* @param listener
*/
public void setLooseListener(OnLooseListener listener)
{
this.listener = listener;
}
/**
*
* @param listener
*/
public void setOnPauseListener(OnPauseListener listener)
{
this.pauseListener = listener;
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
float y = event.getY();
float x = event.getX();
if(isPause(x,y))
{
if(this.thread.getStateGame() == STATE_RUNNING) //Si on est a jouer on met pause
{
Log.d("WORKFEL", "pause");
this.thread.pause();
this.pauseListener.onPauseClicked();
//onPause();
}
return true;
//this.thread.unpause();
}
//............... |
Merci d'avance :)