Noch mal Sprites - zeigt mehr an als gewünscht

  • GM 8

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

  • Noch mal Sprites - zeigt mehr an als gewünscht

    Guten Morgen,

    noch mal das Thema Sprites, aber da das Problem ein ganz anderes ist als das letztens, mache ich mal eine neue Anfrage auf.

    Ich mache einen Bildschirm-Ausschnitt. Da es sein kann, dass sich darin der Spiel-Rahmen des Spielers zufällig befindet, schalte ich diesen Rahmen vorher aus und danach wieder ein:

    GML-Quellcode

    1. obj_rahmen120.visible=false;
    2. such_sprite=sprite_create_from_screen(x1,y1,120,120,0,0,0,0);
    3. obj_rahmen120.visible=true;


    Soweit, so gut. Nun wird im Draw-Event das Sprite ausgegeben:

    GML-Quellcode

    1. draw_sprite_ext(such_sprite,0,600,40,1,1,0,c_white,1);


    Aber immer ist dort der Rahmen des Spielers wieder zu sehen!! Woran kann das denn liegen bzw. wie kann ich das abstellen? Da ich nicht weiß, was die Parameter "revomeback" oder "xorig" genau bedeuten, hab ich schon sämtliche Parameter geändert und durchprobiert - aber das Ergebnis ist immer dasselbe: der Rahmen ist ständig zu sehen. :wacko:
    Ich werde das dumpfe Gefühl nicht los, dass dies am Draw-Event irgendwie liegt - bin mir aber nicht sicher.
    Wer kann mir sagen, wie ich diesen Spieler-Rahmen, der übrigens einen Depth-Wert von -100 hat (haben muss), für den Moment der Sprite-Entnahme, ausblenden kann?
    Bin für jeden Hinweis dankbar.
    Thx, Archie
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para:
  • Nach der Deaktivierung des Rahmens, musst du direkt vor dem Aufruf der Funktion sprite_create_from_screen den Bildschirm mit Hilfe screen_refresh neu zeichnen.
    Erst nach dem Aufruf dieser Funktion werden nähmlich jegliche Änderungen, die etwas mit Zeichnen zu tun haben "aktualisiert" und so "verschwindet" dein Rahmen Objekt erst danach aus der Bildfläche.
  • luky300 schrieb:

    Nach der Deaktivierung des Rahmens, musst du direkt vor dem Aufruf der Funktion sprite_create_from_screen den Bildschirm mit Hilfe screen_refresh neu zeichnen.
    Erst nach dem Aufruf dieser Funktion werden nähmlich jegliche Änderungen, die etwas mit Zeichnen zu tun haben "aktualisiert" und so "verschwindet" dein Rahmen Objekt erst danach aus der Bildfläche.


    Klingt verlockend - haut aber leider auch nicht hin. Obwohl ich nach dem Ausblenden des Rahmens und direkt vor dem Sprite-Abbild 'screen-refresh()' eingegeben habe, bleibt der Rahmen munter erhalten. ;(

    Noch irgendwelche Vorschläge?
    Archie
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para:
  • Ich frage mich (nicht das Problem betreffend), wieso du eigentlich sprite_create_from_screen zur Lösung deiner Problemstellung herangezogen hast.
    Könntest du bitte die erwünschte Funktion nochmals detaillierter ausführen, um dir möglicherweise eine elegantere Lösung darbieten zu können.

    Deine bisherigen Erläuterungen der Problemstellung würde der Lösung von MewX (siehe letzter Thread) wohl am besten entsprechen, nähmlich einfach die Position der Spielers (bzw. des Mauszeigers) und die dem Spiel ja bereits bekannten Position des Bildausschitts zu vergleichen.
  • Wie ich bereits im letzten Thread geschrieben habe, ist das Speichern der Positionen genau der falsche Weg, denn das klappt nur dann, wenn der Ausschnitt tatsächlich nur an dieser Stelle ist! Aber durch die Zufallsgenerierung kann es sein, dass der Ausschnitt sogar mehrmals auftaucht - und da nutzt mir eine Position des ersten Ausschnittes gar nichts. Hatte ich aber bereits geschrieben, wie gesagt.
    ---->>> Deshalb "sprite_create_from_screen".
    Archie

    Edit:
    Für alle, die das gleiche Problem haben: screen_refresh() bringt hier gar nichts - aber screen_redraw() führt zum gewünschten Erfolg! Soeben gefunden.
    Gruss Archie
    Signatur? Ich überlege mir noch eine. Die besten sind ja schon alle vergeben... :para:

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