Mehrere Sekundenschuss

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

  • Hallo,
    du erstellst eine Variable im Create event, welche einen Timer darstellt:

    GML-Quellcode

    1. timerToShoot = room_speed*10; //Room speed = 1 sek.


    Dann im Step event:

    GML-Quellcode

    1. if (timerToShoot > 0){
    2. timerToShoot -= 1;
    3. }else{
    4. instance_create(x, y, obj_ghost);
    5. timerToShoot = room_speed*10;
    6. }


    LG Afroman

    cino gefällt das.

  • GML-Quellcode

    1. ___________________________________________
    2. ############################################################################################
    3. FATAL ERROR in
    4. action number 1
    5. of Step Event0
    6. for object NebunterBOSS:
    7. Variable NebunterBOSS.obj_spyrit_VFGN(100007, -2147483648) not set before reading it.
    8. at gml_Object_NebunterBOSS_StepNormalEvent_1 (line 4) - instance_create(x, y, obj_spyrit_VFGN);
    9. ############################################################################################


    Hilfe...
  • cino schrieb:

    ECHSAKT SO!!!!!1111elf111
    (verstehste echs-akt wegen spanisc... ach ... halt doch dei-..)

    Mega ROFL!

    So zum Problem:
    "obj_" im Objektnamen zu Schreiben hat keinerlei Einfluss auf deinen Code. Man nennt das ein "Präfix", mit dem du schon im Namen eine Ressource als den entsprechenden Ressourcen-Typ markieren kannst. So schreibst du zum Beispiel "obj_" hinter einen Objektnamen, damit du als Programmierer weißt "ok dabei handelt es sich um ein Objekt".

    Beispiel:
    Nehmen wir mal an du hast verschiedene Ressourcen in deinem Spiel die alle "spyrit_VFGN" heißen. Du kannst dann wenn du zum Beispiel das Objekt namens "spyrit_VFGN" ansprechen willst gar nicht wirklich gezielt dieses ansprechen, da es ja vielleicht noch ein Sprite mit dem selben Namen gibt. Aus diesem Grund das "obj_", "spr_" usw... Der Computer unterscheidet dabei allerdings überhaupt nicht. Der denkt sich einfach nur, dass das halt der Name der Ressource ist.

    Du hast gesagt dein Objekt heißt nur "spyrit_VFGN". Benenne dieses am besten einfach in "obj_spyrit_VFGN" um. Dann funktioniert dein Code auch. Das Problem bei deiner Fehlermeldung ist, dass du bei dem "instance_create()" Aufruf als Parameter einen Objektnamen mitgibst, der so in deinem Spiel überhaupt nicht existiert, weil du sagst ja selber, dass das gewünschte Objekt nicht "obj_spyrit_VFGN" heißt.

    Afroman, Husi012 und cino gefällt das.

  • cino schrieb:

    Aber es ist doch ein Objekt?! Oder verstehe ich jetzt was falsch? :(
    Mein Objekt heißt: spyrit_VFGN)

    Namen wie "obj_" vor dem Objekt Namen sind nur damit wir den überblick von unseren Ressourcen nicht verlieren. Man kann natürlich irgendeinen Präfix wählen, es sollte einfach Einheitlich sein.
    obj_
    object_
    o_
    was auch immer du möchtest.
    Das sollte man für alle Typen von Ressourcen tun.
    Sprites -> spr_
    Objects -> obj_
    Scripts -> scr_
    Fonts -> fnt_
    Paths -> pth_
    Rooms -> rm_
    Sounds -> snd_
    Backgrounds -> bg_
    Backgrounds as Tilesets -> ts_
    usw.

    Sorm und cino gefällt das.

  • Zusätzlich soll das noch verhindern, dass ,man doppelte Namenvergebung verhindert. Bspw. wenn man ein Sprite hat, welches Ball heißt und ein Objekt hat, welches Ball heißt. Das beißt sich logischerweise dann, wenn du ein Objekt erstellen willst / ein Sprite zuweisen willst, weil der GM dann nicht weiß, welche Ressource er verwenden soll. Deshalb macht es immer Sinn Objekte, Sprites, Räume etc. individuell zu markieren.

    Edit: Huch, Beitrag von Sorm überlesen, er hat das schon geschrieben :)