Reihe zerstören - auch über Eck

  • GM 8

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

  • Reihe zerstören - auch über Eck

    N'abend,

    leider finde ich nichtmal einen Lösungsansatz für mein Problem: Es fallen verschiedenfarbige Blöcke von oben herunter und bleiben unten liegen. Bei einer Kollision von 3 (oder mehr) gleichen Blöcken sollen diese zerstört werden.
    Ich hab nochmal ein Bild dazu gemacht; überall wo der Pfeil raufzeigt, soll eine Zerstörung stattfinden:


    Ich bin gerade wirklich völlig ideenlos dazu, deswegen freu ich mich auf eure Hilfe

    Beste Grüße,
    DasTier
    :) :( ;) :P 8) :D ;( :rolleyes: :huh: :S X( 8| ?( :| :thumbdown: :thumbsup: :thumbup: 8o :pinch: :sleeping: :wacko: :whistling: :evil: ^^ :heul: :para:
  • Ok, danke, instance_position und instance_exist - da hätte ich auch drauf kommen können.. :P
    Auf jeden Fall bedanke ich mich schonmal, ich lass den Thread aber noch auf ungelöst, falls mir doch noch Fragen dazu einfallen (man kennt das ja: gerade geschlossen und plötzlich fällt einem noch eine Frage ein :/ )

    edit: Und tatsächlich, mir ist noch etwas aufgefallen: Die Blöcke sollen sich erst auflösen, wenn sie mit der vollen Seite den Kontakt zum anderen Block haben. Dazu habe ich mir einfach folgendes dazu gedacht:

    GML-Quellcode

    1. links1 = instance_position(x-1,y,red);
    2. links2 = instance_position(x-1,y+32,red);
    3. rechts1 = instance_position(x+33,y,red);
    4. rechts2 = instance_position(x+33,y+32,red);
    5. oben1 = instance_position(x,y-1,red);
    6. oben2 = instance_position(x+32,y-1,red);
    7. unten1 = instance_position(x,y+33,red);
    8. unten2 = instance_position(x+32,y+33,red);
    Alles anzeigen


    und dann folgendes:

    GML-Quellcode

    1. if(instance_exists(rechts1) && instance_exists(rechts2) && instance_exists(links1) && instance_exists(links2) ){
    2. with rechts1 instance_destroy();
    3. with links1 instance_destroy();
    4. instance_destroy();
    5. }
    6. if(instance_exists(rechts1) && instance_exists(rechts2) && instance_exists(unten1) && instance_exists(unten2)){
    7. with rechts1 instance_destroy();
    8. with unten1 instance_destroy();
    9. instance_destroy();
    10. }
    11. if(instance_exists(rechts1) && instance_exists(rechts2) && instance_exists(oben1) && instance_exists(oben2)){
    12. with rechts1 instance_destroy();
    13. with oben1 instance_destroy();
    14. instance_destroy();
    15. }
    16. if(instance_exists(links1) && instance_exists(links2) && instance_exists(unten1) && instance_exists(unten2)){
    17. with links1 instance_destroy();
    18. with unten1 instance_destroy();
    19. instance_destroy();
    20. }
    21. if(instance_exists(links1) && instance_exists(links2) && instance_exists(oben1) && instance_exists(oben2)){
    22. with links1 instance_destroy();
    23. with oben1 instance_destroy();
    24. instance_destroy();
    25. }
    26. if(instance_exists(unten1) && instance_exists(unten2) && instance_exists(oben1) && instance_exists(oben2)){
    27. with oben1 instance_destroy();
    28. with unten1 instance_destroy();
    29. instance_destroy();
    30. }
    Alles anzeigen


    und es passiert...... nichts. Wo habe ich den Denkfehler? ^^

    edit2:
    Ok, nachdem ich's gepostet hatte, ist mir mein Brett vor'm Kopf abegfallen: Es müsste selbstverständlich so lauten:

    GML-Quellcode

    1. links1 = instance_position(x-1,y,red);
    2. links2 = instance_position(x-1,y+31,red);
    3. rechts1 = instance_position(x+32,y,red);
    4. rechts2 = instance_position(x+32,y+31,red);
    5. oben1 = instance_position(x,y-1,red);
    6. oben2 = instance_position(x+31,y-1,red);
    7. unten1 = instance_position(x,y+32,red);
    8. unten2 = instance_position(x+31,y+32,red);
    Alles anzeigen


    Ich hatte nicht bedacht, dass der unterste rechte Pixel nicht 32|32 ist, sondern 31|31. Deswegen konnte es ja auch nicht funktionieren ^^
    :) :( ;) :P 8) :D ;( :rolleyes: :huh: :S X( 8| ?( :| :thumbdown: :thumbsup: :thumbup: 8o :pinch: :sleeping: :wacko: :whistling: :evil: ^^ :heul: :para:

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Das Tier ()