Objektabfrage - gleich-ungleich?

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

  • Objektabfrage - gleich-ungleich?

    Hallo GM´s

    ich bins wieder, die Nervensäge :D

    Hier erst mal ein Screen:



    Frage:
    Wie kann ich jedem obj_stein zuweisen, das er in einem Stepevent
    seine horizontalen und vertikalen Nachbarn prüft, ob sie von der selben
    sorte sind?
    Es müssen aber immer, mindestens, 3 gleiche sein bis ein Ereignis
    ausgelöst wird.

    Geht das etwa über die Objekt ID?

    Gr
    Vegas
    Wen es Interessiert.......



    Nur ein mittelmäßiger Mensch ist immer in Hochform.............
  • Original von iwulff
    Wen ein block ein object ist, dan ist das moglich mit instance id's.


    instance ids sind wieder der name schon sagt bei jeder Instanz unterschiedlich. Er will ja objekte. Also wenn das wirklich unterschiedliche Objekte sind, würd ichs mal mit

    GML-Quellcode

    1. object_index
    probieren
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.
  • Diesen riesen Code ins Stepevent vom Objekt Stein (!VORSICHT MÖGLICHE ENDLOSSCHLEIFE!):

    GML-Quellcode

    1. block_countw=0
    2. block_counth=0
    3. distance=sprite_height/2+sprite_height
    4. Do
    5. {
    6. get_block_down=instance_position(x,y+distance,obj_stein) //obj_stein ändern
    7. if !instance_exitst(get_block_right.color)
    8. break
    9. if get_block_down.color=color //color = Farbe des Steins
    10. {
    11. block_counth+=1
    12. get_block_down.destroyh=1 //destroyw und destroyh im objekt stein mit wert 0 initzializiern
    13. }
    14. else
    15. break
    16. distance+=sprite_height
    17. }
    18. Until 0=1 //sinnlos aber geht nicht anders
    19. distance=sprite_width/2+sprite_width
    20. Do
    21. {
    22. get_block_right=instance_position(x+distance,y,obj_stein) //obj_stein ändern
    23. if !instance_exitst(get_block_right.color)
    24. break
    25. if get_block_right.color=color //color = Farbe des Steins
    26. {
    27. block_countw+=1
    28. get_block_down.destroyw=1 //destroyw und destroyh im objekt stein mit wert 0 initzializiern
    29. }
    30. else
    31. break
    32. distance+=sprite_width
    33. }
    34. Until 0=1 //sinnlos aber geht nicht anders
    35. if block_countw>0
    36. with obj_stein
    37. {
    38. if destroyw=1
    39. instance_destroy()
    40. }
    41. if block_counth>0
    42. with obj_stein
    43. {
    44. if destroyh=1
    45. instance_destroy()
    46. }
    Alles anzeigen
  • @Bernt

    Also so wird das diesmal garnix :no:

    Ich versteh zwar in etwa, worauf Du hinzielst aber wo kommt z.B.
    get_block_right.color her?
    Die Steine haben doch mit Farben nix zu tun.

    Das sind doch einfach nur Objekte (obj_w0.......obj_w16)
    Wen es Interessiert.......



    Nur ein mittelmäßiger Mensch ist immer in Hochform.............
  • Du hast Objekte von obj_w0 bis obj_w16 gemacht??? Das ist doch total unübersichtlich! Ich würde EIN objekt machen und dann mit einer Variable color das ganze überprüfen lassen. Aber wenn du es so haben willst kannste einfach object_index statt color hinschreiben.

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