Hallo zusammen,
Ich bin fleissig mit XNA probieren und wollte jetzt für mein Spiel Physics einbauen.
Dabei soll der Charakter (Es ist ne Art SideScroller / Jump n Run) dem Weg entlang rennen können und dabei aber nicht nur gerade aus sondern auch schräg. Z.B einen Hügel hinauf und wieder hinab.
Wie aber mache ich das mit der Kollisionsüberprüfung?
Und wie wäre das Terrain am besten gespeichert? Ein Bitmap oder die Platformen als Vectoren (Linestrips) abspeichern.
Die Map wird unveränderbar sein und in einem Mapeditor (welcher noch nicht existiert) erstellt.
Im Anhang noch ein Bild ums es sich besser vorstellen zu können. Die violette Linie zeigt wo das Terrain auf Kollision überprüft werden muss, resp. die Linie wo der Charakter "entlang läuft".
Freue mich auf eine Antwort.
MfG Vhelium
#define TRUE FALSE //Happy debugging suckers
kollisionserkennung is in spielen ein recht großes themengebiet und nicht mal eben schnell zu erklären. es besteht die möglichkeit das ganze einfach von einer engine machen zu lassen, oder (was bei dir sicherlich reicht) das ganze selber zu schreiben.
einfacher isses dann wenn deine map auf tiles basiert.
hier sind mal 2 nette tuts die dir sicherlich weiterhelfen:
part1:
Tile based Map - Teil 1
part2:
Tile based Map - Teil 2
ich hoffe ich konnte helfen
Die Physics werde ich in der Tat wie du gesagt hast mit engines lösen.
Die Tilemap ist eben nicht was ich suche. Ich hab nit denen schon gearbeitet, es ist eben nicht das, was ich brauche.
Es müsste, wie im Bild, die Kollision mit der (Aus linien bestehenden) violrtten strecke überprüft werden, welche nicht unbedingt horizontal sind.
MfG Vhelium
#define TRUE FALSE //Happy debugging suckers
Hallo Vhelium,
du kannst Region.Intersect (GraphicsPath) zusammen mit Region.IsEmpty verwenden.
herbivore
Wie aber mache ich das mit der Kollisionsüberprüfung?
Ich nehme an, daß du die violette Linie bereits vorliegen hast, und zwar als Folge von 2D-Punkten (mit X- und Y-Koordinaten). Zwischen den Punkten befinden sich dann die einzelnen Liniensegmente. Auf welchem Liniensegment sich dein Charakter befindet, kannst du herausfinden, indem du die X-Koordinaten der Position des Charakters mit den Anfangs- und Endpunkten der Liniensegmente vergleichst.
Daraus kannst du dann die von dir gesuchte Y-Koordinate des Charakters errechnen, indem du die X-Koordinate in die Geradengleichung einsetzt.
Weeks of programming can save you hours of planning