Beiträge von Mike im Thema „SPRITES SETZEN mit Strings“

    Cooles Sprite
    Kann das sein, daß dein MC bissl langsam ist? Ich habe deine Schleife zwischen 16 und 19 mal optimiert, was aber irgendwie nichts brachte. oO

    Lach. Der ist gut.

    Abgesehen davon, daß die Zeilen 17 bis 19 auf Klarheit und nicht unbedingt auf Geschwindigkeit optimiert sind, macht der Maschinencode nicht viel mehr, als was ein POKE Befehl auch tut: nach CHKCOM werden die Parameter für POKE eingelesen, die "Adresse" in $14/$15 wird als X-Koordinate verwurstet und das Low-Byte direkt nach $D000, $D002 und $D004 geschrieben, wohingegen das High-Byte auf != 0 gecheckt wird und bei !=0 fix auf 7 gesetzt wird und so nach $D010 geht (womit die MSBs der drei Sprites auch gesetzt sind). Der "POKE-Wert" (wird vom Interpreter im X-Register angeliefert und) geht als Y-Koordinate nach $D001, $D003 und $D005.

    Damit werden alle relevanten Koordinatenregister auf einen Schlag gesetzt, damit die 3 Sprites sich nicht gegeneinander bewegen.

    Wenn dir das immer noch zu langsam verkommt, liegt das eben am Rest, sprich, dem BASIC-Programm drumherum. Natürlich ist die pixelweise Bewegung auch nicht besonders schnell. Kannst ja mal mit |DX| und |DY| > 1 experimentieren. Das BASIC-Programm kriegt ja schon die 50 Updates pro Sekunde hin, und damit ist das ganze auch prinzipiell ruckelfrei - fehlt halt nur noch der Sync zum Bildschirmaufbau. :)

    Ach, jo. Mal was für zwischendurch: