Morgen, allerseits,
muss mich noch mal ans Forum wenden, weil ich es nicht hinbekomme, zu prüfen, ob noch ein Zug möglich ist. Ich habe ein Spielfeld von 15*15 Steinen a 40 Pixel. Ein Zug ist dann noch möglich, wenn sich 3 Steine der gleichen Farbe (object) berühren. Alle Objekte in dem Spielfeld sind solid.
Bis jetzt hab ich folgendes überlegt: Das Spielfeld von unten nach oben prüfen (die Steine fallen nach unten), die Prüfung abbrechen, wenn eine leere Zeile da ist, darüber kann kein Stein sein.
Während der Prüfung jedes Feld darauf überprüfen: hat der betreffende Stein Nachbarn der gleichen Farbe? Bis jetzt überprüfe ich nur auf einen Nachbarn, aber schon das klappt nicht :-(((
Mein Code bisher:
Alles anzeigen
Wie gesagt, ich hab noch keine Vorstellung, wie ich auf 2 gleiche Nachbarn prüfen soll - aber nicht einmal die Prüfung auf einen Nachbarn haut hin.
Wer kann hier bitte weiterhelfen? Ich kaue schon seit einer Woche an dem Problem...
Danke schön schon mal im voraus für evtl. Hilfe,
Archie
muss mich noch mal ans Forum wenden, weil ich es nicht hinbekomme, zu prüfen, ob noch ein Zug möglich ist. Ich habe ein Spielfeld von 15*15 Steinen a 40 Pixel. Ein Zug ist dann noch möglich, wenn sich 3 Steine der gleichen Farbe (object) berühren. Alle Objekte in dem Spielfeld sind solid.
Bis jetzt hab ich folgendes überlegt: Das Spielfeld von unten nach oben prüfen (die Steine fallen nach unten), die Prüfung abbrechen, wenn eine leere Zeile da ist, darüber kann kein Stein sein.
Während der Prüfung jedes Feld darauf überprüfen: hat der betreffende Stein Nachbarn der gleichen Farbe? Bis jetzt überprüfe ich nur auf einen Nachbarn, aber schon das klappt nicht :-(((
Mein Code bisher:
GML-Quellcode
- var i,j,o_objekt;
- global.zaehler=0;
- for (j=580;j>=20;j-=40)
- {
- for(i=20; i<600; i+=40)
- {
- if collision_line(0,j,600,j,all,true,true) = noone {exit}; // leere Zeile? Dann Abbruch
- o_objekt=position_meeting(i,j,object_index); // hier bekomme ich NICHT den Namen des Objektes geliefert. Was muss stattdessen da stehen??
- if o_objekt <> -1 // abhängig von der oberen Zeile: nur prüfen, wenn da überhaupt ein Stein ist - ist wohl auch falsch
- {if(position_meeting(i+40,j,o_objekt) || position_meeting(i-40,j,o_objekt) || position_meeting(i,j+40,o_objekt) || position_meeting(i,j-40,o_objekt)) global.zaehler+=1}
- } //Wenn Prüfung erfolgreich (=Zug möglich), dann den Zähler erhöhen.
- }
- } // Mist, hatte alles so schön übersichtlich eingerückt, aber der Editor hat alles wieder zusammengeschoben :-(
Wie gesagt, ich hab noch keine Vorstellung, wie ich auf 2 gleiche Nachbarn prüfen soll - aber nicht einmal die Prüfung auf einen Nachbarn haut hin.
Wer kann hier bitte weiterhelfen? Ich kaue schon seit einer Woche an dem Problem...

Danke schön schon mal im voraus für evtl. Hilfe,
Archie
Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... 
