2008-09-19 8 views
12

Kann mir jemand auf eine Bibliothek für 2D-Spielphysik, etc für das Programmieren der Schwerkraft, Sprungaktionen, etc. für ein 2d-Plattform-/Sidescrolling-Spiel verweisen? Oder könnten Sie einige Algorithmen für Seitenwechsler wie Mario, Sonic etc vorschlagen?2d Spiel Physik?

Antwort

22

Es klingt wie Chipmunk könnte Ihre Bedürfnisse erfüllen.

+0

Oh, das ist cool. –

5

Welche Plattform suchen Sie? Welche Bibliothek Sie verwenden, hängt davon ab.

Für das XNA-Framework ist Farseer ziemlich nett.

+0

ich suche allegro + GCC combo –

2

Sie könnten den Havok-Motor betrachten. Ich glaube, dass sie eine kostenlose Version für nicht kommerzielle Zwecke veröffentlicht haben. Es gibt ein Constraint-Kit, mit dem Sie die Physik auf 2 Ebenen beschränken können, in Ihrem Fall auf x und y.

2

Die Physik in den meisten 2D Side-Scrolling-Plattform-Spielen ist so einfach, dass Sie sie leicht selbst implementieren können. Welche Art von Effekten suchst du?

+0

im Grunde viele dynamische Sprünge und springt –

2

Wenn Sie die Zeit haben, könnten Sie PhysX verwenden, aber es ist wahrscheinlich ein Over-Kill für 2D. Außerdem, wenn Sie planen, Ihr Spiel auf einem PC zu arbeiten und einige coole Physik wollen, google für "verlet integration" Ich weiß, dass es einige Verlet Implementierungen gibt (schön für Partikel und 2D Rag-Dolls).

2

Ich habe Box2D in persönlichen Projekten verwendet. Es ist eine 2D-Physiksimulations-API. Aber es könnte zu viel werden, wenn das, was Sie wollen, eher eine Spiel/Grafik-API ist.

12

Ihre beste Wette ist höchstwahrscheinlich Box2D. Es macht 2D-Physik, hat viele Optionen und ist sehr einfach in ein bestehendes Projekt zu integrieren. Für feste Körper wird standardmäßig CCD verwendet, aber jeder starre Körper kann selektiv in die CCD-Berechnung einbezogen werden.

+0

Ich liebe nur Chipmunk und box2D danke! –

9

Wenn Sie nur die Schwerkraft benötigen, können Sie das selbst in 5 Minuten programmieren. Frei fallende Objekte beschleunigen mit 9,8 Metern pro Sekunde pro Sekunde - das heißt, ein Objekt Geschwindigkeit erhöht sich um 9,8 Meter pro Sekunde im freien Fall. Für ein Spiel möchten Sie die 9.8-Datei je nach Ihrer Framerate aufteilen. Wählen Sie zum Springen einfach eine signifikante negative vertikale Geschwindigkeit, wenden Sie diese auf das Zeichen in dem Moment an, in dem sie springen, und dekrementieren Sie es um Ihr Gravitationsinkrement pro Frame. Das ist wirklich alles, was Sie für etwas wie Mario brauchen, es sei denn, Sie suchen nach einem 3D-Hintergrund für Ihren 2-Seiten-Scroller.

Wenn Sie schicker werden wollen, können Sie versuchen, die Aufprallkraft eines Objekts zu berücksichtigen, so dass fallende Objekte Menschen verletzen oder den Bürgersteig zerbrechen. Verwenden Sie dazu die Formel für kinetische Energie: KE = 1/2 * M * V^2, wobei M Masse und V die Geschwindigkeit ist.

2

Sie 2d Physik mit opende

auch tun können
4

Um den zweiten Teil Ihrer Frage zu beantworten, wenn Sie wollen Um herauszufinden, wie ein einfacher 2D-Platformer funktioniert, lesen Sie die tutorials for N. Ja, N ist ein Flash-basiertes Spiel, aber das bedeutet nicht, dass es nicht wie ein "echtes" Spiel aufgebaut ist, so dass die Kollisionserkennungs- (und Antwort-) Tutorials sehr gut anwendbar sind. Sie sind eine einfache Lektüre mit einigen intuitiven Demos in der Seite eingebettet, um die geometrischen Konzepte zu zeigen.

+0

Sie haben Recht, libs wie Box2D, Chipmunk sind großartig, aber nehmen viel Zeit zu implementieren und sich daran zu gewöhnen. Da ich gezwungen bin, die Entwicklung um den 28. zu beenden, muss ich einige Spielkomplexität, wie die Möglichkeit von unebenem Gelände reduzieren und zu einfacheren allgemeingültigen Methoden statt –

+0

... Bibliotheken und Codes ... –

+0

schließlich habe ich ein Spiel namens nincompoop, es sollte bis zum 30. september fertig sein, also gab es keine finishing touch - probier mal http://www.bidworkz.com/hfn/nincompoop_shaastra.zip –