RTS Formationen

  • RTS Formationen

    Hallo zusammen. Nach einer sehr sehr langen Pause meld ich mich mal wieder hier:P

    Hab also eine Frage zur RTS-Steuerung. Also die Steurung ist soweit so gut, aber die Formationen passen noch nicht so ganz.
    Ich hab bei einer Ausgewählten Einheit ins Global Right Pressed event diesen code eingebaut.

    GML-Quellcode

    1. if ds_list_find_index(global.list,id) !=-1
    2. {
    3. a=sqrt(ds_list_size(global.list))
    4. b=ds_list_find_index(global.list,id)
    5. c=ceil(b/a)
    6. zielx=mouse_x+(b-(c-1)*a)*32
    7. ziely=mouse_y+c*32
    8. }


    Das heißt, wenn diese Einheit in der Liste (global.list) vorhanden ist wird der code durchgeführt. Ich denke das muss ich nicht weiter erläutern.
    Ich hatte die Idee ein Formationsrechteck zu machen. Also wenn ich z.B. 16 Einheiten ausgewählt habe, dann sollen 4 Reihen mit jeweils 4 Einheiten entstehen.
    Bei 25, 5x5 und so weiter...
    Die 16 Einheiten sind mit der Variabel "a" definiert und die 4x4 bekomme ich mit "b" raus. Aber das danach schaff ich einfach nicht. Der soll halt nach 4 in die nächste "Zeile" gehen und wieder bis 4 durchnummerieren.
    Im anhang nochmal ein Bild zur veranschaulichung. Die Zahlen sind die Nummern der Liste.

    Ich hoffe ihr könnt mir helfen. :)
    Bilder
    • formation.png

      635 Byte, 67×67, 151 mal angesehen

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

  • probier mal folgendes script:

    GML-Quellcode

    1. var ind, a;
    2. ind = ds_list_find_index(global.list,id)
    3. if (ind != -1)
    4. {
    5. a = ceil(sqrt(ds_list_size(global.list)))
    6. zielx = mouse_x-32*(a-1)/2+(ind mod a)*32
    7. ziely = mouse_y-32*(a-1)/2+(ind div a)*32
    8. }

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Bl@ckSp@rk ()

  • Benutzer online 1

    1 Besucher