type löscht falschen frame aus tile set

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Dottakopf

Betreff: type löscht falschen frame aus tile set

BeitragFr, Okt 05, 2007 9:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hio blitzer !

Ich hab n kleines minigame gemacht, bei dem man mit seinen "block" anderen hindernissen ausweichen muss. Der spieler und die hindernisse sind alle in einer bitmap drinne, das sind gesammt 7 bilder. Wenn jetzt der spieler ein weißes kästchen berührt(frame = 0), soll dieses gelöscht werden. Bei allen anderen bildern(frame 1-5 hindernisse, frame 6 = player) Soll das spiel vorbei sein. Die überprüfung sind dan so aus:

Code: [AUSKLAPPEN]

 If ImagesCollide(block_set,MouseX(),MouseY(),6,  block_set, info\bx,info\by,0) Then
            Delete info.box



aber statt mir nur den frame 0 (des weise kästchen) zu löschen, löscht er alle types mit denen ich kollidiere.
Hab au scho andere frame werte probiert hat aber nicht funktioniert.

mfg Dottakopf

hectic

Sieger des IS Talentwettbewerb 2006

BeitragFr, Okt 05, 2007 12:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum packst du Tiles in ein Type? Sowas sollte man in ein 2D/3D-Dim packen und nicht zu zeichnende Tiles als 0 oder -1 deklarieren. Mit Dims kannst du auch ganz einfach nur den Bereich nach Kollision überprüfen, der überhaupt relevant sein könnte. Mit Type ginge es nur mithilfe von Object und Handle.

Denoch, so wie du es machst, solltest du eine weiteres Field in deinem Type benutzen, der angibt, welches Tile an Position angezeigt werden soll. Dann kannst du auch überprüfen, ob dein richtiges Tile mit gewünschtem kollidiert. So hast du hardcodet Kollision auf nicht hardcodet Tilesset, was zwangsweise zu Problemem führt.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Dottakopf

BeitragFr, Okt 05, 2007 12:45
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm sry dumm von mir erklärt ...

Ich hab in dem sinne kein tileset bzw irgendeine größere tile energie wie bei meinem RPG. Ich bin bei nem kumpel gewesen und hab versucht, ein minigame zu proggen, bei dem man einfach nur quadraten ausweichen muss, und ein spezielles weises quadrat einsammeln muss.
Ich wollte das ganze in einem typ machen, mit zwei hätt ichs schon gelöst, aber das ist einfach zu billig.

Code: [AUSKLAPPEN]

Type box
 Field bx
 Field by
 Field b_richtung
 Field b_speed#
 Field b_punkte
 Field b_frame    ;da wird alles abgespeichert (der spieler, die hindernisse, das weise kästchen)
End Type


Warum kann ich nicht kann ich nicht überprüfen wenn "bild_frame(spieler) mit bild_frame(weises kästchen) kollidiert, dann löschen ??"

Code: [AUSKLAPPEN]

 If ImagesCollide(block_set, MouseX(),MouseY(),7  , block_set, info\bx,info\by,0  )


du sagst noch ein field auf machen ok: aber den teil hab ich ned so ganz verstanden
Zitat:

solltest du eine weiteres Field in deinem Type benutzen, der angibt, welches Tile an Position angezeigt werden


mfg Dottakopf

Markus2

BeitragFr, Okt 05, 2007 12:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Du testet ja auch immer zu Frame 0 , zeigst aber was anderes auf dem Bildschirm !?
Erweitere mal deine Struktur um CollideFrame
Code: [AUSKLAPPEN]

if info\CollideFrame=0 then
If ImagesCollide(block_set,MouseX(),MouseY(),6,  block_set, info\bx,info\by,[b]info\CollideFrame[/b]) Then
            Delete info.box
endif

Dottakopf

BeitragFr, Okt 05, 2007 13:11
Antworten mit Zitat
Benutzer-Profile anzeigen
outch ^^

das ist mir ezt peinlich ^^ Embarassed

danke, funtzt einwandfei.

mfg Dottakopf

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group