place_meeting funktioniert nicht

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

  • place_meeting funktioniert nicht

    Moin zusammen,

    ich habe ein Problem mit place_meeting:

    Ich will das alphaValue den Wert ändert, wenn es eine Kollision mit einem Objekt hat

    Quellcode

    1. Information about object: obj_bushesTop
    2. Sprite:
    3. Solid: true
    4. Visible: true
    5. Depth:
    6. 0
    7. Persistent: false
    8. Parent:
    9. Children:
    10. Mask:
    11. No Physics Object
    12. Create Event:
    13. execute code:
    14. ///setup
    15. var alphaValue;
    16. Step Event:
    17. execute code:
    18. ///alpha check
    19. //opacity
    20. if (place_meeting(x, y, obj_1) || place_meeting(x, y, obj_2)) {
    21. alphaValue = 0.25;
    22. } else {
    23. alphaValue = 1;
    24. }
    25. Draw GUI Event:
    26. execute code:
    27. ///draw sprite
    28. draw_sprite_ext(spr_Overlay,0, 0, 0, 1, 1, 0, c_white , alphaValue);
    Alles anzeigen


    Kann mir jemand sagen warum das nicht funktioniert?
    Dieser Beitrag wurde ausgezeichnet mit einem großen LOB.
  • alphaValue gibt es nicht.
    Verwende image_alpha ;)


    Edit: ups ich hab das Draw Event nicht gesehen, mein Fehler ^^, alles richtig gemacht
    Aber mach im Create alphaValue = 1 und kein var davor, wie auch Gametrickser gesagt hat.
    Das Step Event wird erst nach dem Draw ausgeführt und setzt die Variable demnach auch später, was sonst zu einem Fehler kommen würde.
    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

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

  • Moin Husi012,

    ja klar, alphaValue ist eine Variable die ich erstellt habe. Ich dachte, wenn ich den Wert reinschreibe 0.5 oder so wird es angewendet?

    aber ich probiere Deinen Tipp mal aus.
    Dieser Beitrag wurde ausgezeichnet mit einem großen LOB.
  • Hi Gametrickser,

    ich habe jezt diverse Varianten von Einstellungen probiert.

    Im "create-event" habe ich die Variable rausgenommen, im "step-event" und "draw-event" habe ich statt meiner Variablen "image_alpha" genutzt: funktioniert auch nicht. Dann habe ich dem Obj direkt ein Sprite zugewisen und nochmal mit "image_alpha" und ohne "draw_event" auf einen Erfolg gehofft.

    ich habe mir mal die variable angeschaut, ob da irgendwie sich was verändert bei einem place_meeting oder postion_meeting usw.: die Zahl bleibt stramm bei 1.
    Dieser Beitrag wurde ausgezeichnet mit einem großen LOB.
  • Also ich habe jetzt herausgefunden, dass es nicht an der Variablen selbst liegt. Das Problem liegt in der Bedingung die ich prüfen will, ob eine Kollision mit obj_1 und obj_2 vorliegt.

    palce_meeting() und position_meeting() haben überhaupt keinerlei einfluss bzw. werden nicht wahr genommen. Dadurch wird der Wert nicht geändert. >> So kommt es zu meinem Problem.

    Theoretisch müsste es funktionieren?

    ICH HABE DIE LÖSUNG:

    ich muss dem obj ein sprite zuweisen :)
    Dieser Beitrag wurde ausgezeichnet mit einem großen LOB.

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

  • Create Event:
    image_alpha =1;;

    Step Event:
    execute code:



    Draw GUI Event:
    execute code:

    Draw Event

    if (place_meeting(x, y, obj_1) || place_meeting(x, y, obj_2)) {image_alpha = 0.25;} else {image_alpha = 1;}

    draw_sprite_ext(spr_Overlay,0, 0, 0, 1, 1, 0, c_white , image_alpha);
    Wir stehen zusammen und wir fallen zusammen
  • Danke Eddysoulo,

    Deinen Tipp habe ich auch probiert. Irgendwie hat es zwischendurch funktioniert, und dann wieder nicht. Hexenwerk, keine Ahnung warum das nichts macht.

    Zwischendurch hatte ich auch das gefunden: gmc.yoyogames.com/index.php?showtopic=615867
    hat aber auch nicht funktioniert ... ich habe aufgegeben ...
    Dieser Beitrag wurde ausgezeichnet mit einem großen LOB.