Ich möchte mit Farsser und Kinect etwas Ähnliches erstellen:
Dies ist meine bisherige Implementierung:
http://www.youtube.com/watch?v=GlIvJRhco4U
Ich habe die Umrissscheitelpunkte und die Triangulation des Benutzers. Und im Anschluss an das Texture to Polygonmsample habe ich diese Linie verwendet, um die Form zu erstellen, wobei farseerObject eine Liste der Eckpunkte der Dreiecke ist:
_compound = BodyFactory.CreateCompoundPolygon (World, farseerObject, 1f, BodyType.Dynamic);
Aber ich muss den Körper jedes Frames aktualisieren (wie 30 fps) und das ist sehr langsam. Ich bekomme nur 2 oder 3 fps.
Gibt es eine andere (schnellere) Möglichkeit, den Körper aus einer Liste von Dreiecken oder Konturscheitelpunkten zu erstellen?
Wie machen sie das auf Box2D?
Aktualisieren:
Nach einigen Tests habe ich EdgeShapes für die Benutzerkontur verwendet (ohne Triangulation) und ich aktualisiere die Eckpunkte für diese Kanten in den Fixtures in jedem Frame, jetzt ist alles schneller.
((EdgeShape)(farseerBody.FixtureList[i].Shape)).Vertex1 = new Vector2(farseerVertices[i].X, farseerVertices[i].Y);
Aber die Kollisionen funktionieren nicht!
Mein Ansatz ist falsch?
Antworten:
Endlich funktioniert!
Ich hatte die Eckpunkte der Kontur als Sequenz, daher bestand die Lösung darin, die LoopShape zu verwenden, um die Befestigung des Körpers zu erstellen. Ich wusste nicht einmal, dass Klasse = P.
Und das ist alles!
quelle