Halbe Reflektion des Bildschirms

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

  • Halbe Reflektion des Bildschirms

    Also, wei der Titel schon sagt (mehr oder weniger) möchte ich eine Reflektion haben. Und zwar so:


    Ich habe mit save_screen_part gemacht, dann das als Sprite laden und gedreht mit alpha drawn, aber erstens, geht das leider nicht und zweitens ist drehen nicht spiegeln. Also, könnt ihr mir helfen?

    ,-Megamag

    Magical dream time!
  • Wenn das im flüssigen Spielgeschehen funktionieren soll, ist es definitiv die falsche Methode, jedesmal einen Screenshot zu machen und zu laden.. Es gibt verschiedene Ansätze. Du könntest es über Surfaces lösen, oder aber ganz einfach jedes zu spiegelnde Sprite 2x zeichnen.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Ach ja, y-scale!
    Davon habe ich gehört. Hätt' ich drauf kommen können. Aber wie genau
    funktioniert das mit surfaces? Ich habe das noch nie gemacht. Naja, wie
    mans macht, könnte ich ja nachlesen, allerdings, wie ich damit eine Spie-
    gelung damit machen soll. Das soll nicht heißen, dass ihr mir das im Detail
    erläutern sollt, nur vielleicht im Ansatz...

    @mauge: Es hat nicht nur Sprites... Außerdem: Wie hast dus denn bei "Nordlicht" geregelt?

    Magical dream time!

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

  • Es kommt immer drauf an, wofür genau du das brauchst. Du kannst auch Backgrounds spiegeln. Die Methode von Nordlicht kannst du hier nicht anwenden, das funktioniert ganz anders.

    Du könntest aber einfach eine Wasserfläche zeichnen, die (von der Depth her) über allen liegt. Mach sie in deiner gewünschten Farbe und setz ihren Alphawert auf 0,5. All deinen Sprites gibst du logischerweise eine tiefere Depth. Jetzt musst du nur noch im Draw Event der Sprites jedes 2x zeichnen (einmal oben normal/einmal unten gespiegelt). Dabei ist der oberste Punkt deiner Wasserfläche der "Nullpunkt". D.h. die Entfernung zwischen diesem Punkt und dem nichtgespiegelten Sprite ist gleichzeitig auch die Entfernung zum gespiegelten Sprite nach unten.

    Das wäre die einfachste Methode, die mir jetzt einfällt. Hoffe, es war verständlich.
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • RE: Halbe Reflektion des Bildschirms

    Und? Dann spiegel die auch! Wo ist das Problem?
    █████ ██ █ ████ everything ███ █████ is █████ ████ ████ fine ████ ███ █ ██████ love.
    █████ ███████ ███ your █████ ████ government.
  • Schon mal mit einem zweiten, gedrehten, View versucht?
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • Original von Kilik
    Schon mal mit einem zweiten, gedrehten, View versucht?


    Zwar ne gute Idee, aber ein gedrehter View ist leider nicht gespiegelt. Anscheinend ist das auch nicht möglich zu spiegeln. Von daher wären surfaces eine gute Lösung wenn der Bereich nicht zu groß sein müsste, ansonsten würde ich ein Spiegel Objekt erstellen, dass einfach im Draw event alle Objekte durchgeht und von jedem das gespiegelte sprite zeichnet.