| |||||||
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) |
| _//\\#//\\_ Registriert seit: Jan 2003
Beiträge: 7.060
| kollisionserkennung über hittest zu langsam ?
hi, hab ein wenig mit kollision etc. rumgespielt und als basis teile eines scriptes hier aus dem forum benutzt. läuft auch , aber irgendwie scheint hittest nicht so recht zuverlässig zu sein. mitunter tanzt der ball an den abzufragenden objekten, als solle es so sein .dem ist aber nicht so. manchmal "schlägt" er sogar durch den unteren balken durch, womit das spiel vergeigt ist. ein anders mal rattert das teil unter dem balken durch, so daß der delete.onenterframe befehl (game over) wenigstens 10 mal ausgelöst werden müßte...ich hab keine ahnung, woran das liegen mag. ActionScript:
mal probieren hat jemand ähnliche erfahrungen ? |
| | |
| | #2 (permalink) |
| .--. .. ..- ... Registriert seit: Jul 2002 Ort: munich
Beiträge: 1.345
|
hab's mir jetzt nicht genauer angesehen ... (bisserl lang am morgen) ... aber wir haben auch mal so eine stosssimulation gebastelt und sind mit 'hittest' nirgendwo hingekommen ... ... ging alles über berechnung des ballmittelpunktes. dabei haben wir aber schon immer im voraus berechnet, ob er im nächsten frame das ziel schneidet. war das der fall, haben wir dann auch den ort nach dem stoss berechnet und ihn dort hin gesetzt (v ändern!) ... jo soweit ...
__________________ one out of many |
| | |
| | #3 (permalink) |
| _//\\#//\\_ Registriert seit: Jan 2003
Beiträge: 7.060
|
@pius in die richtung hab ich auch schon überlegt, ist allerdings eine umständliche sache. irgendwie ist das mit der verzögerung allerdings bei genauem nachdenken nicht ganz unlogisch, da der hittest ja das signal zum negativieren der richtung erst geben muß, sodaß die umsetzung ja erst im nächsten frame passieren kann. (denke ich mal )muß man also wahrscheinlich doch irgendwie anders herangehen, indem man die noch abzuarbeitende wegstrecke mit einbezieht, wie du es im prinzip andeutest. (mühsal, und sicher für olle rechner nicht so einfach ) grz |
| | |
| | #4 (permalink) |
| .--. .. ..- ... Registriert seit: Jul 2002 Ort: munich
Beiträge: 1.345
|
im gegenteil... die verzögerung entsteht ja nur einmal beim ersten schritt ... danach rechnet er einfach voraus und angezeigt wird es verzögert ... wir haben damals eine brownsche molekularbewegung mit physikalischem stoss berechnet ... und performancemäßig war das das beste ... einer meiner studenten hat's ausgeführt: http://www.stud.tu-muenchen.de/~pius...r_andreas.html ... ja, da sind auch noch kleinere bugs aber der kurs war schon zu ende und der schein schon vergeben ...
__________________ one out of many |
| | |
| | #5 (permalink) | |
| Level up Registriert seit: Jun 2001 Ort: Bocholt
Beiträge: 4.155
|
hähä, schönes Beispiel pius... besonders weil es auch in Deinem Beispiel genau zu dem Problem kommt, daß warrantmaster eigentlich behoben haben wollte Zitat:
ActionScript:
- der Balken trifft die Kugel von der Seite (in der senkrechen Richtung ca. mittig von der Kugel) => hit => die Richtung wird gewechselt nächster Frame - der Balken liegt immer noch in der Kugel =>hit => die Richtung wird wieder gewechselt => Zittern ....abfangen könntest Du das mit einer zusätzlichen Variable die halt angibt ob es im vorherigen frame bereits zum hit gekommen ist, der Richtungswechsel muss dann halt verhindert werden... ...dann das nächste, die Kugel fliegt 'durch' den Balken: naja der hitTest wird halt in jedem Frame gemacht, wenn die Kugel im vorherigen frame vor dem Balken liegt und im nachfolgenden dahinter, dann gibts auch kein hit, mögliche workarounds: - Geschwindigkeit der Kugel halbieren, framerate verdoppeln - ein hitTest, der nicht die Kugel sondern eine virtuelle Linie zwischen vorheriger und aktueller Kugelposition auf 'hit' testet - der mathematische Lösungsansatz von Pius Gruß Alois
__________________ -Spuckt mir auf den Stuhl, ich will im Grünen sitzen- | |
| | |
| | #7 (permalink) |
| _//\\#//\\_ Registriert seit: Jan 2003
Beiträge: 7.060
| @alois speedy = -speedy-0.05; nun, die 0.05 bringen zumindest soviel, daß man nicht vor dem screen sitzt und sich der ball immer wieder genau auf die selben punkte zubewegt. das mit der zusätzlichen variablen scheint mir eine simple wie gute idee zu sein, ich werd das heute abend mal antesten. wenn hit, hittest für x-time deaktivieren. könnte allerdings bei "ball an seite und auf balken" zu probs führen. na mal schauen |
| | |
| | #8 (permalink) |
| .--. .. ..- ... Registriert seit: Jul 2002 Ort: munich
Beiträge: 1.345
|
naja, og davor gerade ein hit stattfand reicht nicht aus ... wenn er in eine ecke springt und zb erst unten und gleich danach links berührt ... mann muss bei hit==true nachsehen, ob man sich von dem objekt wegbewegt und dann den hit unterdrücken ... @Alois ... im Link sind wir dazu aber leider nicht mehr gekommen ...
__________________ one out of many |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |