# Fragen zu Moto Race Game?



## bruce85 (13. Dez 2012)

Hallo,
ich hab da mal ein Paar Fragen:
Es gibt ja zahlreiche Cross Spiele, indem man auf einer Map auf bergen usw. fahren kann und wollte mal wissen wie man so Spiele ambesten schreiben kann.

z.B. Wie macht man ambesten die Maps?
Wie bringt man dazu das Motorrad auf einer Linie zu bewegen, dass auch berg ab und berg auf geht mit Schwerkraft?

Gibt es Vielleicht gute Tutorials, indem das einigermaßen erklärt wird?

Ich bedanke mich schonmal im Voraus.

MfG


----------



## bruce85 (15. Dez 2012)

Weiss denn keiner wie man sowas ambesten Programmiert?

MfG


----------



## twinflyer (16. Dez 2012)

Ein Kochrezept dazu gibt es nicht.
Aber ich kann dir folgendes empfehlen:


Java Grundlagen lernen
Grafik/Zeichnen in Java lernen
Kleine Spiele (Pong, Tetris, PacMan,...) schreiben

und natürlich vieeeeeeeel lesen. Schau doch mal bei Java-Gaming.org - home of the largest java game developer community rein, da tummeln sich die Spieleentwickler.

Wenn ich das richtige Bild im Kopf habe ist dein Vorhaben schon recht komplex. Immerhin brauchst du dafür eine Physik-Engine.

Wie viel Erfahrung hast du denn schon in Java?

Gruß twinflyer


----------



## bruce85 (16. Dez 2012)

Danke erstmal für die antwort.

Die Grundlagen in Java kann ich bereits, ich hab ja schon einige Apps sowie einfache 2D Spiele geschrieben.

Nur wollte ich mal versuchen, solche Spiele wie "Moto Race" zu schreiben, leider fehlen mit ein Paar ansätze, wie man da ambesten anfängt.

MfG


----------



## Robokopp (17. Dez 2012)

Also ich hab mal einen Artikel gelesen, in dem sie erklärt haben wie man so eine zerstörbare Umgebung alla Worms baut. Da haben die einfach die komplette Welt in Photoshop gezeichnet und dann anhand der Pixel ein zweidimensionales boolean Array erzeugt für die Kollision, damit nicht zur Laufzeit die farbwerte geprüfte werden müssen. Vielleicht könntest du das ähnlich machen. Wobei ich nicht weiß ob es da nicht sinnvollere Wege gibt.


----------



## schlingel (18. Dez 2012)

Ich glaube mit der Collision-Detection anhand der Farbwerte des Hintergrunds kann man gut arbeiten. Wollte das gleiche schreiben hab aber den Artikel nicht gefunden und dann darauf vergessen :-D


----------



## bruce85 (22. Dez 2012)

Danke euch für die antworten.

Ich hab mich jetzt entschlossen mal ein einfaches 2D Car Game zu Schreiben, also die ansicht von oben.

Jetzt habe ich ein Paar Fragen:
Das Auto lasse ich nach links bzw. nach rechts drehen, je nachdem wie das Handy gekippt wird.
Das Klappt bereits, dazu habe ich folgenden Code verwendet:

```
Matrix mat = new Matrix();
        mat.postRotate(y);
        Bitmap komp_gedr = Bitmap.createBitmap(car001Bitmap,0,0,car001Bitmap.getWidth(),car001Bitmap.getHeight(),mat,false);
        int xversatz=(komp_gedr.getWidth()-car001Bitmap.getWidth())/2;
        int yversatz=(komp_gedr.getHeight()-car001Bitmap.getHeight())/2;
        canvas.drawBitmap(komp_gedr,canvas.getWidth()/2-car001Bitmap.getWidth()/2-xversatz,canvas.getHeight()/2-car001Bitmap.getHeight()/2-yversatz,null);
```

in der Zeile
mat.postRotate(y);

benutze ich den y Wert vom Handy, wo es ausgelesen wird, wie das Handy gekippt ist.
Das funktioniert soweit.
Nur wie kann ich das Auto in diese Richtung bewegen lassen, wie es gedreht ist?

Dazu muss ich ja die Cosinus werte berechnen und zuweisen, wie mache ich das in android ambesten?
Kenne das aus anderen Programmiersprachen wie BlitzMax usw.

Ich bedanke mich schonmal im Voraus.

MfG


----------



## bruce85 (22. Dez 2012)

Ich hab das jetzt so hinbekommen:

```
int carSpeed = 1;
    	carX += carSpeed*Math.cos(Math.toRadians(y-90)); 
    	carY += carSpeed*Math.sin(Math.toRadians(y-90));
    	
    	canvas.drawBitmap(lvl001Bitmap, 0, -150, null);
    	Matrix mat = new Matrix();
        mat.postRotate(y);
        Bitmap komp_gedr = Bitmap.createBitmap(car001Bitmap,0,0,car001Bitmap.getWidth(),car001Bitmap.getHeight(),mat,false);
        int xversatz=(komp_gedr.getWidth()-car001Bitmap.getWidth())/2;
        int yversatz=(komp_gedr.getHeight()-car001Bitmap.getHeight())/2;
        canvas.drawBitmap(komp_gedr,carX+canvas.getWidth()/2-car001Bitmap.getWidth()/2-xversatz,carY+canvas.getHeight()/2-car001Bitmap.getHeight()/2-yversatz,null);
```

Aber irgendwie dreht das Auto sich nicht fließend, sondern zuckt ab und zu, woran könnte das denn liegen?

MfG


----------

