Einfach nur umständlich

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Einfach nur umständlich

    Hallo,

    ich hab ein sehr großes problem, jedenfalls wird es mir in der zukunft extrem oft begegnen. also ich hab z.b.

    GML-Quellcode

    1. if (mouse_x > 0) && (mouse_y > 0) && (mouse_x < 20) && (mouse_y < 20) {bTstart=1}
    2. //dann gehts weiter mit...
    3. if (mouse_x > 20) && (mouse_y > 20) && (mouse_x < 40) && (mouse_y < 40) {bTstart=2}
    4. //oder z.b.
    5. if (mouse_x > 40) && (mouse_y > 40) && (mouse_x < 50) && (mouse_y < 50) {bTstart=3}


    so, kann man das z.b. iwie mit der for-schleife oder anderen schleifen nur in einen code zusammenfassen oder wenigstens kleiner, ich hab, sagen wir mal, 100 buttons, was dann? ich kann nicht für jeden sonen XXL code nehmen, das haut einfach meine performance nieder :S habt ihr einen rat, wie man das kleiner zusammenfassen kann :vogel:
  • ja, soweit bin ich auch schon gekommen. kann man das jedoch nicht mit einer einfachen schleife umgehen :?:

    " Warum willst du denn 100 buttons haben?
    Das Einzige was du machen könntest, wäre die Abfrage in einen Skript zu packen damit es übersichtlicher wird.
    Der performance würde das aber eher schaden.

    Alternativ können die Buttons auch einfach einzelne Objekte sein die, wenn gedrückt, einen String ausführen.
    "


    das war nur ein beispielt, ich könnte dafür genauso 100 rechtecke drawern oder so...
  • Du könntest alle Positionen im create Event in einen Array packen der dann im Step event mit einer for-schleife durchgelesen wird.
    Um riesige Codebatzen, die die Werte für deine 100 Rechtecke enthalten wirst du wohl nicht wirklich herumkommen.

    Beispiel:

    GML-Quellcode

    1. //create event
    2. var i;
    3. i=0;
    4. array[i,0]=0; //x1
    5. array[i,1]=0; //y1
    6. array[i,2]=10; //x2
    7. array[i,3]=50; //y2
    8. i+=1;
    9. array[i,0]=50; //x1
    10. array[i,1]=30; //y1
    11. array[i,2]=70; //x2
    12. array[i,3]=100; //y2
    13. i+=1;
    14. //deine 98 anderen Rechtecke hier...
    15. total=i;
    Alles anzeigen


    GML-Quellcode

    1. //draw event
    2. for(i=0;i<total;i+=1)
    3. {
    4. draw_rectangle(array[i,0],array[i,1],array[i,2],array[i,3],0)
    5. }