Ich bin gerade dabei mich ein wenig in die Spieleprogrammierung einzuarbeiten, deshalb programmiere ich mir gerade ein kleines PingPong (Pong)-Spiel zusammen.
Nun zur Frage: Ich möchte den Ball innerhalb von 180° variieren können, und dies eben nach rechts, bzw. links. (Bzw. um 178°, weil gerade nach oben/unten wäre evtl. unglücklich für den Spielverlauf )
Meine erste Überlegung war:
- 1 Variable -179 bis +179, wobei man 0 verbieten muss.
Zweite Überlegung:
- 2 Variablen, 1: int angle = Zahl zwischen 1 und 179 und ein int dir = 0 - 1 (rechts oder links), boolean würde hier ja auch gehen.
Sooo schön und gut. Jetzt wollte ich den Ball bewegen (erbt übrigens von Ellipse2D.Double), weiß aber einfach nicht weiter. Hab jetzt gedacht das es ähnlich wie eine lineare Funktion sein muss, also die Steigung irgendwie berechnet werden muss => tan(alpha), aber irgendwie ist das auch nicht sooo prima verlaufen, der Ball wollte nicht so wie ich wollte.
Hab mir auch überlegt das ganze wie ein Koordinatensystem in 4 Sektoren um den Ball einzuteilen, und mit switch jeden einzelnen fall abzufangen (weil bei jeder zone ja andere Rechenoperationen durchgeführt werden müsen).
Naja, danke für jede Antwort!
Codeteil bringt jetzt hier relativ wenig, weil es ja nur um etwas mathematisches geht
Nun zur Frage: Ich möchte den Ball innerhalb von 180° variieren können, und dies eben nach rechts, bzw. links. (Bzw. um 178°, weil gerade nach oben/unten wäre evtl. unglücklich für den Spielverlauf )
Meine erste Überlegung war:
- 1 Variable -179 bis +179, wobei man 0 verbieten muss.
Zweite Überlegung:
- 2 Variablen, 1: int angle = Zahl zwischen 1 und 179 und ein int dir = 0 - 1 (rechts oder links), boolean würde hier ja auch gehen.
Sooo schön und gut. Jetzt wollte ich den Ball bewegen (erbt übrigens von Ellipse2D.Double), weiß aber einfach nicht weiter. Hab jetzt gedacht das es ähnlich wie eine lineare Funktion sein muss, also die Steigung irgendwie berechnet werden muss => tan(alpha), aber irgendwie ist das auch nicht sooo prima verlaufen, der Ball wollte nicht so wie ich wollte.
Hab mir auch überlegt das ganze wie ein Koordinatensystem in 4 Sektoren um den Ball einzuteilen, und mit switch jeden einzelnen fall abzufangen (weil bei jeder zone ja andere Rechenoperationen durchgeführt werden müsen).
Naja, danke für jede Antwort!
Codeteil bringt jetzt hier relativ wenig, weil es ja nur um etwas mathematisches geht