zufällig objekte am room-rand erstellen

  • GM 8

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

  • zufällig objekte am room-rand erstellen

    ja das ist die frage:
    wie geht das?
    alle objekte sollen am rand erstellt werden.
    zu prüfen ist auch ob schon ein objekt an der stelle erstellt wurde.

    wie mach ich das?
    jede runde soll ein objekt mehr erstellt werden..

    gruß gruen


  • ich würde das so machen

    GML-Quellcode

    1. if not place_meeting(x,y,dein_objekt) then instance_create(x,y,dein_objekt)


    Wenn das objekt am rechten spielrand erstellt werden soll dan ist natürlich bei instance_create das x durch room_width bzw auch in der abfrage place_metting.

    Du nicht die genau Koordinaten kennst kannst du das auch etwas gröber machen.
    In dem du einen bereich abfragst mit

    GML-Quellcode

    1. if collision_circle(x,y,deine_reichweite_in_Pixel,zu suchendes Objekt,1,1)=false then instance_create(x,y,dein_objekt)


    Das müste soweit gehen glaub ich
    Meine Signatur hat kein Visum für das GM Forum erhalten.
  • folgendermaßen gelöst..(zurhälfte jedenfalls)

    GML-Quellcode

    1. if(lvl=1)and (spawn<1){
    2. if(choose(1,2,3,4)=1){
    3. x_position=1;
    4. y_position=random(640);
    5. instance_create(x_position,y_position,obj_enemy);
    6. }
    7. else if(choose(1,2,3,4)=2){
    8. x_position=640;
    9. y_position=random(640);
    10. instance_create(x_position,y_position,obj_enemy);
    11. }
    12. else if(choose(1,2,3,4)=3){
    13. x_position=random(640);
    14. y_position=1;
    15. instance_create(x_position,y_position,obj_enemy);
    16. }
    17. else if(choose(1,2,3,4)=4){
    18. x_position=random(640);
    19. y_position=640;
    20. instance_create(x_position,y_position,obj_enemy);
    21. }
    22. spawn=1;//wieviele sollen gespawnt werden...
    23. }
    Alles anzeigen


    das ding ist, es wird nicht 100 prozent immer ein objekt gespawnt...

    wo hab ich denn den fehler???
    ich geh davon aus das hier kein fehler drin ist 8| odda?


  • der fehler ist dass wenn bei der ersten abfrage nicht 1 rauskommt, dass dann nochmal abgefragt wird und wenn da wieder 1 rauskommt wird wieder weiter gefragt und wenn dann wieder 1 rauskommt dann wird wieder abgefragt und wenn dann 1 rauskommt dann geht es nicht mehr weiter. ich hoffe du verstehst was ich meine...
    du könntest es stattdessen so machen:

    GML-Quellcode

    1. switch (choose(1,2,3,4))
    2. {case 1:x_position=1;
    3. y_position=random(640);
    4. instance_create(x_position,y_position,obj_enemy);break
    5. case 2:
    6. x_position=640;
    7. y_position=random(640);
    8. instance_create(x_position,y_position,obj_enemy);break
    9. case 3:
    10. x_position=random(640);
    11. y_position=1;
    12. instance_create(x_position,y_position,obj_enemy);break
    13. case 4:
    14. x_position=random(640);
    15. y_position=640;
    16. instance_create(x_position,y_position,obj_enemy);break
    17. }
    18. spawn=1;//wieviele sollen gespawnt werden...
    Alles anzeigen