2D - Levelmap ... sich berührende Pads erkennen und ersetzen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

JPD

Betreff: 2D - Levelmap ... sich berührende Pads erkennen und ersetzen

BeitragSo, Jul 04, 2004 15:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

wenn ich so eine Karte habe, und möchte, dass alle 1sen die sich berühren verschwinden, wie soll ich das am besten machen? Ich hab ne Funktion geschrieben, nur diese lässt teilweiße etwas übrig ...

Code: [AUSKLAPPEN]

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x1234 xxxxxxxxxxxxxxxxxxxxxxxx
xxxxx x        1xxxxxxxxxxxxxx
xxxxx4x xxxxxxx xxxxxxxxxxxxxx
xxxxx3x xxxxxxx xxxxxxxxxxxxxx
xxxxx2x xxxxxxx xxxxxxxxxxxxxx
xxxxx1  xxxxxxx xxxxxxxxxxxxxx
xxxxxxxxxxxx1x  xxxxxxxxxxxxxx
xxxxxxxxxxxx2   xxxxxxxxxxxxxx
xxxxxxxxxxxx3   xxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxx11x11xxxxxxxxxxxx
xxxxxxxxxxxxx11x11xxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x  xxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


Zum Beispiel sollten die 4-er Blöcke mit 1sen ganz unten schon am Spielstart eigentlich verschwinden. Ich hab auch schon soviel probiert wie:

Code: [AUSKLAPPEN]

;X-Ebene abtasten
if (pad(x,y)=1) and (pad(x+1,y)=1) = 1 then
pad(x,y)=0
pad(x,y)=0
endif


nur mit dieser Funktion bleiben zum Beispiel bei ungeraden (also 3 1sen) die letzte stehen ... das ist so wie wenn man im Paint ne Fläche füllt ...

Ich kenn ja den Fehler: wenn x = x + 1 ist, ist ja das Pad von vorher was mal 1 war jetzt 0 oder ASC(32)!

währe für jede Hilfe wirklich dankbar ...

mfg JPD

JPD

BeitragSo, Jul 04, 2004 16:30
Antworten mit Zitat
Benutzer-Profile anzeigen
...

soli

BeitragSo, Jul 04, 2004 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst zuerst die ganze Karte abscannen.
Gefunde Felder merkst du dir dann in einem Array oder Type.
Und löscht dann erst zum Schluss die entsprechenden Felder.
solitaire

JPD

BeitragSo, Jul 04, 2004 17:42
Antworten mit Zitat
Benutzer-Profile anzeigen
aha ... mal sehen was sich da machen lässt ...

JPD

BeitragSo, Jul 04, 2004 18:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

For I = 1 To SCRX
For J = 1 To SCRY
If found(I,J) = 1 Then padding(I,J) = 0
Next
Next


hmm ... kaum zu glauben wie einfach es ist ... wenn man die Felder ermittelt hat, diese in der Map im RAM zu ersetzen ...

Danke nochmals ... Wink JPD

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group