Breakout

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

  • hallo ich mach grad ein Breakout-Game und da bin ich auf folgendes Problem gestossen:
    Ich hab ein Objekt namens Blocks gemacht welches 10 frames mit Blöcken mit versch. Farben hat.
    Dann hab ich eingestellt im Objekt Blocks unter Create:

    image_speed=0
    image_index=random(0) +9

    das heißt das eine zufälliges Frame (farbe) geladen wird.+

    leider haben aber dann alle Blöcke die gleiche (Zufalls)Farbe, was ich aber nicht will.

    Ich möchte das es bei jedem instance die random funktion anwendet und somit nicht alle die gleiche Farbe haben.

    danke im vorraus!
  • thx aber wiso
    image_index=round(random(9)
    ?


    noch ne frage

    ich möcht das ein ball immer relativ an der stelle eines anderen objektes sein soll, also schreib ich in das step event des balls:
    x=???
    y=???


    ...ergänze die fragezeichen xD
  • Zum besseren Verständnis:

    GML-Quellcode

    1. image_index=random(0)+9


    random(0) ergibt immer 0, da die Zahl in der Klammer die höchste Zahl bildet, die mit random() erreicht werden kann.
    Dein Code ergibt demnach also immer 0+9 also 9...deswegen dürften auch alle das 10. Subimage des Sprites als Grafik haben.

    GML-Quellcode

    1. image_index=round(random(9))


    Da random() auch dezimalstellen mit einbezieht, und jede Zahl von 0-9 rauskommen kann, wird die Zahl vorher gerundet.
    Also wenn das Ergebnis von random(9) 1.4 ergibt, wird auf 1 abgerundet, bei 1.7 beispielsweise auf 2 aufgerundet.
    Mit ein bisschen logischem Denken wärste auch selbst dahinter gekommen.


    Zu deiner Frage:
    Lies dir doch erstmal ein paar Tutorials durch oder sowas, dann lernste ne Menge und musst nich für jeden Pups hier nachfragen.

    Spoiler anzeigen

    GML-Quellcode

    1. x=deinobjekt.x
    2. y=deinobjekt.y
  • Ich hab es schon mal erklärt, mache es aber gerne hier noch einmal. ^^
    Angenommen du hast folgenden Code:

    GML-Quellcode

    1. zahl = round(random(5));
    Bedeutet das, dass du eine zufällige Zahl zwischen 0 und 5 erzeugst und diese rundest.
    Also werden die Wahrscheinlichkeiten so aufgeteilt:
    0.0 bis 0.5 = 0 ... 10 %
    0.5 bis 1.5 = 1 ... 20 %
    1.5 bis 2.5 = 2 ... 20 %
    2.5 bis 3.5 = 3 ... 20 %
    3.5 bis 4.5 = 4 ... 20 %
    4.5 bis 5.0 = 5 ... 10 %

    Ich hoffe du erkennst den Unterschied: 0 und 5 kommen zu kurz,
    bei ihm würden 2 Farben nur halb so oft dran kommen wie andere, darum. :P
  • Ich muss gestehen, so hab ich das auch noch nicht betrachtet. Aber bisher war ich noch nicht in der Situation, dass ich darauf hätte Acht geben müsse, glaub ich.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Ähm, das mit round() ist klar, aber... floor hat doch auch eine sehr geringe Wahrscheinlichkeit in Punto 5
    Also
    floor(random(5))
    0....0-0.9°(steht für periodisch)
    1....1-1.9°
    2...2-2.9°
    3....3-3.9°
    4....4-4.9°
    und 5 ähem 5 also eine moment 15 nullen hinten dran und dann mal 10 schätz ich mal also Chance von 1 zu 10000000000000000.
    Man könnte jetzt sagen das kommt sowieso nicht vor, aber in einer step abfrage und das mehrmals, und viele leute spielen das spiel: irgenwann wird auch dieser seltene Fall eintreten.
    Liege ich hier komplett falsch, oderrr... :D
    PULSE

    Zweispieler [||||||||||]
    Einspieler [||||||||||]

    [Die Entgrater ist auf Eis gelegt]
  • Achso, achso. Na klar. Jetzt ist mir alles klar. (Ich hab schon öfters angenommen das auch das höchste kommt :thumbdown: ).
    PULSE

    Zweispieler [||||||||||]
    Einspieler [||||||||||]

    [Die Entgrater ist auf Eis gelegt]