| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| [Ernst Reiter] Registriert seit: Jul 2001 Ort: austria
Beiträge: 3.691
| Game „Breakout“ Kollisionen usw.......
Hallo..... An sich das alte Spielprinzip..... 3 Wände und einen Balken denn man mit Hilfe der Cursor Tasten links rechts bewegt.. und so verhindert das der Ball unter den Balken kommt.. So viel zum Grund Prinzip. Funktioniert so weit auch. Mein Gedanke wahr nun „Ich möchte nicht nur gerade Wände haben sondern eine Art Level Generator erstellen. Damit ich dies jedoch kann, brauch ich Bausteine.. (wie Legosteine) und so verwinkelte Levels bauen zu können.... Ich habe dafür Folgende Elemente (MCs) definiert... und in das MC „Level“ gepackt Ein Baustein hat die Länge (somit Kollisionsfläche) von 30 Pixel. - 12 MCs für Links (rot) Ball springt nach rechts weg nach Kollision - 12 MCs für Rechts (blau) Ball springt nach links weg nach Kollision - 16 MCs für Oben (grün) Ball springt nach unten nach Kollision - 6 MCs für Unten (gelb) Ball springt nach oben weg nach Kollision mit Hilfe dieser Bausteine habe ich eine Level gebaut welches nicht nur gerade Wände hat. Auf dem Ball liegt Folgender Code: ================================== PHP-Code: Mein Problem ist nun…… das ab und zu der Ball einfach durch die Wand läuft….. Sprich die Kollisions- abfrage nicht greift..... kann es Sein das es einfach zu viele IF Abfragen auf einem Element (dem Ball) sind???? Weiteres muss ich die Aktivflächen (Legobausteine) überlaben.. Sonst bekomme ich einen Ping Pong Effekt.. ist das Normal oder woran liegt das? Meine abfrage PHP-Code: Was mir im Moment nicht ganz k ist.... Bin für Ideen in jede Richtung dankbar.... DANKE! |
| | |
| | #4 (permalink) |
| Flashworker Registriert seit: Nov 2001 Ort: Wiesbaden
Beiträge: 10.945
|
Nee.. Bin nicht vom Lösungsansatz ausgegangen: Du könntest die Zeilen mit dem hitTest aber ziemlich verkürzen (da würden 3 oder 4 zeilen genügen) Aber Johannes wird dir helfen könnnen, der ist unser Breakout Experte ![]() Sebastian |
| | |
| | #5 (permalink) |
| auferstanden Registriert seit: Sep 2001 Ort: München
Beiträge: 5.247
|
Hoi geht auch kürzer, wobei natürlich nicht gerade performanceschonend: PHP-Code: |
| | |
| | #6 (permalink) |
| [Ernst Reiter] Registriert seit: Jul 2001 Ort: austria
Beiträge: 3.691
|
Ok.... das ist mir noch k...... an sich wollte ich mal den sicheren Weg gehen... optimieren der Scripts am Ende... mein Problem ist ja eigentlich das die Kollisions- abfrage nicht immer geht... Kann sein das es bei 10 Kollisionen 9 mal geht und dann aber auch mal gar nicht...... Wenn ihr die fla mal startet werdet ihr es merken... das der Ball ab und zu einfach durch die Wand läuft |
| | |
| | #7 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
klassisches breakout funktioniert ja so, dass die steine nacheinander verschwinden. hittests mit nicht vorhandenen steinen machen aber nicht viel sinn, oder ? am einfachsten und am effizientesten ist es, die steine den hittest machen zu lassen. mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #8 (permalink) |
| [Ernst Reiter] Registriert seit: Jul 2001 Ort: austria
Beiträge: 3.691
|
So weit bin ich noch nicht.. im Moment kämpfe ich noch mit den Wänden..... die Steine die dann weggesprengt werden mach ich den hitTest natürlich am Stein selber.... Aber der Gedanke hat was... müsste mal versuchen was ist wenn ich auch auf die Wandelemente (wie oben beschrieben 46 Elemente) den HitTest lege um den Ball abprallen zu lassen... und nicht auf den Ball selber.... Danke! |
| | |
| | #9 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
ausserdem musst du bei erfolgreichem hittest dafuer sorgen, dass der ball anschliessend wieder im feld und nicht auf dem stein ist, sonst prallt er nicht ab mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #11 (permalink) |
| Animateur Registriert seit: Aug 2001 Ort: Gießen
Beiträge: 72
|
Hi Auch wenn es jetzt mit dem Wandhittest funktioniert, wirst du wahrscheinlich ein Problem bekommen, wenn der Ball schneller wird. Dann wird er nämlich auch durch die Wand fliegen, da eine Linie als Kollisionsfläche sehr dünn ist. Und wenn sich der Ball z.B. 12 px pro frame bewegt, kann es sein daß er in einem Frame vor der Linie ist, und dann im nächsten schon dahinter. Du solltest vielleicht die Kollisionsfläche nach hinten hin größer machen. Dann mußt du allerdings bei einer Kollision den Ball erst wieder vor die Linie setzten und dann die Richtung ändern, sonst fliegt der Ball Zickzack, wenn er zu weit in die Kollisionsfläche hineingekommen ist. Hoffe ich könnte das einigermaßen verständlich erklären. Gruß makemyday |
| | |
| | #12 (permalink) |
| [Ernst Reiter] Registriert seit: Jul 2001 Ort: austria
Beiträge: 3.691
|
...... also das mit dem Strich habe ich schon bemerkt.. daher habe ich auch die Kollisionsfläche größer gemacht.... aber das Zickzack Problem habe ich in der tat ab und zu........ das mit dem wieder rausetzen hört sich logisch an...... das sollte ich mal versuchen.... Danke für den Tipp! |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |