| |||||||
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) |
| Neuer User Registriert seit: May 2003 Ort: Köln
Beiträge: 22
| Idee fuer Pathfinding Engine gesucht
hallo. ich suche nach einer idee, wie ich eine spielfigur innerhalb eines spieles an gegenstaenden vorbeilaufen lassen kann. es handelt sich nicht um eine iso-engine. in meinem spiel habe ich es so geloest, dass die spielfigur sich nur dort bewegen kann, wo sie auch kontakt zum mc "boden" hat. dieser liegt im hintergrund (also im spiel selber nicht sichtbar). damit er nicht ueber gegenstaende laeuft habe ich dort, wo im hintergrund (in der grafik) der gegenstand ist ein loch in den "boden" gemacht - wo kein boden ist, da kann er auch nicht laufen. in einigen raeumen bin ich hingegangen und habe, sobald meine spielfigur eine bestimmte y-koordinate ueberschreitet gegenstaende in den vordergrund gelegt, so dass es aussieht, als koenne er dahinter laufen. doch das eigentliche problem besteht darin, dass er nicht von a nach b laeuft, wenn dort ein hinderniss (fehlender boden) im weg ist. vielleicht ist es besser zu versteht, wenn ihr euch das problem mal kurz im spiel anschaut: www.sleegers.de/radioaktiv ach ja, das spiel ist noch im beta-stadium. unteranderem aus den beschriebenen gruenden. siehe aber auch: http://www.flashforum.de/forum/showt...light=betatest vielen dank (und viel spass) Geändert von MarvinGnop (24-09-2003 um 11:01 Uhr) |
| | |
| | #2 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
hallo, verstehe das Problem. Den Boden-MC fragst mit hitTest ab; wenn er nicht mehr berührt wird, geht es nicht weiter. Ein Ansatz könnte sein, 1) zwischen Startpunkt (Standpunkt) und Zielpunkt alle x Pixel abzufragen, ob dort noch Boden ist. 2) Wenn dann kein Boden mehr vorhanden ist, zwischen dem letzten Zustand mit Boden und dem ersten ohne Boden per Schleife den Schnittpunkt zu einer Linie (Pfad) suchen und den Charakter dorthin bewegen. Dort angekommen den Pfad abspielen und den Charakter der _x und _y-Position folgen lassen. Am Ende der Pfad-Ani wieder den Weg zum eigentlichen Ziel aufnehmen. Durch die geschickte Wahl eines Prüfabstands in 1) reduziert sich die Anzahl der zu prüfenden Positionen auf ein erträgliches Maß. Allein die Erstellung der Pfade im Löcher im Boden ist etwas aufwendig. Eine zweite Möglichkeit wäre ggf., zwei sich schneidende Tangenten zum Loch im Boden zu suchen und den Charakter um eine Ecke ans Ziel zu bewegen. Das scheitert ggf. an zu nah aneinanderliegenden Löchern, bzw. an ungünstigen Winkeln zwischen Start- und Zielpunkt. Die dritte Möglichkeit, die mir spontan einfällt, wäre, bei Verlust des Bodens in engen Winkeln und geeigneter Intervallschachtelung den Umriss des Lochs zu suchen und nachzugehen. Das ist am flexibelsten für alle Boden-Maps, bedarf keiner Pfade, ist aber auch am entwicklungs- und rechenintensivsten. Würde mich freuen, wenn du dein Ergenbnis dann nochmal posten könntest. Grüße Sascha
__________________ 12:15, press return |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: May 2003 Ort: Köln
Beiträge: 22
|
...wuerde mich auch freuen, wenn ich das Ergenbnis bald posten koennte. werde ueber deine anregungen nachdenken und bald mal anfangen zu tuefteln. bin aber flash-neuling und werde da wohl schon noch einige zeit fuer brauchen. wenn was bei rumkommt, wird es natuerlich gepostet. vielen dank fuer die anregungen und gruss aus koeln nach koeln... nicht, dass du etwa im nachbarhaussitzt ;-) marvin Geändert von MarvinGnop (24-09-2003 um 13:24 Uhr) |
| | |
| | #4 (permalink) |
| Farbe ist Luxus Registriert seit: May 2003 Ort: Köln
Beiträge: 2.405
|
schau doch mal ... jetzt aus dem Fenster, wenn du jemanden winken siehst, sitze ich wohl im Nachbarhaus ![]() Aber man kann ja nie wissen... hocke hier am Chlodwigplatz. Grüße Sascha
__________________ 12:15, press return |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |