Ping Pong (Ball geht oft waagerecht nach oben)

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Izen

Betreff: Ping Pong (Ball geht oft waagerecht nach oben)

BeitragSa, Sep 23, 2006 1:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe die sufu schon benutzt und dazu nichts gefunden...
Also:
Code: [AUSKLAPPEN]
    Angle# = Rand(1, 359)
 Ball\XPos = Ball\XPos + Cos(Angle#) * Speed#
 Ball\YPos = Ball\YPos - Sin(Angle#) * Speed#


so soweit funzt es der ball geht zufällig in eine richtung (kollision etc habich schon alles)
Nur hab ich das problem das er zwischendurch mal genau waagerecht nach oben geht (also unendlich oft hoch runter hoch runter...)
Ich habe schon viel versucht aber ich krigs nicht hin
Lösung: wenn der ball nach oben gehen will Angle# = Rand(1, 359) neu ausführen
Nächstes Prob: Wie finde ich heraus das er nach oben gehen will
 

bruce85

BeitragSa, Sep 23, 2006 2:17
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo,
versuchs mal so:

Code: [AUSKLAPPEN]
Ball\XPos = Ball\XPos + Cos(Ball\Angle) * Speed#
Ball\YPos = Ball\YPos + Sin(Ball\Angle) * Speed#

If Ball\XPos < 0 Or Ball\XPos > 680 Then
  Ball\Angle = 180 - Ball\Angle
EndIf
If Ball\YPos < 0 or Ball\YPos > 680 Then
  Ball\Angle = 360 - Ball\Angle
EndIf


das problem ist das du die gleiche angle für alle bälle benutzt, du musst wenn schon auch so machen: Ball\Angle Wink

Gruss Andreas
 

bruce85

BeitragSa, Sep 23, 2006 2:23
Antworten mit Zitat
Benutzer-Profile anzeigen
sry, aber ich glaub net das Rand kommazahlen haben dürfen, soweit ich weiss musst du es mit Rnd machen.

beispiel:
Rand(360) oder Rnd(0,359)

Edit: wenn das dann immer noch net geht, dann musst du am anfang den befehl: SeedRnd MilliSecs() setzen wenn du es noch net getan hast.
weil dieser befehl aktiviert den Zufalssgenerator Wink

Gruss Andreas

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSa, Sep 23, 2006 9:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ball\YPos und Ball\YPos müssen Floats sein!
Das sollte dein Problem lösen!
[BB2D | BB3D | BB+]

d-bug

BeitragSa, Sep 23, 2006 9:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Um erstmal grundsätzliches hier zu klären :

Waagerecht ist nicht hoch/runter sondern links/rechts!
Senkrecht ist hoch/runter ! Wink

cheers

Izen

BeitragSa, Sep 23, 2006 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab jetz Ball\XPos und YPos zu floats gesetzt und Anstelle von Rand(1,359) Rnd(1,359) genommen und jetz gehts
Irgendwie ja peinlich bei solchen kleinigkeiten aber naja is halt mein erstes Spiel^^

garret

BeitragSa, Sep 23, 2006 16:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Am Unterschied Rand() - Rnd() sollte es eigentlich nicht liegen. Rand(x,y) liefert ganze Zahlen zwischen x und y, Rnd(x,y) gebrochene. Wenn der Ball nicht senkrecht fliegen soll, darf der Winkel halt nicht 90 oder 270 Grad sein, denn dann wäre die Flugbahn ja parallel zur Y-Achse.


MfG garret
>>nec aspera terrent<< (Auch Widerwärtigkeiten schrecken nicht)
 

bruce85

BeitragSa, Sep 23, 2006 21:28
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo Izen,
also, es sind normal 360 Grad, entweder machst du das so Rnd(0,359) oder Rnd(1,360), aber normal kennt man ja kein unterschied wenn ein Grad fehlt Wink

Goodjee

BeitragSa, Sep 23, 2006 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
du musst einfach überprüfen ob der winkel waagerecht oder senkreht ist und wenn ja 5 addieren, subtrahieren oder einfach nen neuen winkel per zufall machen
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group