Kollision(Wie PingPong)
Übersicht

azureuzBetreff: Kollision(Wie PingPong) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kein Plan. Kann mich aber daran erinnern, das mal in René's Buch gelesen zu haben. Wenns einer hat bitte posten ![]() |
||
![]() |
Last Anquav Hero |
![]() Antworten mit Zitat ![]() |
---|---|---|
erm.. noch schlimmer! gibt es nicht von dieser sorte threads schon mehrere?!
edit: suchen lohnt! https://www.blitzforum.de/view...=ping+pong ![]() |
||
azureuz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() 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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wenn du den ball nach oben fliegen lassen willst musst du nicht y-koordinaten verändern. | ||
azureuz |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hm? soll ich sonst mit winkel arbeiten? aber dann ist das doch auch so 'gescriptet'?! | ||
noir |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
BlitzBasic: [AUSKLAPPEN] If KollisionWas ist eigentlich aus Sandstorm geworden? ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
stfighter01 |
![]() Antworten mit Zitat ![]() |
---|---|---|
eine einfache sache wäre diese formel
BlitzBasic: [AUSKLAPPEN]
mfg stfighter |
||
Denken hilft! |
Blood Brother |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
Ich hab letztens auch mal wieder ein Pong Game geschrieben (neu-auflage meines allerersten blitzbasic spiels ![]() 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 ![]() so, hoffe ich habe dir den richtigen denkanstoss gegeben ![]() Blood Brother |
||
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nimmt doch cos und sin...
BlitzBasic: [AUSKLAPPEN]
|
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
@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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, also doch krank. | ||
between angels and insects |
Klaas |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group