Zufall von jeweils mehreren 5 instancen wählen

  • GM 8

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

  • Zufall von jeweils mehreren 5 instancen wählen

    habe in collision event 5 create moving instances

    würde aber gerne mehrere machen zb.noch 5 mal 5 weitere

    die frage ist wie stellt man das in drag and drop ein das zufällig eins davon gewählt wird.

    so 5x create moving

    nochmal 5x create moving

    aber random sollte eins von beiden 5x nehmen
  • ja aber wie stellt man dann random ein dazwischen muss doch else oder so kommen oder

    also so

    instance_create moving
    instance_create moving
    instance_create moving
    instance_create moving
    instance_create moving

    hier hin else :vogel: also random entweder oben oder unten alle 5

    instance_create moving
    instance_create moving
    instance_create moving
    instance_create moving
    instance_create moving
  • GML-Quellcode

    1. if (choose(1,2)==1){
    2. repeat(5) {deinkram;}
    3. } else{
    4. repeat(5) {deinandererkram;}
    5. }
    ???!
    Man kann das mit ganz vielen Codes lösen, ein bisschen Mitdenken hilft.
    Bewegende Instances (oder wie es die Fachmänner nennen: create moving instance) machst du in GML mit:

    GML-Quellcode

    1. i = instance_create(x,y,deinobjekt);
    2. i.speed = deinspeed;
    3. i.direction = deinedirection;

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

  • was ist hier falsch

    GML-Quellcode

    1. if (choose(1,2,3,4,5,6)==1){
    2. i = instance_create(x,y,beam_2);
    3. i.speed = 2;
    4. i.direction = 290;
    5. i = instance_create(x,y,beam_2);
    6. i.speed = 2;
    7. i.direction = 300;
    8. i = instance_create(x,y,beam_2);
    9. i.speed = 2;
    10. i.direction = -90;
    11. i = instance_create(x,y,beam_2);
    12. i.speed = 2;
    13. i.direction = -100;
    14. i = instance_create(x,y,beam_2);
    15. i.speed = 2;
    16. i.direction = -110;
    17. i = instance_create(x,y,beam_2);
    18. i.speed = 2;
    19. i.direction = -120;
    20. } else{
    21. i = instance_create(x,y,beam_2);
    22. i.speed = 2;
    23. i.direction = 280;
    24. i = instance_create(x,y,beam_2);
    25. i.speed = 2;
    26. i.direction = 300;
    27. i = instance_create(x,y,beam_2);
    28. i.speed = 2;
    29. i.direction = -90;
    30. i = instance_create(x,y,beam_2);
    31. i.speed = 2;
    32. i.direction = -100;
    33. i = instance_create(x,y,beam_2);
    34. i.speed = 2;
    35. i.direction = -110;
    36. i = instance_create(x,y,beam_2);
    37. i.speed = 2;
    38. i.direction = -120;
    39. } else{
    40. i = instance_create(x,y,beam_2);
    41. i.speed = 2;
    42. i.direction = 280;
    43. i = instance_create(x,y,beam_2);
    44. i.speed = 2;
    45. i.direction = 290;
    46. i = instance_create(x,y,beam_2);
    47. i.speed = 2;
    48. i.direction = -90;
    49. i = instance_create(x,y,beam_2);
    50. i.speed = 2;
    51. i.direction = -100;
    52. i = instance_create(x,y,beam_2);
    53. i.speed = 2;
    54. i.direction = -110;
    55. i = instance_create(x,y,beam_2);
    56. i.speed = 2;
    57. i.direction = -120;
    58. } else{
    59. i = instance_create(x,y,beam_2);
    60. i.speed = 2;
    61. i.direction = 280;
    62. i = instance_create(x,y,beam_2);
    63. i.speed = 2;
    64. i.direction = 290;
    65. i = instance_create(x,y,beam_2);
    66. i.speed = 2;
    67. i.direction = 300;
    68. i = instance_create(x,y,beam_2);
    69. i.speed = 2;
    70. i.direction = -100;
    71. i = instance_create(x,y,beam_2);
    72. i.speed = 2;
    73. i.direction = -110;
    74. i = instance_create(x,y,beam_2);
    75. i.speed = 2;
    76. i.direction = -120;
    77. } else{
    78. i = instance_create(x,y,beam_2);
    79. i.speed = 2;
    80. i.direction = 280;
    81. i = instance_create(x,y,beam_2);
    82. i.speed = 2;
    83. i.direction = 290;
    84. i = instance_create(x,y,beam_2);
    85. i.speed = 2;
    86. i.direction = 300;
    87. i = instance_create(x,y,beam_2);
    88. i.speed = 2;
    89. i.direction = -90;
    90. i = instance_create(x,y,beam_2);
    91. i.speed = 2;
    92. i.direction = -110;
    93. i = instance_create(x,y,beam_2);
    94. i.speed = 2;
    95. i.direction = -120;
    96. } else{
    97. i = instance_create(x,y,beam_2);
    98. i.speed = 2;
    99. i.direction = 280;
    100. i = instance_create(x,y,beam_2);
    101. i.speed = 2;
    102. i.direction = 290;
    103. i = instance_create(x,y,beam_2);
    104. i.speed = 2;
    105. i.direction = 300;
    106. i = instance_create(x,y,beam_2);
    107. i.speed = 2;
    108. i.direction = -90;
    109. i = instance_create(x,y,beam_2);
    110. i.direction = -100;
    111. i.speed = 2;
    112. i = instance_create(x,y,beam_2);
    113. i.speed = 2;
    114. i.direction = -120;
    Alles anzeigen
  • Wenn du nach 1 prüfst, hast du nur ein Else, nicht 5.
    Wenn du 6 Möglichkeiten haben willst, musst du nach den einzelnen Zahlen abfragen.
    Am besten dazu das choose zu einer Variable zuordnen.
    Z.b:

    GML-Quellcode

    1. test = choose(1,2,3,4,5,6);
    2. if test==1
    3. {}
    4. if test==2
    5. {}
    6. if test==3
    7. {}
    8. //[...usw]
    Ich hab hier extra kein Switch genommen, da es sonst nur wieder mehr Probleme geben würde.

    Edit: Ich glaube, ich mache ein GML-Tutorial, weil es davon ja noch nicht genug gibt.
  • Spoiler anzeigen
    Willst du uns verarschen????
    Mein ich nicht böse

    Was funktioniert denn nicht???
    Eine if-Abfrage kann nur ein else nach sich ziehen

    Falls der GM es nicht ausführt dann vielleicht, weil du hunderte von Objekten erzeugst!!!

    Edit zu langsam...
    GML lernen geht leicht :)
    1. http://www.gm-d.de/help/ (deutsch)
    2. gm-d.de/wbb/index.php/Thread/2270/ (Einsteiger-Referenz)
    3. docs.yoyogames.com/ (Hilfe auf Englisch von GM:S)
  • GML-Quellcode

    1. test = choose(1,2,3,4,5,6);{
    2. if test==1
    3. i = instance_create(x,y,beam_2);
    4. i.speed = 2;
    5. i.direction = 290;
    6. i = instance_create(x,y,beam_2);
    7. i.speed = 2;
    8. i.direction = 300;
    9. i = instance_create(x,y,beam_2);
    10. i.speed = 2;
    11. i.direction = -90;
    12. i = instance_create(x,y,beam_2);
    13. i.speed = 2;
    14. i.direction = -100;
    15. i = instance_create(x,y,beam_2);
    16. i.speed = 2;
    17. i.direction = -110;
    18. i = instance_create(x,y,beam_2);
    19. i.speed = 2;
    20. i.direction = -120;
    21. if test==2
    22. i = instance_create(x,y,beam_2);
    23. i.speed = 2;
    24. i.direction = 280;
    25. i = instance_create(x,y,beam_2);
    26. i.speed = 2;
    27. i.direction = 300;
    28. i = instance_create(x,y,beam_2);
    29. i.speed = 2;
    30. i.direction = -90;
    31. i = instance_create(x,y,beam_2);
    32. i.speed = 2;
    33. i.direction = -100;
    34. i = instance_create(x,y,beam_2);
    35. i.speed = 2;
    36. i.direction = -110;
    37. i = instance_create(x,y,beam_2);
    38. i.speed = 2;
    39. i.direction = -120;
    40. if test==3
    41. i = instance_create(x,y,beam_2);
    42. i.speed = 2;
    43. i.direction = 280;
    44. i = instance_create(x,y,beam_2);
    45. i.speed = 2;
    46. i.direction = 290;
    47. i = instance_create(x,y,beam_2);
    48. i.speed = 2;
    49. i.direction = -90;
    50. i = instance_create(x,y,beam_2);
    51. i.speed = 2;
    52. i.direction = -100;
    53. i = instance_create(x,y,beam_2);
    54. i.speed = 2;
    55. i.direction = -110;
    56. i = instance_create(x,y,beam_2);
    57. i.speed = 2;
    58. i.direction = -120;
    59. if test==4
    60. i = instance_create(x,y,beam_2);
    61. i.speed = 2;
    62. i.direction = 280;
    63. i = instance_create(x,y,beam_2);
    64. i.speed = 2;
    65. i.direction = 290;
    66. i = instance_create(x,y,beam_2);
    67. i.speed = 2;
    68. i.direction = 300;
    69. i = instance_create(x,y,beam_2);
    70. i.speed = 2;
    71. i.direction = -100;
    72. i = instance_create(x,y,beam_2);
    73. i.speed = 2;
    74. i.direction = -110;
    75. i = instance_create(x,y,beam_2);
    76. i.speed = 2;
    77. i.direction = -120;
    78. if test==5
    79. i = instance_create(x,y,beam_2);
    80. i.speed = 2;
    81. i.direction = 280;
    82. i = instance_create(x,y,beam_2);
    83. i.speed = 2;
    84. i.direction = 290;
    85. i = instance_create(x,y,beam_2);
    86. i.speed = 2;
    87. i.direction = 300;
    88. i = instance_create(x,y,beam_2);
    89. i.speed = 2;
    90. i.direction = -90;
    91. i = instance_create(x,y,beam_2);
    92. i.speed = 2;
    93. i.direction = -110;
    94. i = instance_create(x,y,beam_2);
    95. i.speed = 2;
    96. i.direction = -120;
    97. if test==6
    98. i = instance_create(x,y,beam_2);
    99. i.speed = 2;
    100. i.direction = 280;
    101. i = instance_create(x,y,beam_2);
    102. i.speed = 2;
    103. i.direction = 290;
    104. i = instance_create(x,y,beam_2);
    105. i.speed = 2;
    106. i.direction = 300;
    107. i = instance_create(x,y,beam_2);
    Alles anzeigen


    wieso kommt die meldung funktion i gibt es nicht oder so
  • if 's über mehr als eine Zeile müssen in geschweifte Klammern, weiß aber nicht ob es dann geht...

    Du kannst auch deine if Bedingung gleich in Klammern setzen, dann kannst du dich später leichter an andere Programmiersprachen gewöhnen.
    GML lernen geht leicht :)
    1. http://www.gm-d.de/help/ (deutsch)
    2. gm-d.de/wbb/index.php/Thread/2270/ (Einsteiger-Referenz)
    3. docs.yoyogames.com/ (Hilfe auf Englisch von GM:S)
  • GML-Quellcode

    1. var test;
    2. test = choose(1,2,3,4,5,6);
    3. if test==1
    4. {
    5. i = instance_create(x,y,beam_2);
    6. i.speed = 2;
    7. i.direction = 290;
    8. i = instance_create(x,y,beam_2);
    9. i.speed = 2;
    10. i.direction = 300;
    11. i = instance_create(x,y,beam_2);
    12. i.speed = 2;
    13. i.direction = -90;
    14. i = instance_create(x,y,beam_2);
    15. i.speed = 2;
    16. i.direction = -100;
    17. i = instance_create(x,y,beam_2);
    18. i.speed = 2;
    19. i.direction = -110;
    20. i = instance_create(x,y,beam_2);
    21. i.speed = 2;
    22. i.direction = -120;
    23. }
    24. else if test==2
    25. {
    26. i = instance_create(x,y,beam_2);
    27. i.speed = 2;
    28. i.direction = 280;
    29. i = instance_create(x,y,beam_2);
    30. i.speed = 2;
    31. i.direction = 300;
    32. i = instance_create(x,y,beam_2);
    33. i.speed = 2;
    34. i.direction = -90;
    35. i = instance_create(x,y,beam_2);
    36. i.speed = 2;
    37. i.direction = -100;
    38. i = instance_create(x,y,beam_2);
    39. i.speed = 2;
    40. i.direction = -110;
    41. i = instance_create(x,y,beam_2);
    42. i.speed = 2;
    43. i.direction = -120;
    44. }
    45. else if test==3
    46. {
    47. i = instance_create(x,y,beam_2);
    48. i.speed = 2;
    49. i.direction = 280;
    50. i = instance_create(x,y,beam_2);
    51. i.speed = 2;
    52. i.direction = 290;
    53. i = instance_create(x,y,beam_2);
    54. i.speed = 2;
    55. i.direction = -90;
    56. i = instance_create(x,y,beam_2);
    57. i.speed = 2;
    58. i.direction = -100;
    59. i = instance_create(x,y,beam_2);
    60. i.speed = 2;
    61. i.direction = -110;
    62. i = instance_create(x,y,beam_2);
    63. i.speed = 2;
    64. i.direction = -120;
    65. }
    66. else if test==4
    67. {
    68. i = instance_create(x,y,beam_2);
    69. i.speed = 2;
    70. i.direction = 280;
    71. i = instance_create(x,y,beam_2);
    72. i.speed = 2;
    73. i.direction = 290;
    74. i = instance_create(x,y,beam_2);
    75. i.speed = 2;
    76. i.direction = 300;
    77. i = instance_create(x,y,beam_2);
    78. i.speed = 2;
    79. i.direction = -100;
    80. i = instance_create(x,y,beam_2);
    81. i.speed = 2;
    82. i.direction = -110;
    83. i = instance_create(x,y,beam_2);
    84. i.speed = 2;
    85. i.direction = -120;
    86. }
    87. else if test==5
    88. {
    89. i = instance_create(x,y,beam_2);
    90. i.speed = 2;
    91. i.direction = 280;
    92. i = instance_create(x,y,beam_2);
    93. i.speed = 2;
    94. i.direction = 290;
    95. i = instance_create(x,y,beam_2);
    96. i.speed = 2;
    97. i.direction = 300;
    98. i = instance_create(x,y,beam_2);
    99. i.speed = 2;
    100. i.direction = -90;
    101. i = instance_create(x,y,beam_2);
    102. i.speed = 2;
    103. i.direction = -110;
    104. i = instance_create(x,y,beam_2);
    105. i.speed = 2;
    106. i.direction = -120;
    107. }
    108. else if test==6
    109. {
    110. i = instance_create(x,y,beam_2);
    111. i.speed = 2;
    112. i.direction = 280;
    113. i = instance_create(x,y,beam_2);
    114. i.speed = 2;
    115. i.direction = 290;
    116. i = instance_create(x,y,beam_2);
    117. i.speed = 2;
    118. i.direction = 300;
    119. i = instance_create(x,y,beam_2);
    120. }
    Alles anzeigen


    Du hast die Klammern vergessen ;)
  • Wenn du irgendeine nachvollziehbare Logik hinter den Richtungen hättest, könntest du das ganze stark vereinfachen.

    GML-Quellcode

    1. test = random(1,6);
    2. repeat(5) {
    3. i = instance_create(x,y,beam_2);
    4. i.speed = 2;
    5. i.direction = irgendEtwasUmDieDirectionZuBerechnen * irgendeinZusammenhangMitDerZufälligenZahl;
    6. }

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

  • Bevor wir jetzt noch weiter mit diesen unendlich langen Code arbeiten, solltest du (Pirat) uns lieber mal sagen, was genau du vorhast (mit einem Bild z.B.), dann können wir dir vielleicht eine Lösung geben die noch kürzer und besser ist und so vielleicht einfach zu verstehen ist. Auf die Schnelle kann ich jetzt auch kein Muster zwischen den fünf Fällen erkennen, deine Direction und auch deine Anzahl der Instancen die erstellt werden ist scheinbar zufällig.

    Einen Verbesserungsvorschlag hab ich aber noch für deinen Code:

    GML-Quellcode

    1. i = instance_create(x,y,beam_2);
    2. i.speed = 2;
    3. i.direction = -120;


    kannst du auch direkt als Skript umsetzen (du sparst somit viele Zeilen die einfach das selbe machen).

    GML-Quellcode

    1. //create_beam(real direction)
    2. var i;
    3. i = instance_create(x, y, beam_2);
    4. i.speed = 2;
    5. i.direction = argument0;
    6. return i; //kannst du weglassen


    Du erstellst also ein Skript mit dem Namen create_beam (Name eigl. völlig egal) und packst nun den oberen Code rein. Nun kannst du einfach schreiben:

    GML-Quellcode

    1. create_beam(-120);
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Wie wärs mit einer for schleife?

    GML-Quellcode

    1. for (i = 0 ; i <= 360 ; i += 90)//der Winkel muss natürlich angepasst werden
    2. {
    3. inst = instance_create(x,y,beam_2);
    4. inst.speed = 2;
    5. inst.direction = i;
    6. }

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)