Frage zur Sichtbarkeit von Sprites

Es gibt 2 Antworten in diesem Thema, welches 712 mal aufgerufen wurde. Der letzte Beitrag (3. April 2016 um 17:42) ist von ZeHa.

  • Hallo,

    mir ist gerade ein eigenartiges Phaenomen eingefallen, welches ich mal waehrend der Entwicklung eines Spiels hatte. Ich hoffe ich gebe es jetzt korrekt wieder, aber in meiner Erinnerung war das folgendermassen:

    - Ich hatte einen IRQ definiert um Spielfeld von Status-Leiste zu trennen
    - Sprites sollen nur innerhalb des Spielfelds gezeichnet werden; sie koennen jedoch das Spielfeld auch in alle 4 Richtungen verlassen
    - Folglich soll das Sprite, wenn es den unteren Spiefeldrand verlaesst, auf Hoehe der Status-Leiste abgeschnitten werden

    Nun habe ich also innerhalb des IRQ-Handlers die Sprite-Sichtbarkeit abgeschalten. Seltsamerweise war das Sprite dann aber immer komplett unsichtbar, d.h. sobald es die Bildschirmzeile ueberschreitet, in der der IRQ ausgeloest wird, wird das gesamte Sprite unsichtbar. Obwohl der Befehl, das Sprite auszuschalten, ja eigentlich erst nach dem Zeichnen der IRQ-Zeile ausgefuehrt wird!

    Die Loesung war dann, nicht die Sprite-Sichtbarkeit abzuschalten, sondern den Sprite-Pointer auf ein leeres Sprite umzulenken. Dann wurde das Sprite, wie erwartet, nur zur Haelfte gezeichnet und unterhalb der IRQ-Zeile abgeschnitten.

    Wie aber kann das passieren, dass das gesamte Sprite unsichtbar wird, wenn man das Sprite abschaltet? Der Befehl, das Sprite abzuschalten, kommt doch erst im IRQ-Handler. Wie kann dann das Sprite schon vor Erreichen der IRQ-Zeile unsichtbar werden?

    Ich hoffe ich erinnere mich korrekt daran, falls das fuer euch nicht nachvollziehbar klingen sollte. Notfalls muss ich das nochmal nachstellen...

    Habe gerade nochmal nachgeschaut, es war wohl doch etwas anders :D
    Das Sprite wurde NICHT unsichtbar, das war das Problem. Aber scheinbar liegt das daran, dass Sprites immer komplett zuende gezeichnet werden, wenn der VIC einmal damit angefangen hat...

    - neue Spiele für den C64 -
    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.

  • Ich weiß, blöde Frage, aber sicherheitshalber: Hattest Du im oberen IRQ (Einschalten des Spielfelds) das Sprite auch wieder mit eingeschaltet, oder blieb der Zustand "ausgeschaltet" nach einmaligem Ausschalten dauerhaft erhalten?

  • Nee das war schon korrekt gemacht. Aber ich habe gerade festgestellt, dass ich das Problem nicht mehr richtig im Kopf hatte; der Effekt war naemlich nicht der, dass das Sprite komplett unsichtbar wurde, sondern dass es NICHT unsichtbar wurde...

    - neue Spiele für den C64 -
    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.