sprite_create_from_screen() probleme beim zeichnen

  • GM 6
  • sprite_create_from_screen() probleme beim zeichnen

    hi,
    irgendwie übersteigt hier gerade alles meinen verstand :D
    ich bin gerade dabei an meinem spiel die pausefunktion zu programmieren.
    dazu deaktiviere ich alle objekte außer dem pause objekt. soweit alles klar.
    nun wollte ich einen screen vom aktuellen view um diesen als hintergrund für das pausemenü zu
    nutzen.
    also schreibe ich im key_pressed event welcher die pause auslöst folgendes:

    GML-Quellcode

    1. if pause = 0
    2. {
    3. bg = sprite_create_from_screen(view_xview,view_yview,
    4. view_wview,view_hview,
    5. 0,0,0,1,view_xview,view_yview)
    6. pause = 1;
    7. ....
    8. ...


    anschließend lasse ich das sprite bg im draw event zeichnen

    GML-Quellcode

    1. if pause = 1
    2. {
    3. draw_sprite(bg,0,view_xview,view_yview)
    4. ...
    5. ...


    das problem ist jetzt nur, dass das ganze solange funktioniert wie der view in seiner ausgangsposition ist.
    sobald der player läuft und der view sich mit ihm nach rechts bewegt (jump n run) dann wird das sprite
    immer weiter links vom view gezeichnet. also je weiter ich nach rechts laufe, je weiter geht das sprite
    nach links. zudem nimmt auch die breite des sprites ab. hat irgendjemand vielleicht eine idee???
    wär super, ich verzweifel hier sonst noch :/

    danke schonmal
    mfg
    HIM
  • Versuch mal:

    GML-Quellcode

    1. sprite_create_from_screen(view_xview,view_yview,
    2. view_wview,view_hview,
    3. 0,0,0,1,0,0)

    sprite_create_from_screen(x,y,w,h,precise,transparent,smooth,preload,xorig,yorig) Erstellt ein Sprite von der angegebenen Bildfläche. Dies macht es möglich, ein beliebiges Sprite zu erstellen. Zeichne mit den Zeichenfunktionen ein Bild auf dem Bildschirm und mache dann ein Sprite davon. (Wenn du es nicht im Draw Event machst wird dies sogar nicht auf dem Bildschirm angezeigt.) Die anderen Parameter sind wie oben. Die Funktion gibt den Index des neuen Sprites wider. Vorsicht ist hier geboten. Auch wenn wir hier über den Bildschirm reden, ist es die Zeichenregion die zählt. Das dort möglicherweise ein Fenster ist und dies skaliert wird wird nicht beachtet.
    Wobei es besser wäre alle Objecte zu aktivieren screen_redraw() und dann alle deaktivieren.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • hey,
    danke erstmal!
    leider funktioniert es auch nicht, wenn ich die originkoordinaten auf 0 setze..
    es besteht immer noch das gleiche problem..

    ich versuchs jetzt mal mit dem redraw..

    //edit:
    auch das bringt leider keine veränderung :(