Kollision(Wie PingPong)

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

azureuz

Betreff: Kollision(Wie PingPong)

BeitragDi, Dez 07, 2004 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
ich wollte mal fragen wie man die Kollision mit dem Ball und Schläger so macht, dass der Ball auch mal nach oben oder unten fliegt? Bisher fliegt mein Ball immer nur von links nach rechts und andersrum...!
 

Mogon

BeitragDi, Dez 07, 2004 19:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Kein Plan. Kann mich aber daran erinnern, das mal in René's Buch gelesen zu haben. Wenns einer hat bitte posten Laughing

Last Anquav Hero

BeitragDi, Dez 07, 2004 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
erm.. noch schlimmer! gibt es nicht von dieser sorte threads schon mehrere?!

edit: suchen lohnt! https://www.blitzforum.de/view...=ping+pong

Rolling Eyes
 

azureuz

BeitragDi, Dez 07, 2004 19:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Last Anquav Hero hat Folgendes geschrieben:
erm.. noch schlimmer! gibt es nicht von dieser sorte threads schon mehrere?!

edit: suchen lohnt! https://www.blitzforum.de/view...=ping+pong

Rolling Eyes


ich hab die suche benutzt! ich hab auch ne menge threads gefunden...aber in keinem wurde mein problem erklärt oder so. und in dem thread, den du mir da zeigst, darf man keine fragen stellen...
 

noir

BeitragDi, Dez 07, 2004 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
für ein einfaches "pingpong" spiel brauchst du dich nicht an physikalische gesetzte orientieren.
es reicht eigentlich wenn du überprüfst ob der ball den "schläger" oben oder unten berührst.
dann kannst du ja per zufall (rand) den ball entweder nach oben oder unten fliegen lassen.

wenn du es etwas anspruchsvoller willst, sollte der ball wenn er an die wand oben oder unten prallt auch entsprechend abprallen.
- entweder du machst das auch willkürlich per zufall
- oder du schaust dir ma sin, cos etc. an, damit kannst du schon realistischere abprallvorgänge simulieren.
 

azureuz

BeitragDi, Dez 07, 2004 20:46
Antworten mit Zitat
Benutzer-Profile anzeigen
bisher ist das so, dass ich gesagt habe, dass sobald der bald den schläger berührt, geht das ball auf der x-achse zurück, da ich keine ahnung hab wie man das anders macht!
 

noir

BeitragDi, Dez 07, 2004 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn du den ball nach oben fliegen lassen willst musst du nicht y-koordinaten verändern.
 

azureuz

BeitragDi, Dez 07, 2004 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
hm? soll ich sonst mit winkel arbeiten? aber dann ist das doch auch so 'gescriptet'?!
 

noir

BeitragDi, Dez 07, 2004 20:59
Antworten mit Zitat
Benutzer-Profile anzeigen
tja,

dann musst du halt den ballflugwinkel berechnen.
zwischen ball und schläger, dann lässt du ihn abprallen ........

oder du kannst auch einfach die richtungskoorinaten des balles umkehren.
dh. wenn der ball von rechts unten kommt lässt du ihn nach links oben wegfliegen

Hubsi

BeitragDi, Dez 07, 2004 23:38
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
If Kollision
speedx=speedx*-1
speedy=speedy*-1
EndIf

ballx=ballx+speedx
bally=bally+speedy

DrawImage ball,ballx,bally
Was ist eigentlich aus Sandstorm geworden? Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

stfighter01

BeitragMi, Dez 08, 2004 0:02
Antworten mit Zitat
Benutzer-Profile anzeigen
eine einfache sache wäre diese formel

BlitzBasic: [AUSKLAPPEN]

;B_VX = Ballgeschw in x-richtung
;B_VY = -----\"------- y ---\"----
;B_Y = Ballposition in Y
;SCH_Y= Schlaegerposition in Y
;SCH_hoehe= Schlaegerhoehe
;B_hoehe= Ballhoehe
;B_YMAX= maximale geschw. in y-richtung


B_VX= -B_VX

B_VY= ((SCH_Y-B_Y+SCH_HOEHE/2-B_HOEHE/2) * B_YMAX ) / (SCH_HOEHE+B_HOEHE*2)




mfg stfighter
Denken hilft!
 

Blood Brother

BeitragMi, Dez 08, 2004 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

Ich hab letztens auch mal wieder ein Pong Game geschrieben (neu-auflage meines allerersten blitzbasic spiels Very Happy ). Die Kollision hab ich per Koordinaten abgefragt (alternativ imagescollide - obwohl ich den befehl nicht sehr gut finde...). So und jetzt der winkel (ich schreib jetzt bewusst keinen Code, is besser wenn dus dir selbst herleitest):
Nimm dir nen Blatt papier und zeichne dir die verschiedenen Möglichkeiten für ballrichtung und Kollisionsebene auf. Jetzt trägst du dir in die zeichnung alle winkel ein und überlegst dir, wie du den Ausfallswinkel berechnen kannst (für den Fall, dass Einfallswinkel=Ausfallswinkel). Wenn du die Formeln für den Winkel raushast, pack das ganze in ne funktion und teste.
Damit das ganze net so langweilig wird, kannst du den ausfallswinkel noch per rand etwas verändern (nen paar grad mehr oder weniger, etc.).

Etwas Wissen über Winkel und Winkelfunktionen sollte natürlich schon vorhanden sein Wink , dann isses aber kein problem.

so, hoffe ich habe dir den richtigen denkanstoss gegeben Smile , Gruß

Blood Brother
 

Klaas

BeitragDo, Dez 09, 2004 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Meine Meinung:
nimm keine Winkelfunktionen, diese sind aufwändig und langsam!

Versuche es besser mit Vektoren (siehe "Hubsi" Beispielcode, s.o.)

Hier kleines Beispiel (nicht getestet)
WICHTIG: immer drauf achten das man Float Variablen nimmt, sonst geschieht meißt durch rundungsfehler garnichts!
Code: [AUSKLAPPEN]

vel_x# = 0.1
vel_y# = 0.1

ballx# = ballx + vel_x
bally# = bally + vel_y

if ball_kollidiert_mit_oben_oder_unten = true then
   vel_y = vel_y * -1
end if

if ball_kollidiert_mit_links_oder_recht_bzw_schläger = true then
   vel_x = vel_x * -1
end if

dämpfung# = 0.1 ;stellt den schlägereinfluss ein
if ball_kollidiert_mit_schläger = true then
    delta# = abweichung_Ball_vom_schläger_zentrum
    vel_y = vel_y + (delta / dämpfung)
end if

 

GeGenesis

BeitragDo, Dez 09, 2004 14:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Nimmt doch cos und sin...
BlitzBasic: [AUSKLAPPEN]

x=x+Cos(Winkel)*speedx
y=y-Sin(Winkel)*speedy

Jan_

Ehemaliger Admin

BeitragDo, Dez 09, 2004 15:21
Antworten mit Zitat
Benutzer-Profile anzeigen
@Klaas, bist du krank, er redet von Ping pog, nicht von einer Physikengine, meinst du, da wird es mit den FPS knapp?
between angels and insects
 

Klaas

BeitragDo, Dez 09, 2004 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
ob ich krank bin .. !?!

Man sollte sich immer um ne gute Lösung bemühen sonst gewöhnt man sich nur schlechtes Coding an. Wenn man gleich mit Vektoren anfängt dann versucht man später evtl. in 3D nicht an mit Winkelzeugs(imho)

Zudem sind Vektoren auch viel einfacher zu handeln.

Jan_

Ehemaliger Admin

BeitragDo, Dez 09, 2004 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm, also doch krank.
between angels and insects
 

Klaas

BeitragDo, Dez 09, 2004 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Rolling Eyes

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group