random???

  • Win

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

  • Wollte machen das es entweder ein oder ein anderes Object erstellt!
    Das ist rausgekommen!

    GML-Quellcode

    1. if global.start =1 &&
    2. (floor(random(2-1))=0)
    3. {
    4. instance_create(x,y,Police_pistel);
    5. }
    6. else
    7. {
    8. instance_create(x,y,Police_shotgun);
    9. }

    jedoch werden irgend wie 50 objekt erstellt und es fängt fürchterlich an zu Laggen!
    Was habe ich falsch gemacht ?(
    Wenn Frodo ein Hobbit ist,sind 8 Frodos dann ein Hobbyte? ?(
  • in welchem Event führst du den code aus?
    Es könnte allesmögliche sein. Wenn der code z.B: im Step event steht und
    die variable "global.start" die ganze Zeit den WErt "1" besitzt, so erstellst du ununterbrochen Instanzen.
    Ohne weitere Information können wir dir da nicht weiter aushelfen.
  • Das ist alles was im Objekt ist =

    Step Event=

    GML-Quellcode

    1. if (floor(random(2-1))=0) &&
    2. global.de =1
    3. {
    4. instance_create(x,y,Police_pistel);
    5. }
    6. else
    7. {
    8. instance_create(x,y,Police_shotgun);
    9. }
    10. if global.start =1 &&
    11. (floor(random(2-1))=0)
    12. {
    13. instance_create(x,y,Police_pistel);
    14. }
    15. else
    16. {
    17. instance_create(x,y,Police_shotgun);
    18. }
    19. //////////////////////////////////////
    20. if global.de =1
    21. {
    22. instance_destroy()
    23. }
    24. if global.start =1
    25. {
    26. instance_destroy()
    27. }
    Alles anzeigen

    Mehr kann ich dazu auch nicht sagen da es nicht mehr gibt 8o
    Wenn Frodo ein Hobbit ist,sind 8 Frodos dann ein Hobbyte? ?(
  • Wo genau setzt du "global.de" und "global.start"?

    Es könnte durchaus sein, dass beide variablen erst später gesetzt werden und das objekt im Step-event
    die Anweisungen in den beiden "else" klammern abarbeitet (bis eben die global variablen auf 1 stehen)

    Nebenbei:

    GML-Quellcode

    1. floor(random(2-1)) = 0 // > 2-1 = 1; random(1) ergibt eine Zahl von 0 bis 0.999999999...; floor() von einer Zahl kleiner als 1 ergibt immer 0. Diese abfrage macht daher keinen Sinn.
  • Also ich habe ein Room Menu dort werden die Beiden Variablen auf 0 gesetzt
    und durch den raum MUSS man durch um in den Room Sandbox zu kommen. Wenn man dort auf den Start Knopf drückt wird eine der beiden variablen auf eins gesetzt(kommt drauf an in welchem room man ist)!
    Wenn Frodo ein Hobbit ist,sind 8 Frodos dann ein Hobbyte? ?(
  • Dann sind es (wie vorher gesagt) die code-snippets in den else anweisungen:

    GML-Quellcode

    1. if (floor(random(2-1))=0) &&
    2. global.de =1
    3. {
    4. instance_create(x,y,Police_pistel);
    5. }else{
    6. instance_create(x,y,Police_shotgun); //wird nonstop ausgeführt
    7. }
    8. if global.start =1 &&
    9. (floor(random(2-1))=0)
    10. {
    11. instance_create(x,y,Police_pistel);
    12. }else{
    13. instance_create(x,y,Police_shotgun);//wird nonstop ausgeführt
    14. }
    Alles anzeigen


    Wenn du diese entfernst, sollte es wieder "normal" laufen. (Wenn ich das Problem richtig verstanden/deuten konnte...)
    Du wirst andere Abfragen verwenden müssen wenn du diese Objekte nach bestimmten kriterien erstellen möchtest.
  • GML-Quellcode

    1. if (floor(random(2-1))=0) &&
    2. global.de =1 // Hier...
    3. {
    4. instance_create(x,y,Police_pistel);
    5. }else{
    6. instance_create(x,y,Police_shotgun);
    7. }
    8. if global.start =1 && // ...und hier ist das Problem
    9. (floor(random(2-1))=0)
    10. {
    11. instance_create(x,y,Police_pistel);
    12. }else{
    13. instance_create(x,y,Police_shotgun);
    14. }
    Alles anzeigen

    Ich vermute mal, du willst nur Objekte erstellen, wenn global.de oder global.start 1 ist. Da du diese aber in derselben Abfrage wie floor(random(...)) verwendest, führt das dazu, dass der else Zweig weiter ausgeführt wird. Denn:

    GML-Quellcode

    1. if statement1 && statement2 {
    2. // do stomething
    3. } else {
    4. // do something else
    5. }

    führt dazu, dass beide Staements wahr sein müssen, damit der erste Block ausgeführt wird. Wenn eines der Statements falsch ist, wird der else Block ausgeführt. D.h. du solltest deinen Code eventuell so umbauen, wenn ich es richtig verstanden habe:

    GML-Quellcode

    1. if (global.de == 1 || global.start == 1) {
    2. if (floor(random(2-1)) == 0) {
    3. instance_create(x,y,Police_pistel);
    4. } else {
    5. instance_create(x,y,Police_shotgun);
    6. }
    7. }

    © 2008 by Teamgrill Productions
  • nico32222 schrieb:

    Achja, ich würde noch "pistel" durch "pistol" ersetzen.

    Soll Deutsch und eine Abkürzung von PISTOLE sein jeden falls kürz ich des so ab!


    What? "Pistole" Deutsch, "Pistol" Englisch. Wie kommt man da auf "Pistel".
    Es ist deine Sache, wie Du deine Variablen nennst, aber wenn andere Leute deinen Code sehen, könnte das problematisch werden.
    "Pistel" ist ja noch halbwegs zu verstehen, wenn du aber Deutsche und Englische Variablen mischt, wird es ein Salat, wo sich keiner mehr auskennt.
    Dieser Beitrag wurde bereits 8.675.628 mal editiert, zuletzt von »levarris07« (Heute, 11:33)