Zurück   Flashforum > Flash > ActionScript > Spielkonzepte und Spieleprogrammierung

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-11-2009, 15:21   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2008
Beiträge: 10
HitTest mittels Alphamaske

Hallo!

Bastle gerade an einem kleinen Flashgame, wobei man einen Helicopter durch einen Welt manövriert.

Die "Welt" ist eine 2D-Ebene welche als PNG (+Transparenz) dynamisch reingeladen wird und als Sprite konzipiert ist.

Jetzt sollte der Helicopter natürlich nur in der Luft fliegen können (also im transparenten Bereich der Welt).

Da Sprite.hitTestObject() leider nur auf die BoundingBox hin abfrägt, wollte ich das ganze selbst implementieren und alle Kanten des Helicopters abprüfen, ob sie im Transparenten bereich der Welt-Ebene liegen.

Ein Sprite-Objekt bietet aber leider keine getPixel()-Methode, daher werde ich vorher das Sprite, bzw. den Teil des Sprites, in welchem sich der Heli gerade bewegt in ein BitmapData-Objekt schreiben müssen, nehm ich an?

Das Problem dabei ist, dass ich bei der draw()-Methode des BitmapData zwar sehrwohl den Sourcebereich-Bereich des zu zeichnenden Sprites angeben kann, nicht aber, wo dieser Bereich hingezeichnet werden soll (nämlich auf 0/0)?

Mir wird momentan der Bereich auf das BitmapData immer dorthin gezeichnet, wo er auch im Sprite liegt.

Hab ich da was übersehen?

Ist diese Methode überhaupt vernünftig und zweckmäßig, eine solche Kollision zu prüfen?

Soweit ich das mitbekommen habe, hat ein BitmapData eine Dimensionsbegrenzung. Meine Welt-Ebene hat jedoch Abmessungen von ca. 8000x600px. Daher nur unter einem Sprite vereinbar, oder?

Danke für eure Hilfe!

markus
bloodfire ist offline   Mit Zitat antworten
Alt 23-11-2009, 08:16   #2 (permalink)
Pixelschubser
 
Registriert seit: Sep 2001
Beiträge: 65
Ich hatte bei meinem Game das gleiche Problem. Ich hab es damit gelöst, das ich mit meinem Bitmap-Sprite einen einfarbigen unsichtbaren Vektor-MC mitverschoben habe, der die Konturen des Spielersprites hat und den auf meine Bitmap-Kollisionsgrafiken gegengeprüft habe. Keine einwandfreie Bitmaplösung, ich weiß. Funktioniert aber ohne Performancenachteile super.

Ich verwende dazu übrigens diese hittest-Engine:
http://www.tink.ws/blog/as-30-hittest/
__________________
http://www.visuellgestalten.de
eye-fx ist offline   Mit Zitat antworten
Alt 23-11-2009, 23:25   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2008
Beiträge: 10
Vielen dank!!

Ich kann zwar dem ersten Teil leider nicht ganz folgen (...), aber ich übergebe jetzt einfach mein Chopper-Sprite bzw. den Spielebenen-Sprite an die HitTest-Enginge und das klappt einwandfrei! :-)
bloodfire ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
alphamaske, hittest, transparenz

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
XML mittels PHP speichern paplo-g ActionScript 3 6 15-10-2008 10:34
JPEG to SWF mittels PHP massel Flash CS3 Professional 0 12-03-2008 13:28
hitTest mittels Koordinaten von getBounds (Break Free) pdiddyp Flash Einsteiger 2 07-11-2007 20:02
swf mittels URL beeinflussen? skittles Flash 8 1 23-07-2007 14:04
Zufallsfarbe mittels AS Xelat2000 ActionScript 1 12 16-05-2003 12:15


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele