Duckemai
- Forum-Beiträge: 63
30.06.2011, 17:54:11 via Website
30.06.2011 17:54:11 via Website
Hallo zusammen,
ich progge derzeit mein erstes Spiel.
Dafür habe ich einen Thread, der zB die onDraw aufruft. Hier wird aber auch die GameLoop behandelt. Das heißt, dass wenn
das Spiel auf einem schnellen Smartphone läuft, wird es für kurze Zeit in den Thread.sleep gelegt, damit ich eine ungefähre gleichbleibende Geschwindigkeit des Spiels erhalte. Dadurch entsteht aber ein großes Problem. Bei sehr schnellen Smartphones ist die Sleep so lange, dass das Spiel bei Start einfriert. Es ist dann über die Bildschirmberührung per onTouchEvent nicht mehr erreichbar. Wenn ich ein paar mal drauf rumdrücke, und dann einen Zeitpunkt ausserhalb des Sleep erwische, läuft das Spiel. Und zwar ohne weitere Unterbrechungen. Das Problem scheint nur beim Start aufzutreten.
Ich habe schon per:
public boolean onTouchEvent(MotionEvent event) {
synchronized (getHolder()) {
thread.interrupt();
...
...einen Interrupt ausgelösen. Der wird aber erst gar nicht erreicht.
Weiß jemand, wie man so was handelt? Dass also die Sleep im Thread nicht die onTouchEvent blockiert?
Vielen Dank
Duckemai
ich progge derzeit mein erstes Spiel.
Dafür habe ich einen Thread, der zB die onDraw aufruft. Hier wird aber auch die GameLoop behandelt. Das heißt, dass wenn
das Spiel auf einem schnellen Smartphone läuft, wird es für kurze Zeit in den Thread.sleep gelegt, damit ich eine ungefähre gleichbleibende Geschwindigkeit des Spiels erhalte. Dadurch entsteht aber ein großes Problem. Bei sehr schnellen Smartphones ist die Sleep so lange, dass das Spiel bei Start einfriert. Es ist dann über die Bildschirmberührung per onTouchEvent nicht mehr erreichbar. Wenn ich ein paar mal drauf rumdrücke, und dann einen Zeitpunkt ausserhalb des Sleep erwische, läuft das Spiel. Und zwar ohne weitere Unterbrechungen. Das Problem scheint nur beim Start aufzutreten.
Ich habe schon per:
public boolean onTouchEvent(MotionEvent event) {
synchronized (getHolder()) {
thread.interrupt();
...
...einen Interrupt ausgelösen. Der wird aber erst gar nicht erreicht.
Weiß jemand, wie man so was handelt? Dass also die Sleep im Thread nicht die onTouchEvent blockiert?
Vielen Dank
Duckemai
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.