Dim Feld löschen / verschieben?!

Previous topic - Next topic

backslider

Hallo Leute,

Ich habe ein Problem  :nana:
Und zwar bin ich dabei einen BubbleBreaker-Klon zu schreiben. Funzt auch ganz gut, bis auf die Tatsache, dass die Kugeln sich nicht weiter nach unten verschieben, wenn ich welche "gelöscht" habe.
Und ich weiß leider überhaupt nicht so richtig, wie ich das lösen soll =/

Habs zuerst mit DIMDEL ausprobiert, aber da ich ja durch jedes Feld fahre, kriege ich natürlich eine Fehlermeldung, dass ich außerhalb des Array-Bereichs arbeite! Also ist das nicht der richtige Ansatz denk ich mal...

Ich hänge meinen Code mal an und hoffe, dass mir wer helfen kann, wovon ich aber mal stark ausgehe! ;)

mfG

[attachment deleted by admin]

monono

Hallo backslider,
Du brauchst so´ne Funktion in der For/ Next- Schleife, in der du den Aktiven visible auf FALSE setzt:
Code (glbasic) Select

bubbles[bx][by].visible = FALSE
update_bubbles(bx,by)

.
.
.
.

FUNCTION update_bubbles:bx,by
// Eigenschaften verschieben
FOR i = by TO 1 STEP -1
bubbles[bx][i].color% =bubbles[bx][i-1].color%
bubbles[bx][i].visible =bubbles[bx][i-1].visible
                bubbles[bx][i].active = FALSE
NEXT
//oberste leer! oder hier  neue Farbe generieren
bubbles[bx][0].visible= FALSE
ENDFUNCTION


Leider macht es an anderer Stelle ein paar Fehler, weil er immer automatisch die nächste Gruppe an der Stelle wählt. Aber das wäre das nächste Problem   ;)

Und der Teil hier ist glaube ich unnötig. An welcher Stelle können denn die Bubbles aktiv werden ohne dass sie danach glöscht werden?
Code (glbasic) Select

//Delete the bubbles
// IF bubbles[x][y].active = FALSE
// FOR bx=0 TO 10
// FOR by=0 TO 11
//   bubbles[bx][by].active = FALSE
// NEXT
// NEXT


Hoffe es klappt so.
Gruß