Benötige Hilfe
-
Die Startposition vom Ball liegt derzeit bei (449,183).
also der x-Wert ist 449 und der y-Wert 183.ach ja genau, du du meinst wohl dass der Wert 366 nie genau erreicht wird.
ich sollte besser >= 366 schreiben.
-
Genau. Zumindest solange du nur 4 Wände hast und keine kleinen Mauern oder sowas im Spielfeld stehen.
-
also ich hab jetzt folgendes mal ausgebessert. habe mein Spielfeld auf die Größe 900 x 360 Pixel verändert und meinen Startwert genau auf (0,0) gesetzt damit sicher die Zahl 360 erreicht wird.
meine Abfrage lautet nun:
private: System::Void Timer_Tick(System::Object^ sender, System::EventArgs^ e) {
xWert += 10;
yWert += 10;Ball->Location = System::Drawing::Point(xWert, yWert);
if(Ball->Location.Y == 360)
{
xWert += 10;
yWert -= 10;
}}
aber der Ball prallt trotzdem nicht von der Wand ab, was nun? gibt es noch eine andere Abfrage?

-
Dann bleibt er an der Wand kleben. Wie man das ändert haben Sone und ich schon geschreiben.
-
das habe ich auch schon geändert. nu r das Problem ist, dss er es nicht macht! Der Ball bleibt einfach nicht kleben, sondern fährt weiter.
-
Was ist "das" und "es"? Zeig mal den neuen Code.
Der Ball bleibt einfach nicht kleben, sondern fährt weiter.
Wirklich? 360 liegt außerhalb des Spielfelds, den Ball solltest du also gar nicht mehr sehen können.
-
Nein, er bleibt kleben, nur siehst du das nicht.
LocationXY ist die linke obere Ecke des Balls.
Abprallen sollte er aber, wenn die untere Ecke über den Bereich geht.
Kommste damit weiter?Edit: Kannst ja testeweise mal in deiner if-Abfrage nen kleineren Wert als die Spielfeldgröße angeben
-
alles klar. wenn das so ist, dann müsste ich nur noch die größe des Balls subtrahieren oder?
-
Ja, hört sich gut an.
-
danke
