Sich angrenzende gleichfarbige Blöcke zerstören

  • GM 8

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

  • Sich angrenzende gleichfarbige Blöcke zerstören

    Hallo,

    Ich hab mal wieder ein Problem.Und zwar möchte ich das sich angrenzende Blöcke zerstören,wenn man auf einen von ihnen klickt.
    Momentan siehts so aus:


    Wenn man auf einen Block klickt,wird der angeklickte + Oben,Unten,Links und Rechts gelöscht.

    Es sollte aber so sein,dass alle sich berührenden gleichfarbigen sich löschen,egal welchen man davon anklickt:



    Hoffe ihr versteht was ich meine :)

    Hier der Code,der bei einem Linksklick auf einen Block ausgeführt wird(die Blöcke haben einen Parent und der Code wird beim Parent ausgeführt:

    GML-Quellcode

    1. global.selbst = id
    2. if(object_index == obj_blau || object_index == obj_gruen || object_index == obj_gelb || object_index == obj_rot)
    3. {
    4. destroyself = 0 // Wird man selbst zerstört?
    5. bchance = 0 // Chance auf Bonus
    6. // ********************* Abfrage der Blöcke - nicht ändern!!!! ***************
    7. if(place_meeting(x + 1,y ,object_index) == true) // Abfrage ob RECHTS ein Object der selben Farbe ist
    8. {
    9. position_destroy(x + 48,y + 16) // Zerstören
    10. destroyself += 1 // Man wird zerstört
    11. score += 10 * global.bonus // Punktevergabe
    12. bchance += 1 // Chance auf Bonus wird erhöht
    13. }
    14. if(place_meeting(x - 1,y,object_index) == true) // LINKS
    15. {
    16. position_destroy(x - 16,y + 16 )
    17. destroyself += 1
    18. score += 10 * global.bonus
    19. bchance += 1
    20. }
    21. if(place_meeting(x ,y + 1,object_index) == true) // UNTEN
    22. {
    23. position_destroy(x + 16,y + 48)
    24. destroyself += 1
    25. score += 10 * global.bonus
    26. bchance += 1
    27. }
    28. if(place_meeting(x ,y - 1,object_index) == true) // OBEN
    29. {
    30. position_destroy(x + 16,y - 16)
    31. destroyself += 1
    32. score += 10 * global.bonus
    33. bchance += 1
    34. }
    35. if(destroyself > 0) // Wenn mindestens 2 Blöcke nebeneinadner waren
    36. {
    37. sound_play(snd_destroy) // Zerstörungssound
    38. instance_destroy() // Selbstzerstörung
    39. score += 50 * global.bonus // Punktevergabe
    40. bchance += 1 // Chance auf Bonus erhöhen
    41. }
    42. if(destroyself == 0) // Wenn es ein einzelner Block war
    43. {
    44. sound_play(snd_fail) // FailSound^^
    45. score -= 100 // Punkteabzug
    46. }
    47. if(bchance == 5) // Wenn Oben,Unten,Links und Rechts ein Block der selben Farbe war
    48. {
    49. score += 100 // zusetzliche Punkte
    50. if(global.bonus = 3) // ************************* Maximale Anzahl des Bonus - Hier Ändern !!! *****************
    51. { //
    52. global.bonus = 3 // ***************************************************************************************
    53. }
    54. else
    55. {
    56. global.bonus += 1 // Bonus wird erhöht
    57. }
    58. }
    59. else
    60. {
    61. global.bonus = 1 // Wenn es weniger als 5 zerstörte Blöcke sind wird der Bonus auf 1 zurückgesetzt
    62. }
    63. }
    Alles anzeigen


    lg,domi

    PS: Die Bilder sind aus meinem Spiel und dürfen nicht verbreitet werden^^

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von derkimba ()