| |||||||
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) |
| wau Registriert seit: Jan 2006 Ort: Hamburch
Beiträge: 404
| Kollisions-Erkennung einer Box?
Hi, Nach ein paar Stunden rumprobieren und austesten bin ich immer noch nicht zu einer Lösung gekommen? Es geht um die Kollisions-Erkennung der Ecken(Punkte) einer rechteckigen Box. Die Box hat 9 Punkte (siehe Anhang) die alle auf true/false gechecked werden sollen ob das Tile walkable ist oder nicht? Was sich fürs erste leicht anhört, ist aber nicht so einfach .Also, der Hero kann sich horizontal, vertikal, nach oben und nach unten bewegen. Wenn aber zB. die unteren Punkte "bl" und "bc" beide auf false sind oder "bc" und "br" false, soll der Hero stehen bzw. sich nicht mehr weiter bewegen (im Falle das er gerade fliegt!) Ich hab nun folgenden Code: PHP-Code: Ich schleuse in die Funktion den speed, die dir=direction und die X,Y Koordinaten (in Pixel) rein. Dabei check ich die Koordinaten für den nächsten Schritt, ob er getan werden kann, also zB. Hero._x+speed, Hero._y-speed ect. Weiter check ich ob das Tile walkable ist oder nicht und wie das Tile heisst. anhand des Tilenamens sollen dann noch sonderfälle behandelt werden. Ich hab 3 Symbole in der Bibliothek: Hero, Tile und Board. Ihr braucht nur ein Tile(25x25px) bauen und das als "Tile" verknüpfen. das Gleiche mit Hero. Der Board MC dient nur als Behälter für die Tiles!. Falls jemnd mag, schick ich auch die .fla, dachte mir aber bzgl. des doch nicht so langen Code, das hier eher zu posten und auch weil ich nun die CS3er Version hab, wo ich nicht weiss ob die schon vorhanden ist bzw. inwieweit kompatibel?
__________________ Say no to Internet Explorer 6! |
| | |
| | #2 (permalink) | |
| Der Wunderhund Registriert seit: Jun 2002 Ort: Hattingen
Beiträge: 10.515
| Zitat:
aber wo setzt Du die Figur denn hin, wenn bei einer Ecke ein false entsteht? Wird sie dann wo anders hin gesetzt (_x/_y) oder führst Du den Schritt einfach nicht aus? Und warum gibt es den neunten Punkt in der Mitte? gruß, gaspode | |
| | |
| | #3 (permalink) |
| Raven-Kid Registriert seit: Feb 2006
Beiträge: 350
|
Wenn alles Tile basierend ist,... dann gibts auch andere Möglichkeiten, ohne Hit-Test. Im Array nachsehn ob das Tile das unter/neben/über dem Player ist walkable ist oder nicht, ist weit aus schneller als wenn du 9 HitTests onEnterFrame durchführst.
|
| | |
| | #5 (permalink) |
| Raven-Kid Registriert seit: Feb 2006
Beiträge: 350
|
hoppla,... und ich hab mir fix eingebildet etwas von hitTest gelesen zu haben. Vll einfach nur weil es das nächste war was mir bei "Dabei check ich die Koordinaten für den nächsten Schritt, ob er getan werden kann, also zB. Hero._x+speed, Hero._y-speed ect." eingefallen ist ... xD
|
| | |
| | #6 (permalink) | |
| wau Registriert seit: Jan 2006 Ort: Hamburch
Beiträge: 404
|
Hi gaspode, Zitat:
Der neunte Punkt in der Mitte ist einfach das Zentrum, du hast recht, momentan brauch ich den noch nicht, kann damit aber checken(evtl. für zukünftige Sachen) auf welchen Tile sich die Figur befindet. @[RK] nope, da ist kein hitTest im Code, obwohl ich es an andere Stelle(nicht in diesem Code aber woanders) schon auch mal benutze. Die Grundideen für diese Kollisionserkennung hab ich aus dem Tutorial"Tile-Based-Games" von Tonypa ..Aber das Ganze ist noch ein bisschen komplizierter als man annimmt .Ich hab mal eine .fla hochgeladen (Flash8) http://d.wienand.de/Expo/Boxtest.zip ..die Figur soll nemlich durch die Platformen (gelb/schwarz gestreift) durchspringen/-gehen ABER auf ihnen landen können, wärend sie bei einer Mauer gänzlich davor,dadrüber oder dadrunter stehnbleiben soll (..und nicht wie bei mir reinlaufen?!) Die Sache ist die, und da wirds kompliziert, das die Figur sich bei unterschiedlichen Tiles, unterschiedlich verhalten soll. Bei einer Platform zB. steht die Figur SO LANGE, bis : Code: if(!cb and !bl or !br) Weitere Bugs der Boxtest.fla: 1) die Figur rutscht manchmal in die Mauer rein, beim links und rechts gehen, aber auch meim springen. 2) man kann links/rechts nicht durch Platform gehen. 3) wenn man direkt unterhalb einer Platform steht und springt, springt die Figur zu hoch und landet auf der Platform? ..Wie ich schon in vorigen Thread geschrieben ab, hätte ich echt Bock sowas mal mit jemand anderen zusammen zu Programmieren. Dh. ihr würdet die Engine für die Tiles, das Level-Management, Enemys ect Klassen bauen und ich kümmer mich dann um die Grafik. Zusammen könnte man dann evtl. so ein Mario-Jump'n Run kind of game bauen. Ich bin via ICQ, Teamspeak, Skype usw. erreichbar, schreibt mir einfach ein PM oder Mail ect..
__________________ Say no to Internet Explorer 6! Geändert von Circushund (18-09-2007 um 05:42 Uhr) | |
| | |
| | #7 (permalink) | |
| ;-) Registriert seit: Jun 2007
Beiträge: 187
| Zitat:
__________________ Flash Webdesign Quirkst du noch, oder validierst du schon? | |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |