Hallo,
ich habe folgendes Problem und zwar bin ich gerade dabei ein kleines 2D Spiel zu schreiben, diese beinhaltet mehrere Bitmaps die sich im Spiel bewegen.
Ich habe dazu eine Klasse erstellt und mittels ArrayList erzeuge ich mehrere Objekte:
Und hier zeichne ich dann das ganze z.B. so:
Nur was mich stört ist, das es nie fließend läuft, es sind manchmal kleine oder auch oft starke ruckeln vorhanden.
Hier ist mal die GameLoopThread.class:
Könnte man das Problem irgendwie lösen, das es nicht mehr so ruckelt?
Ich bedanke mich schonmal im Voraus.
MfG
ich habe folgendes Problem und zwar bin ich gerade dabei ein kleines 2D Spiel zu schreiben, diese beinhaltet mehrere Bitmaps die sich im Spiel bewegen.
Ich habe dazu eine Klasse erstellt und mittels ArrayList erzeuge ich mehrere Objekte:
Java:
ArrayList<Entity> entityList = new ArrayList<Entity>();
public class Entity {
Bitmap bmp;
float posX;
float posY;
double speedX;
}
.........................................
Entity e = new Entity();
e.bmp = testBitmap;
e.posX = screenWidth;
e.posY = (screenHeight/2)-(e.bmp.getHeight()/2);
entityList.add(e);
..........................................
Und hier zeichne ich dann das ganze z.B. so:
Java:
for(Iterator<Entity> it = entityList.iterator(); it.hasNext();) {
Entity e = it.next();
e.posX = e.posX - (3*getDensity());
canvas.drawBitmap(e.bmp, e.posX, e.posY, paint);
if (e.posX < -(e.bmp.getWidth())) {
it.remove();
}
}
Nur was mich stört ist, das es nie fließend läuft, es sind manchmal kleine oder auch oft starke ruckeln vorhanden.
Hier ist mal die GameLoopThread.class:
Java:
package de.test.testspiel;
import android.annotation.SuppressLint;
import android.graphics.Canvas;
@SuppressLint("WrongCall")
public class GameLoopThread extends Thread {
private GameView theView;
private boolean isRunning = false;
public GameLoopThread(GameView theView) {
this.theView = theView;
}
public void setRunning(boolean run) {
isRunning = run;
}
@Override
public void run() {
while (isRunning) {
Canvas theCanvas = null;
try {
theCanvas = theView.getHolder().lockCanvas();
synchronized (theView.getHolder()) {
theView.onDraw(theCanvas);
}
} finally {
if (theCanvas != null) {
theView.getHolder().unlockCanvasAndPost(theCanvas);
}
}
}
}
}
Könnte man das Problem irgendwie lösen, das es nicht mehr so ruckelt?
Ich bedanke mich schonmal im Voraus.
MfG