Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

11

07.05.2013, 12:11

Hat hier schon jemand Farseer in XNA benutzt?

Ich benutze die Farseer Physics Engine derzeit mit MonoGame (was letzendlich ja XNA ist). Funktioniert recht einfach, gut und ohne weitere Probleme. Es gibt zwar keine richtige Dokumentation, allerdings eine Sammlung von Beispielen, die recht verständlich sind. Zudem ist Farseer auch sehr Box2D ähnlich (basiert AFAIK darauf, wobei ich Box2D nie verwendet habe).

12

07.05.2013, 20:55

Wie prüfen diese Physik-Engines eigentlich die Kollisionen? Es gibt ja mehrere Möglichkeiten wie z.B. Rectangle Collision, Per Pixel Collision, etc.
Oder muss ich selbst wählen welche dieser möglichen Kollisionsprüfungen ich verwenden möchte?
Da die meisten Objekte Rechtecke sind würde ich ja für jedes dieser Objekte ein Rectangle erstellen. Kommt es nun zur Kollision zwischen mehreren Rectangles, würde die Engine die Physik dann automatisch richtig berechnen? Zum Beispiel könnte ja ein Ball von links nach rechts rollen und dabei einen Dominostein berühren, der dann umfällt. Der umfallende Stein würde einen weiteren Stein berühren der daraufhin auch umfällt.
Ist so etwas kompliziert oder ganz leicht mit einer Engine zu machen?

13

07.05.2013, 21:13

Jep, das ist recht einfach zu erstellen. Das funktioniert im Prinzip direkt automatisch. Welche "geometrische Form" die Kollisionsbox hat, musst Du allerdings selbst bestimmen. Du kannst beispielsweise einfach ein Rechteck, Kreis oder ähnliches erstellen. Andererseits kannst Du dir die Form auch aus einem Bild erstellen lassen, die wird dann einfach aus Primitiven zusammengebaut, beispielsweise: https://dl.dropboxusercontent.com/u/1316…t/collision.PNG

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

14

07.05.2013, 21:49

Die Physik-Engine übernimmt ja genau diese Berechnung komplett eigenständig. Sonst wäre sie wohl überflüssig.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

15

09.05.2013, 11:01

Ich habe mich nun für Farseer entschieden und ein wenig damit rumgespielt. Normale Tiles, also Tiles durch die die Spielfigur nicht durchspringen kann, sind ja recht einfach zu erstellen. Wie erstellt man aber Tiles die die Spielfigur von unten durchspringen/durchqueren kann? So wie die dünnen orangenen Plattformen in diesem Mario Level: Mario Level
Weiss zufällig jemand wie man das mit Farsser macht?

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

16

09.05.2013, 11:16

Ich würde spontan behaupten, das geht nicht ohne weiteres. Normal würde man bei solchen Tiles bei einer Kollision gucken wie die Bewegungsrichtung des Spielers ist. Eine Physikengine kann normalerweise kollidieren oder eben nicht. Von daher vermute ich musst du dir für sowas selbst eine Lösung basteln und in diesem speziellen Fall auf die Hilfe der Physikengine verzichten.

edit: Unsinn was ich geschrieben hab. Blue Cobold hat die Antwort gepostet. Danke;)
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Schorsch« (09.05.2013, 11:43)


BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

17

09.05.2013, 11:41

Nein, Schorsch. Das stimmt nicht.
Box2D und damit auch Farseer kann einzeln für jedes Element bestimmen, wann und ob ein anderes Element mit diesem kollidiert. Dazu implementiert man einen entsprechenden Kollisions-Handler. In Box2D (und damit vermutlich auch in Farseer) heißt dieses Ding "ContactListener". Damit kann man die Methoden BeginContact und PreSolve für seine Zwecke entsprechend nutzen und müsste nur die Bewegungsrichtung des Spielers (und am besten auch noch die Position, falls er "mittendrin steckt") prüfen.
Es geht also sehr wohl und ich würde dringend davon abraten hier die Physik-Engine umgehen zu wollen oder auf sie zu verzichten.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

De_Struktor

unregistriert

18

18.05.2013, 20:55

Eine frage aus neugier, wie kannst du Box2D benutzen, ich kann es nicht als Verweis hinzufügen, er gibt mir an: "keine Datei gefunden" wenn ich durch die Ordner husche!?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

19

18.05.2013, 21:31

Durch die Ordner huschen = ?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

De_Struktor

unregistriert

20

18.05.2013, 22:39

mit huschen meine ich, wenn ich die Ordner durchsuche ;D

also, BOX2D.Xna Framework und dann Doppelklick, keine Datei drinne, obwohl natürlich alle Datein enthalten sind.

Und ich habe auch auf "Alle Dateien" gedrückt, nicht das er dann nur explizte Dateien annimmt!

Werbeanzeige