Um Sprite herum transparente Fläche

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

  • Um Sprite herum transparente Fläche

    Hallo zusammen!
    Wiedermal sitze ich vor einem - diesmal sehr seltsamen - Problem. Und zwar möchte ich, dass um ein Sprite herum alles im Room mit einer weissen, transparenten Fläche ausgefüllt ist. Also das Sprite selber hat eine 100% transparente Stelle, durch die man den Hintergrund sieht. Deshalb kann ich nicht einfach mit der Depth arbeiten. Bisher habe ich es so versucht:

    GML-Quellcode

    1. draw_sprite_ext(sprite_index,image_index,x,y,1,1,0,c_white,0.5)
    2. draw_set_alpha(0.5)
    3. draw_set_color(c_white)
    4. draw_rectangle(0,0,room_width,y-sprite_height/2+1,0)
    5. draw_rectangle(0,y+sprite_height/2-1,room_width,room_height,0)
    6. draw_rectangle(0,y-sprite_height/2+1,x-sprite_width/2+1,y+sprite_height/2-1,0)
    7. draw_rectangle(x+sprite_width/2-1,y+sprite_height/2-1,room_width,y-sprite_height/2+1,0)


    und dachte erst, ich hätte es geschafft. Als ich allerdings ein anderes Bild lud, funktionierte es nicht mehr ganz! Gibt es da eine Schwachstelle des GameMakers, oder ist etwas am Code falsch? Es könnte auch daran liegen, dass ich die Roomgrössen geändert habe beim neuen Bild...

    Danke im Vorraus!


    EDIT 1: Code korrigiert (war falscher Code). Ausserdem muss ich noch sagen, dass das Sprite einen transparenten Rahmen hat, der aber danach auch weiss, transparent werden soll, deshalb immer -1 oder +1!

    EDIT 2: Der Origin-Punkt ist in die Mitte gesetzt ;)


    MfG flogy

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

  • Schau, ich möchte, dass das ganze Fenster mit einer transparenten, weissen Fläche ausgefüllt wird (alpha=0.5), ausser dort, wo mein Sprite ist. Ob ich das mit draw_background_part_ext oder mit draw_rectangle mache, spielt im Prinzip keine Rolle (habs sicherheitshalber trotzdem getestet, und es entstehen dieselben Fehler, wie mit den Rechtecken)!

    Fehlerbeschreibung:
    Zwischen dem Sprite und den Rechtecken entstehen pixelgrosse Lücken, oder sie überschneiden sich!


    MfG flogy

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

  • Ich will ja nicht kleinlich sein, aber weiß ist was anderes als transparent. Es gibt keine "transparente" Farbe und erst recht kein transparentes Weiß. Es ist zwar klar was Du meinst, aber in diesem Zusammenhang kann es nicht schaden, etwas exakter zu sein.

    Edit: OMG , ich nehm alles zurück...

    Kannst Du trotzdem etwas genauer sein?

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

  • Tja, bei mir gibt es oft das Problem, dass ich, wenn ich Rechtecke und Linien zeichne, dass das was rauskommt nicht so ganz den Angaben entspricht. Also z.B.

    GML-Quellcode

    1. draw_rectangle(0,0,120,120,0)
    2. draw_line(0,120,120,120)

    Die untere Kante vom Rechteck sitzt nicht genau auf der Linie.

    Mach einfach hier und da +1 bzw. -1, dann sollte es klappen

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

  • Also nochmal:
    Um den Sprite, soll eine weisse Fläche, mit dem Alphawert 0.5 gezeichnet werden. Der Sprite selber ist an einer Stelle transparent und hat ebenfalls einen Alphawert von 0.5!
    Es gibt also ein Mittelstück (Sprite in der Mitte des Bildschrims) und 4 Rechtecke rund herum.



    M ist das Mittelstück, wobei F1-F4 die Rechtecke sind, die dem Code entsprechend nummeriert sind (F1 ist z.B. die erste draw_rectangle-Zeile)!

    Ich hoffe, nun war ich exakt genug ;)


    EDIT:

    Mach einfach hier und das +1 bzw. -1, dann sollte es klappen

    Das habe ich ja auch versucht, jedoch ist die Roomgrösse nicht immer gleich und dann stimmen diese -1 und +1 auch nicht mehr und verursachen neue Fehler...
    Aber ich werds nochmal so versuchen, danke :)


    MfG flogy

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

  • Benutzer online 1

    1 Besucher