| |||||||
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) |
| LiquidFrames Registriert seit: Jun 2003
Beiträge: 412
| Hittest <----schrott
gibt es ne efektive methode für ne collisionsabfrage? hit test is dumm weil man da nur ein punkt mit einem movieclip testen kann. mann kann zwar 2 mk miteinander vergleichen, dann aber ohne dieses shapeflag oder so ich gerade das spiel: www.dc-liga.de/lander.swf (sieht billig aus, ... isses auch^^) momentan vergleiche ich immer 2 punkte mit dem level mk: 1-den rotmarkierten 2-der punkt wo der mittlere düsenstrahl rauskommt das is ziehmlich beschissen. kennt jemand zufällig ne methode ne richtige colisionsabfrage zu machen? (die bei diesem genere sinn macht) das wäre geil, ich grüble nähmlich schon 2 tage an diesem problem, und durch diese 2 punkte sache wirds immer schwerer neue futurs zu progen. (praktisch wärs wenn es erkennt von wo mann anstößt^^) ps: es wäre zwar geil, aber ich erwarte hier nochnichmal ein vollen code, ideen würden auch helfen^^ (weil in einem anderen forum schonmal jemand richtig zugeschissen wurde, nach dem motto, "willst ja nur kostenlos dein script!!") cu |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.322
|
jeden flächen-punkt eines objektes mit jedem flächen-punkt eines anderen objektes zu testen wäre "vollkommen" (moment, ich hab noch nicht fertig geschrieben) langsam :-) zumal flash bzw. aktionscript nicht unbedingt DIE entwicklungsumgebung für aktion-spiele ist. den meister erkennt man in der bescheidenheit! dein ufo-ding (?) inklusive düsenstrahl ist fast kreisförmig. also interessiert davon nur der mittelpunkt. von deinem gelben was-es-auch-immer-sein-mag ding machst du eine kopie. diese flächen erweitert du um den radius des ufos (menü modifizieren/ form/ füllung erweitern) = kollflaeche. ab dafür in ein mc und das auf der bühne unsichtbar machen. jetzt kannst du mit dem "schrott-befehl" hittest den mittelpunkt des ufos mit der kollflaeche testen. noch genauer? decke dein ufo mit z.b. 3 gleichgrossen kreisen ab. selbes verfahren wie eben (fläche um den radius dieser kreise erweitern), dann halt mit 3 test's. hält sich performensmässig auch noch im rahmen. "..praktisch wärs wenn es erkennt von wo mann anstößt.." letzte position zur aktuellen position = die richtung da wo der hittest positiv ist, da hat er angestossen!?
__________________ die ultimative antwort auf alle programmierfragen: der debugger mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Nov 2001 Ort: Köln
Beiträge: 106
|
Die Kollisionabfrage von Flash ist eigentlich ziemlich prima, weil recht schnell... und die lässt Dir über die Punktabfrage doch alle Möglichkeiten. Dein Raumschiff hat soch eine sehr geometrische Form. wenn man's nicht zu genau nimmt, ist das gerade mal nen Dreieck. Und wenn das nicht reicht machst du eben ein 5-oder 6-Eck raus. Bau Dir einen MovieClip auf gleicher Ebene wie Dein Schiff. Darin platzierst Du nun Deine Kollisionspunkte - entweder wirklich in Form von MovieClips, was aber langsam ist, oder in Form von Koordinaten. Dei fragst Du nun jedes Frame ab... und fertig. Dadurch, dass Du so weisst, welcher Punkt mit dem ZielClip kollidiert ist, hast Du sogar ne lokalisierte Kollisionsabfrage. Ist doch super...?! Was gibt's denn da zu mosern? Ich mach das bei meinen Spielen in aller Regel so, dass ich in meine SpriteClips kleine Kreuz-MovieClips plaziere, um die Kollsionspunkte grafisch auf der Bühne editieren zu können. Wenn ich die Sprites dann auf die Bühne bring (onLoad) übertrage ich die Koordinaten meiner Kreuzchen in ein Array, dass dann als Kollisionspunktliste fungiert. Die nun überflüssigen Clips werden entfernt und der Rest läuft über eine Kollisionsabfrage mit Punkt und ZielClip. Eine Alternative ist, den abzufragenden Clip mit mehreren rechteckigen Clips "nachzumalen" (und dann !_visible zu schalten), die dann Clip2Clip gecheckt werden können. In dem Fall macht es Sinn, ein mehrstufiges Kollisionssystem zu verwenden, das verschieden grob ist, damit das alles nicht zu langsam läuft. Bei deinem Spiel würde ich das kombinieren - mindestens den ZielClip (die Landschaft) in mehrere Clips unterteilen und nur jeweils die Region abfragen, in der das Schiff sich gerade befindet. das birngt schonmal einiges. Dem Schiff würd ich dann noch einen einzelnen Clip für eine grobe Clip2Clip-mit der Landschaftsregion spendieren. Wenn da dann eine Kollision vorliegt, zum PunktArray für Genauigkeit und Lokalisierung übergehen. Dann läuft das alles fix... und genau. ;-)
__________________ http://www.rumbke.de |
| | |
| | #4 (permalink) |
| LiquidFrames Registriert seit: Jun 2003
Beiträge: 412
|
erstmal danke für die netten antworten^^ dein tip mit den kreuze-->array-->löschen find ich gut, so werd ichs erstmal machen^^, ich werde wohl 4 punkte machen 1)mitte (triebwerk) 2)spitze 3+4) linke und rechte ecke ich denke das ist genau genug für ein minispiel^^ und die performens wird schon stimmen wenn nicht kann man ja sagen das in jedem frame nur einer der punte gescheckt wird, und dann halt alle nacheinander ich hoffe das geht so^^ |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |