• Advertisement
Sign in to follow this  

How can I handle two SurfaceView in one game loop?

This topic is 1146 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hello everyone

I'm making a game in android, and I have two clases which extends SurfaceView (TitleView and GameView). I have another class too called GameLoopThread that I initialize in the TitleView that draws all my bitmaps in this SurfaceView, but it only works in this view. So when I want to change to the GameView, how I only initialize the GameLoopThread in the TitleView and not in the GameView, this last is a black screen because nothing is drawed on it.

So, I want to know how can I use the same class of the GameLoop to renderize this two views. 

For example, I initialice the GameLoop in the Titleview so it renders the buttons in the canvas, NewGame and Exit. But when I press the new game button and start the GameView activity, how this class doesn't have the GameLoop initializated, it doesn't render nothing.

Someone can help me?

This is my GameLoopThread class:

public class GameLoopThread extends Thread {

static final long FPS = 25;
//private GameView view;
private TitleView tview;
private boolean running = false;

public GameLoopThread(TitleView titleView) {
this.tview = titleView;
public void setRunning(Boolean run) {
running = run;

public void run() {
long ticksPS = 1000 / FPS;
long startTime;
long sleepTime;
while (running) {
Canvas c = null;
startTime = System.currentTimeMillis();
try {
c = tview.getHolder().lockCanvas();
synchronized (tview.getHolder()) {
} finally {
if (c != null) {
sleepTime = ticksPS - (System.currentTimeMillis() - startTime);
try {
if (sleepTime > 0) {
} else {
} catch (Exception e) {
// TODO: handle exception


Thank you

Edited by marod

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement