Zuma oder Bongo Balls --- als GM6 - wie Programmiere ich...

  • Zuma oder Bongo Balls --- als GM6 - wie Programmiere ich...

    Erstmal ein großes Hallo,

    Ihr kennt doch bestimmt alle das Spiel ZUMA oder Bongo Balls (jetztspielen.de/game43901.html)?

    Nun möchte ich das ganze als *.gm6 (GameMaker6.1) programmieren!

    Ich habe es mal soweit geschafft, dass die Bälle einen Path folgen und angeben wie viel Prozent sie schon zurücklegen.
    Aber wie programmiere ich, dass ein geschossener Ball sich in die Reihe einsortiert? Und falls es, mit dieser, mehr als 3 gleiche Kugeln sind, auflösen?

    Am besten lerne ich wenn ich eine GM6 Datei habe!
    Falls niemand von Euch sowas kennt - Wie wäre es mit eine GM6-Datei ohne Path, nur dass die Bälle auf andere reagieren. Sich auflösen, falls mehr als 3.
    Wie bei "Bubble Shot".


    Ich hoffe Ihr könnt mir helfen...
    57 6F 77 2C 20 64 61 73 20 68 61 73 74 20 64 75 20 67 61 6E 7A 20 61 6C 6C 65 69 6E 20 67 65 73 63 68 61 66 66 74 2E 20

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

  • RE: Zuma oder Bongo Balls --- als GM6 - wie Programmiere ich...

    Bitte um hilfe!

    Ihr versteht doch?
    Wenn man nun auf einer Bällenreihe, einer Farbe, schießt, erkennt das Programm das und diese Lösen sich auf.

    ...
    57 6F 77 2C 20 64 61 73 20 68 61 73 74 20 64 75 20 67 61 6E 7A 20 61 6C 6C 65 69 6E 20 67 65 73 63 68 61 66 66 74 2E 20
  • Doch, natürlich mit Pfad. Und zwar hab ich eine Idee, allerdings muß man zuerst den Pfad genauer berechnen: Normalerweise wird die path_position nur dreistellig angegeben. Ich würde die Auflösung um vielleicht 20 erhöhen (auf 2000). Besser noch: Nimm path_get_length als Größe. Die liegt hoffentlich so um die paar tausend und hat den immensen Vorteil, daß sie genau in Pixeln angegeben ist. So spart man das Umrechnen (einer Ball-Länge in Pfad-Distanz)

    Der sinnvolle Umgang mit Listen erschließt sich vielleicht nicht sofort. Ich verwende sie mittlerweile sehr gerne, z.B. für das oben gesagte: Ich erstelle dafür zwei Listen, eine pa_x und eine pa_y. Dann laufe ich mit einem Objekt den Pfad mit path_speed 1 ab und schreibe jeden Step die x- und y- Positionen in die Listen, so daß am Ende des Pfades weit mehr als 100 Einträge in jeder Liste stehen.
    Diese Listen ersetzen jetzt path_get_x (path) und path_get_y (path).
    Übrigens muß man nicht warten, bis die Listen fertig sind. Die Bälle dürfen nur nicht das Objekt überholen, das die Listen erstellt.

    Wenn jetzt ein Ball entfernt wird, erhalten alle Bälle mit einer höheren Pfad-Position einen Hinweis, daß sie um eine Ballänge zu weit vorne sind. Dieser Wert wird zum insgesamt-zu-weit Wert hinzu addiert.
    Dann muß jeder Ball der zu weit vorne ist, pro Step zurückfallen bis der Wert wieder auf 0 ist...
    Mit dem sich-einreihen von neuen Bällen müßte es ähnlich gehen...
    Ich hab mal mein Glück versucht - einfach nur Bälle anklicken un sie rauszunehmen. Funzt ganz gut, solange man nicht zu schnell klickt. Sonst kollidieren die Bälle manchmal noch unschön.
    Dateien
    • dingens.zip

      (2,86 kB, 166 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 9 mal editiert, zuletzt von Melancor ()

  • Danke! Vielen Dank Melancor!

    OK es ist noch ein wenig unschön, wenn die Bälle überlappen (falls zu schnell geklickt wird).
    Das anziehen wie ein Magnet soll ja nur stattfinden, wenn es Bälle der gleichen Farbe sind. Wie kann man diesen "Magnet" deaktivieren? Sodass dich nur Bälle gleicher Farbe anziehen!

    Wichtiger ist ja folgendes:
    Wenn von einem Punkt ein Ball zu den Path geschossen wird, soll dieser sich einreihen (andere Bälle machen Platz). Und falls er nun der dritte seiner Farbe ist, löst sich das Stück auf.
    Genau so wie bei Zuma!

    PS: Das Spiel sollte sehr stabil sein! Also keine Überlappungen, ...
    57 6F 77 2C 20 64 61 73 20 68 61 73 74 20 64 75 20 67 61 6E 7A 20 61 6C 6C 65 69 6E 20 67 65 73 63 68 61 66 66 74 2E 20

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

  • Benutzer online 1

    1 Besucher