Problem mit beim zählen

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

  • Problem mit beim zählen

    also

    ich habe es ein platform spiel gemacht da wo man wie bei minecraft steine abbauen kann und wieder aufbauen kann. mit diesen code:


    CREATE EVENT OBJ BLOCK

    GML-Quellcode

    1. knock = 3



    LEFT PRESSED OBJ BLOCK

    GML-Quellcode

    1. if point_distance(x+25,y+25,obj_player.x,obj_player.y)<250 // blöcke zerstören....wie weit man entfernt sein darf
    2. {knock-=1;
    3. image_index+=1;
    4. if (knock <=0)
    5. {
    6. global.block+=1;
    7. instance_destroy();
    8. }}



    jedoch zählt es manchmal falsch .....bis zb 7 ist alles gut und dann pötzlich zählt er 2 blöcke für einen ...bitte um hilfe....


    ich denke das war nur ein fehler bei der raum erstellung das er mehrere blöcke hinter einander gemacht hat glaube ich halt....aber wer weiß

    doch wie könnte ich jetzt sagen das er maximal 5 blöcke abbauen kann.```=??``

    mit

    GML-Quellcode

    1. if global.block >5
    2. {
    3. knock=0;
    4. }


    funktioniert nicht.

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

  • Probier das mal:

    GML-Quellcode

    1. if point_distance(x+25,y+25,obj_player.x,obj_player.y)<250 // blöcke zerstören....wie weit man entfernt sein darf
    2. {knock-=1;
    3. image_index+=1;
    4. }
    5. if (knock <=0)
    6. {
    7. global.block+=1;
    8. instance_destroy();
    9. }

  • Du musst prüfen ob block < 5 ist und nur dann darf der abfrage code gestartet werden

    GML-Quellcode

    1. if global.block < 5 && point_distance(x+25,y+25,obj_player.x,obj_player.y)<250 // blöcke zerstören....wie weit man entfernt sein darf
    2. {knock-=1;
    3. image_index+=1;
    4. }
    5. if (knock <=0)
    6. {
    7. global.block+=1;
    8. instance_destroy();
    9. }



    ABER du solltest den zerstör und abfrage code nicht in deinen Blöcken haben, weil wenn du dann eine map aus zig blöcken hast und jeder block prüft jeden step ob der Spieler da ist und <5 Blöcke hat dann wird dein Spiel schnell an Performance verlieren, genauso wie wenn jeder Block ein eigenes Object ist. Zum lernen aus ausprobieren kannst dus aber mal so machen.

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

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

  • noch ein problem beim zählen mit den coins:


    also ich hab im

    PLAYER OBJECT
    PLAYER COLLISSION EVENT mit coin gemacht und darin geschrieben global.coins+=1 und dann noch nen sound.

    dann hab ich im
    COIN OBJECT
    COIN COLLISION EVENT mit player gemacht und da den destroy the instance benutzt also das der coin verschwindet.


    und im
    STEUER OBJECT
    hab ich ganz normal im create event die variablen definiert also global coin ....global block usw...und im dortigen draw event das hud gezeichnet.

    was ist daran falsch....
  • füg da beim Player diesen Code noch ein:

    GML-Quellcode

    1. ​with(other)
    2. instance_destroy();

    dann kannst du den bei Object Coin machen. Das ist glaub ich etwas wahrscheinlicher dass das dann geht, bin mir aber nicht sicher.
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe