2011-01-05 4 views
0

Ich versuche, ein Zoom-System für ein C#/XNA Spiel auf ich arbeite zu machen. Was ich habe, ist die Position der Kameras, der aktuelle Zoom der Kamera (als Float gespeichert) und die GestureSample-Instanz.Wie funktioniert die Pinch-Funktion in Windows Phone 7 korrekt für das Vergrößern/Verkleinern von Effekten?

Ich greife beide Positionen der Pinchs und finde ihre Mitte, um meinen Zoom - In - Punkt zu machen, dann wenn die Person versucht, nach innen/außen zu drücken, vergleiche ich die Länge der Entfernung zwischen den beiden Fingern vor und nach der Pinch-Drag-Aktion wurde ausgeführt, um das Vergrößern oder Verkleinern zu bestimmen.

Diese Art funktioniert, aber es fühlt sich ein bisschen floaty. Ich habe auch nicht herausgefunden, wie ich es auf eine Position zoomen lassen kann, gegen die der Benutzer kneift. Ich bekomme den mittleren Punkt der Prise und versuche, die Kamera in diese Richtung zu bewegen, wenn der Zoom größer wird, aber manchmal kommt die Kamera zu diesem Punkt vor 100% Zoom und manchmal überhaupt nicht.

Es ist alles Algorithmus Fragen, nehme ich an, was ich wissen will, ist, wenn es einen einfachen geraden Weg nach vorn ist, dies zu tun, die ich nicht kenne?

Antwort

1

Alles, was Sie tun müssen, ist der Kamera einen Zielort (dh den "Mittelpunkt" Ihrer Prise), und eine Beschleunigung ... die Kamera sollte dann, unabhängig von der Pinch Geste, auf das Ziel zu bewegen Lage. Auf diese Weise wird die Kamera nur an der richtigen Stelle am Ende ... und oben auf, dass Sie eine neue Funktion für die Kamera :-)