überblenden von zwei objekten

  • GM 8

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

  • überblenden von zwei objekten

    heyho, ich hab mal wieder eine frage,

    nehmen wir an ich habe zwei oder mehrere objekte (in meinem fall wolken) die sich mit unterschiedlicher geschwindigkeit bewegen. die wolken sind leicht transzparent und werden mit draw_sprite_ext(sprite_index,image_index,x,y,scale_x,scale_y,0,c_white,alpha) gezeichnet, der max alpha wert den die wolke an nimmt ist dabei zufällig.

    sobald sich die beiden wolken überlagern schaut das ganze so aus:


    gibt es eine möglichkeit zu verhindern das die zwei objekte sich an der überlagerten stelle verstärken?
    also das die eine wolke die andere wirklich überdeckt.

    maf Prayer90
    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Grey
  • ich würde in dem fall nur sehr ungern anfangen mit surfaces zu arbeiten, da meine wolken unteranderem auch bestimmte funktionen zu erfüllen haben. gibts ne möglichkeit das evl auch über die objekte im einzelnen zu regeln?
    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Grey
  • Fürchte dass -$Marvin$-'s Lösung die einzig mögliche ist da der GM keine Shader oder Ähnliches besitzt.
    Du kannst aber dennoch Objekte haben. Du kannst einfach das Sprite entfernen und es stattdessen als Kollisionsmaske einsetzen.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • hmm ok ich frag sowas zwar nur ungern, aber ich hab noch nie mit surfaces gearbeitet. ich kann mir das grad nicht so recht vorstellen, da sich ja step für step die oberfläche die gezeichnet wird verändert. ist das nicht auch recht rechenaufwendig?

    könntet ihr mir bitte ein kleines bsp geben wie man an sowas erstmal rangeht?

    bis jetzt erzeuge ich in verschiedenen abständen wolken, die sich dann langsam einblenden bis zu einem bestimmten alphawert (der vorher durch zufall errechnet wird).
    ist die lebenszeit der wolke vorbei, blendet sie sich langsam aus. andernfals wenn ein neuer wetterzyklus entsteht, werden alle wolken langsam ausgeblendet und zwestört.
    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Grey
  • Etwas performance-lastig ist es schon, aber nicht zu extrem. FoW basiert auf dem selben Prinzip und funktioniert gut.
    In das create event eines kontroler-Objektes machst du erstmal die surface:

    GML-Quellcode

    1. cloud_surface = surface_create(view_wview[0],view_wview[0]);
    Dann kommt in das step event soetwas rein:

    GML-Quellcode

    1. surface_set_target(cloud_surface);
    2. with(obj_cloud) // führe das Folgende für alle Wolken-instanzen aus)
    3. {
    4. draw_sprite_ext(local_sprite,image_index,x-view_xview[0],y-view_yview[0],scale_x,scale_y,0,c_white,1)
    5. // zeichne das entsprechende sprite welches in dem obj_cloud in die variable local_sprite gesetzt wurde (musst du im Create event machen).
    6. Das Zeichnen geschieht aber mit dem Alpha 1 und relativ zur linken, oberen Ecke des Views da die Surface an die linke obere Ecke gedrawt wird!
    7. }
    8. surface_reset_target();


    Im Draw event musst du dann nur noch die surface zeichnen:

    GML-Quellcode

    1. draw_surface_ext(cloud_surface,view_xview[0],view_yview[0],1,1,0,c_white,alpha); //alpha muss den Wert haben den alle Wolken besitzen.
    2. Unterschiedliche Alpha-Werte sind leider nicht möglich.


    --------------

    Mir fällt aber grad auf dass es da ja eine Unstimmigkeit gibt... Du willst also doch unterschiedliche Alpha-Werte, bzw. ein separates Ausblenden der einzelnen Wolken?
    Das ist dann aber im GM schlichtweg unmöglich denn das würde erfordern dass man jeden einzelnen Pixel einzeln berechnet!

    ich empfehle dir das ganze zu lassen. Eigentlich sieht es mit überblndenden Wolken doch sowieso besser/realistischer aus, oder nicht?


    EDIT: Einen Fehler im Code behoben

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)

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

  • ok danke für deine antwort, ich find halt das es teilweise arc komisch wirkt. Du hast aber wohl recht, um alle meine funktionen aufrecht erhalten zu können muss ich es wohl so lassen. ;(
    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Grey
  • Benutzer online 1

    1 Besucher