Eine Riesenbitte an die Profis hier

  • GM 8
  • Eine Riesenbitte an die Profis hier

    Liebe Community,

    ich hab da ein (für mich riesiges) Problem, das für jemand anderen aber vielleicht nur eine Sache von wenigen Minuten ist, und an dem ich nun inzwischen schon über 3 Wochen rumknabbere - ohne Aussicht auf Erfolg. :( Vielleicht bin ich zu blöde dazu, das kann ja sein, aber es klappt und klappt einfach nicht.

    Ich habe hier 3 angefangene Spiele, die alle an derselben Stelle hängen und nicht weiterkommen. Diese 3 Spiele sind allesamt dem Genre "3-in-einer-Reihe" oder so ähnlich zuzurechnen. Es ist kein Problem, die Kugeln, Steine usw. zum Fallen zu bringen oder so was, sondern es hängt einzig an einer einzigen Routine, die ich nicht zustande bekomme: Das Abfragen des Feldes, ob Ketten gleicher Farbe existieren. Z.B. sollen in diesem Beispiel immer dann, wenn 5 Steine der gleichen Farbe aufeinander prallen, diese gelöscht werden.

    Ich hab hier auch schon Tipps bekommen und bekomme es hin, die id des entsprechenden Objektes herauszubekommen. Jedoch das nutzt mit doch gar nichts, da jedes Objekt ja eine eigene, andere id hat! Was ich einfach nicht blicke, ist, wie ich denn anhand der id erkennen kann, ob gleichfarbige Spielsteine an jeden Stein/Kugel grenzen oder nicht. Es hilft mir jedoch wenig, wenn man mir Auszüge aus anderen Programmen zeigt, wo es klappt, weil ich teilweise nicht erkennen kann, was in welchen Variablen dort gespeichert wurde.

    Ich hoffe jetzt, daß mir jemand auf einem anderen Weg einmal helfen kann: ich habe ein Spiel von den Dreien genommen und alles, was jetzt für die Grundfunktion überflüssig ist, wieder rausgenommen. Wobei die Idee zu diesem Spiel natürlich nicht von mir ist. Es passiert jetzt nichts weiter, als daß Steine, die man anklickt, sich bewegen. Aus. Nun muss geprüft werden: wo prallen 5 Spielsteine gleicher Farbe aufeinander?

    Meine Hoffnung ist, daß mir jemand anhand dieses Beispiels mal eine kurze Routine schreibt, die z.B. alle Steine gleicher Farbe, die aneinandergrenzen (waagerecht oder senkrecht, aber auch um die Ecke, jedoch nicht diagonal!), löscht oder auch nur mit dem Objekt "obj_punkt" (auch schon vorbereitet) markiert. Wenn ich das einmal direkt nachvollziehen kann, wie das geht, dann kann ich das auch auf die anderen Spiele alle anwenden.

    Mehr soll gar nicht passieren, es muss da nichts runterfallen oder so, wie gesagt, das hab ich jetzt sowieso alles rausgenommen. Einzig nur sichtbar zeigen, wo Ketten liegen. Das ist meine einzige Bitte und ich hoffe, daß a) jemand meinen SOS-Ruf erhört, damit es endlich hier mal weiter geht und b) das ich mich verständlich ausgedrückt habe, um was es geht.

    Bin schon ganz frustriert, weil es einfach nicht weitergeht seit Wochen. :heul:
    In der Hoffnung auf baldige Hilfe,
    viele Grüsse,
    Archie

    Ach ja, die Beispiel-Datei: steine_minimum.zip

    PS: Ist doch zum Verrücktwerden: seit 11 Uhr versuche ich, den Text hier hochzuladen und jedesmal bricht wegen einer Störung bei t-offline die Leitung für etliche Stunden zusammen... Vielleicht klappt's ja heute noch mal.
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para:
  • Hmm... Das ist ja exakt das gleiche Spiel wie von mir, nur mit kleinen Unterschieden.8| Und es ist auch genau das gleiche Problem das ich hatte! Was solls. :S

    Ich würde das problem mit einem 2dimensionalen Array lösen. Und mit einer Schleife wird jede Reihe und Zeile von links nach rechts oder oben nach unten. Wenn 5 mal die gleiche Blockart gelesen wird werden die Blöcke entfernt. Später vieleicht genaueres dazu.

  • Ja, Du, das kann durchaus sein, daß Du derjenige warst, der mir die Idee weitergeführt hat. Hier war vor ein paar Wochen mal so ein Spielansatz, ähnlich wie meinem, und da hab ich mir die Idee mit dem "Rahmen" abgeschaut, das gefiel mir besser als meine Lösung (inverse Steine). Aber ich weiß nicht mehr, wer das reingestellt hatte und wie das hieß, sorry. Falls Dich stört, daß der Rahmen möglicherweise von Dir sein könnte: ich benutze dieses Game nur zu Übungszwecken.
    Hab aber noch 2 andere, ähnliche Spiele, die wesentlich weiter entwickelt sind, deshalb hab ich dieses hier auf die Grundfunktionen zurückgesetzt, weil es die wenigsten Objekte hat. War halt am einfachsten.

    Hast Du denn schon eine Lösung gefunden für dieses Problem? Ich glaube eher, daß die Lösung in einer Rekursion liegt, bloß wie gesagt, ich bekomme immer nur die komische id geliefert, mit der ich im Grunde nichts weiter anfangen kann. Offenbar haben hier mehrere Leute das gleiche Problem, was auch nicht verwunderlich ist, da alle 3-in-einer-Reihe-Spiele auf dieses Prinzip aufgebaut sind.

    Und auch dieses merkwürdige rosa Viech, das rückwärts läuft und sich hier plötzlich als mein "Avatar" ausgibt, kann mir da nicht weiterhelfen...
    Archie
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para:
  • Schritt 1:
    Mach dein Spiel abstrakt. Damit meine ich, dass du weniger mit den Objekten genau nachstellst, was da passieren soll, sondern viel eher mit einem Array oder einem Grid das Spielfeld realisierst und dann mit einem Script dieses visualisierst.

    Schritt 2:
    In so einem Array kannst du viel einfacher agieren und durch einfache Schleifen, Zähler und Abfragen feststellen, ob du bestimmte Nachbarbedingungen erfüllt sind.
  • MewX schrieb:

    Mach dein Spiel abstrakt.
    Na ja, ich hab ja schon alles rausgenommen, was für diese Funktion überflüssig wäre. Das "Spiel" macht ja schon gar nichts weiter als bunte Steine zeigen....
    Kann mir (und offenbar auch anderen mit dem gleichen Problem) denn wirklich nicht jemand mal ein Beispiel für dieses einfache Spielfeld schreiben? Bitte...
    Archie
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para:
  • Hab mich mal ein bisschen dran Gesetzt, und hoffentlich den gewünschten Effekt dir in das Beispielprojekt nun eingebaut.
    Nun konnte man dir auch besser helfen, da man wusste was du genau vor hast ;)

    Die Datei ist im Anhang.
    Kommentare wurden eingefügt, sowie eine Readme die Grob die Änderungen beschreibt.

    Hoffe das hilft dir weiter.

    Mfg.,
    Mokuyobi
    Dateien
    木曜日 (Mokuyōbi)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Mokuyobi ()

  • Wow. Ich ziehe immer meinen Hut vor Leuten, die solche Konzepte tatsächlich in Drag'n'Drop umsetzen. Respekt!

    Dennoch komme ich nicht umhin den Tipp zu geben, die Lösung von Mokuyobi anstatt mit Instanzen mit einem Grid umzusetzen oder einem Array. Das wird dann etwas vertrackt bei dem Darstellen der Animationen, ist aber am Ende relativ losgelöst vom Game Maker und macht es dir leichter es zu erweitern.

    Aber mit dieser tollen Lösung hättest du ja so noch wenigstens etwas zu tun. ;)
  • Mokuyobi schrieb:

    Hab mich mal ein bisschen dran Gesetzt, und hoffentlich den gewünschten Effekt dir in das Beispielprojekt nun eingebaut.
    Nun konnte man dir auch besser helfen, da man wusste was du genau vor hast
    WHOW!!! Klasse, danke!! Ich habe erst einen Blick reingeworfen, aber ich glaube, ich hab jetzt kapiert, was ich immer falsch mache! Menno, finde ich spitzenmäßig von Dir, daß Du Dir diese Mühe gemacht hast - und das, obwohl Du mir schon mal was gegeben hattest, das ich allerdings nicht so ganz nachvollziehen konnte. Sorry dafür ;)

    Also, ich schlage hiermit Mokyobi für den GM-Verdienst-Orden vor! Gibt's nicht? Egal, dann führen wie ihn eben ein. Du weißt ja gar nicht, wie Du (vermutlich nicht nur mir!) damit geholfen hast!
    1000 Dank noch mal!!!!!!!!!! *freu wie blöde*
    Archie
    PS: Jetzt kann es endlich weitergehen mit den halbfertigen Spielen - die Nacht ist ja noch lang... ;)
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para: