Sprite-Mesh Kollision nur mit Tricks?

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

MrJack

Betreff: Sprite-Mesh Kollision nur mit Tricks?

BeitragDo, Apr 06, 2006 11:35
Antworten mit Zitat
Benutzer-Profile anzeigen
So hier meine Frage...
Gibt es in bb direkt eine Lösung ein Sprite-Mesh Kollision abzufragen?
Bei Mir ist das Raumschiff nen Sprite und Die Station ein Model.
Allerdings würde mir keine Spheren oder Box Kollision reichen.
Also muss es schon "Pixelgenau" Sein.

Mir würde als Trick nur das 3DModel Auf der Ebene des Schiffes in 2D zu rendern und Dann Als Bilder Kollidieren zu lassen einfallen.
Nur Ist BlitzBasic ja mit Dem Alphawerten nicht wirklich gut... Sad

Oder kennt jemand eine Externe kostenlose Sprite Engine die so etwas kann?

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Apr 06, 2006 13:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine pixelgenaue Kollisionsabfrage geht nur mit Images und mit Sprites nur bei BMax. Falls es dir was nützt. Man kann auch mehrere EntityRadius an einem Sprite packen und sich danach richten. Hier ein Beispiel meines aktuellen Spieles mit drei Kollisionsradien.

http://info.frettchenwelt.at/u...st24_1.jpg

*schnell, bevor es vom Server genommen wird*
 

MrJack

BeitragDo, Apr 06, 2006 16:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibt es denn keine Externe SpriteEngine die man verwenden kann?

StepTiger

BeitragDo, Apr 06, 2006 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
kopiere das bild des sprites mal am anfang nach pixel 1,1 und dann liest du alles mit readpixelfast ein

wenn der wert über 0 ist, es also nicht transparent ist, dann wird ein vertex erstellt

Und dann verbindest du einfach alle zu jedem anderem und machst das ganze unsichtbar! Und dann brauchst du noch eine polygon zu polygon collision! Wird sicher ne tolle arbeit *lol*
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

MrJack

BeitragDo, Apr 06, 2006 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
ok hat jemand ne realistische lösung ? Rolling Eyes
 

Dreamora

BeitragDo, Apr 06, 2006 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
geh auf blitzbasic.com in die toolbox und such nach nsprite 2
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragDo, Apr 06, 2006 22:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier ist ein Auszug aus meinem Spiel (mesh(41) ist das Schiff aus http://info.frettchenwelt.at/u...st24_1.jpg):

Code: [AUSKLAPPEN]
 ;Schiff
 EntityShininess mesh(41),1
 spz1=CreatePivot()
 spz2=CreatePivot()
 spz3=CreatePivot()
 PositionEntity spz1,+1.31,0,0
 PositionEntity spz2,-.6,-.78,0
 PositionEntity spz3,-.6,.78,0
 EntityParent spz1,mesh(41),0
 EntityParent spz2,mesh(41),0
 EntityParent spz3,mesh(41),0
 EntityRadius spz1,.2
 EntityRadius spz2,.2
 EntityRadius spz3,.2
 EntityType spz1,1
 EntityType spz2,1
 EntityType spz3,1
 ShowEntity mesh(41)


Funktioniert wunderbar. Jeder Eckpunkt hat sein EntityRadius. Mit ql:CollisionNX /NY /NZ lässt sich der Auftreffwinkel bestimmen, wenn man das Raumschiff 'abbrallen' lassen will. Ansonsten geht eventuell auch die Methode von StepTiger, nur ob eine so hohe Auflösung notwendig ist? Man könnte das Schiff dann etwas gröber eingrenzen. Allerdings bin ich mir nicht sicher ob überhaupt eine Polygon zu Polygon -Kollision geht, so wie du dir das wünscht?

/EDIT: Coole Sache die nsprite 2 -Demo (habs mir grad mal angeschaut). Für 20$ ist es nichtmal so teuer.
 

MrJack

BeitragFr, Apr 07, 2006 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für eure Antworten, habe mich dennoch für npoy entschieden...
Das ist genau das was ich Suche und FREE!

x-pressive

BeitragMo, Apr 10, 2006 7:57
Antworten mit Zitat
Benutzer-Profile anzeigen
In der Regel werden bei den meisten Spielen in solchen Situationen überhaupt keine Pixelkollisionen, sondern nur Radius- oder Rect-Kollisionen gebprüft -und das reicht eigentlich auch. Damit das nicht "auffällt", gibt man den Sprites (also z.B. dem Raumschiff) ein Aussehen, das entweder rund ist oder "eckig", also das gesamte Sprite recht gut ausfüllt. Wenn das Schiff relativ symmetrisch ist und nicht viel "freier Raum" in der Grafik vorhanden ist, sind dann auch einfache Kollisionsabfragen brauchbar.

Darum sehen z.B. bei den alten Plattformspielen die Charaktere immer so zwergenmässig "quadratisch" aus Wink
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL
 

Dreamora

BeitragMo, Apr 10, 2006 8:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder man nimmt polygonbasierte Kollision + SAT.
Pixelperfekt wird eigentlich nie gebraucht, ist jedoch bei animerten Sprites je nach Komplexität einfacher durchzuführen (von den Transformationen her)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group