Hallo Besucher, der Thread wurde 9,8k mal aufgerufen und enthält 48 Antworten

letzter Beitrag von Vernunftmensch am

Hintergründe

  • Ja, auf einem Riesenbereich von 24*21 Pixeln kann man das. Immerhin 3*2,625 Zeichen.
    Sehr realistischer und hilfreicher Vorschlag, grade unter Basic, wo dann auch ein Multiplexen easy-peasy ist mit dem ultimativen RAM-ROM-Trick und der BIF-Page im SOM, da macht man dann immerhin 3*21 Zeichen draus. Der Bildschirm ist ja schon quasi überfüllt mit dem ganz dicken Lack.
    :facepalm:

  • @BladeRunner:
    Zumindest an einigen Stellen kann man bis zu 9 Lagen auftragen.


    Mit Assembler kann man soweit ich weiß den ganzen Bildschirm mit Sprites abdecken.
    Spritemultiplexen ist auch in Basic möglich, auch wenn ich es noch nicht gemacht habe.
    Ich wollte nur sagen, daß das im Prinzip geht.


    Ansonsten kann man auch mit den Standard-Mitteln, wie Zeichensatz, Hires-Grafik, Multicolor-Grafik oder Multicolor-Zeichensätze, einfarbigen und mehrfarbigen Sprites schon einiges machen.
    Da gibt es genug Demos, die das zeigen.


    Schönen Gruß.


    Mit ROM/RAM kann man immerhin schon in drei Zeilen zu einem geänderten Zeichensatz kommen.
    Und das ohne Nachladen und lange Wartezeiten und ohne Basic-Programmspeicher-Einbußen.



    Schönen Gruß.


    @ThomBraxton:
    Shapes klingt auch interessant.


    Schönen Gruß.


    Mit Rastereffekten kann man natürlich auch in Basic schon was machen.


    Wie z.B. Einblenden von Grafik in einen Textschirm.
    Oder Sprites im oberen und unteren Rand anzeigen.


    Also machen kann man mit dem C64 schon vieles.


    Schönen Gruß.


    Im übrigen kann man auch mit dem Standard-Zeichensatz im Textmodus schon sehr viel an Grafik auf dem Bildschirm zaubern.
    Auch Sprites können dabei als Vordergrund und Hintergrund eingesetzt werden.


    Schönen Gruß.

  • Mag aber vielleicht auch Leute geben, die so perfekt sein mögen (ich beileibe auch nicht), ohne Testen sich derem sicher zu sein. Abe wohl eher ein seltenes Völkchen.

    Erfahrungsgemäß sind die Leute, die denken dass sie das können mit hoher Sicherheit die, die es eben nicht können ^^ ...

  • Spritemultiplexen ist auch in Basic möglich, auch wenn ich es noch nicht gemacht habe.
    Ich wollte nur sagen, daß das im Prinzip geht.

    Ich habe das Prinzip des Spritemultiplexings immer so verstanden, dass man die VIC/Sprite Register so schnell ändert, während der Bildschirm/Zeilenaufbau noch im Gange ist.
    Dadurch ist es optisch möglich, dass man mehr als die 8 Sprites quasi gleichzeitig darstellen kann.
    Wie soll BASIC da schnell genug sein? So ein Demo würde mich interessieren.

  • Wie wurden denn die Hintergrundeffekte in Turrican II verwirklicht?
    Oder auch in anderen Arcade-Spielen mit scrollenden Hintergründe?


    Da wird doch oftmals scheinbar optisch der Eindruck erweckt, dass da mehrere Grafikschichten aufeinander liegen...

  • kommt auf die programmiersprache an


    im cc65 ist ein beispiel-c-programm, welches Koalabilder anzeigt, welche du vorher mit projekt-one selbst gemalt hasz


    hinter oder vor dem koalabild kannst du deine sprites programmieren und schon ist ein kleines spielchen fertig


    in asm gab es einen thread hier im forum, weiß aber nicht wo, da hat hier jemand ein spiel von vorne bis hinten entwickelt in asm


    in basic gab es mal ein databeckerbuch, in dem der vic mit all seinen möglichkeiten vorgestellt wurde, das kann man bestimmt hier noch eingescannt tauschen

  • Wie coch0 bereits geschrieben hat: Was schwebt Dir vor, was willst Du als Resultat haben?


    "Hintergrund" kann ein einfaches, statisches HiRes oder Multicolor-Bild (MC) sein, welches einfach angezeigt wird.
    Bei einem MC ist das Koala-Format das verbreitetste. Da gibt es Mal-Tools auf dem C64 (wie z.B. Amica-Paint) oder eben auf dem PC (z.B. Windows: Project One).
    Bewegung könntest Du dann mit den Sprites reinbringen.


    Für Zeichensatz-basierende Grafik brauchst Du einen Charset Editor wie z.B. Chatpad. Aber das ist wesentlich komplexer, daraus was zu machen, deshalb schlage ich vor, dass Du zuerst Deine Idee erklärst.


    Literatur:
    Es gibt einige 64er Sonderhefte zum Thema "Grafik". Einige Hefte haben BASIC-Erweiterungen, welche das Handling von Sprites, Grafik etc. wesentlich vereinfachen.
    Du findest die Hefte und die Diskette dazu auf der F64 Wolke. Bücher mit Grundlagen zur C64 Grafik sollte es dort auch haben. Da gibt es z.B. das "Super Grafik Buch zum C64" von Data Becker.
    Es gibt dann auch das Simons BASIC Modul, welches Grafikbefehle (und Soundbefehle) enthält.


  • Wie soll BASIC da schnell genug sein? So ein Demo würde mich interessieren.


    Rasterbars und Spritemultiplexer in BASIC


    Wie wurden denn die Hintergrundeffekte in Turrican II verwirklicht? ... Da wird doch oftmals scheinbar optisch der Eindruck erweckt, dass da mehrere Grafikschichten aufeinander liegen...


    Mal angenommen, wir möchten (der Einfachheit halber) einen stehenden Hintergrund haben, während der Vordergrund gescrollt wird. Der Hintergrund soll aus einem Zeichen bestehen, der wiederholt wird:


    Code
    1. | ** | ** |
    2. | * * | * * |
    3. | * * | * * |
    4. |* *|* *|
    5. |* *|* *|
    6. | * * | * * |
    7. | * * | * * |
    8. | ** | ** |


    Nun wird der Bildschirm (per Hardware-Register) um ein Pixel nach rechts gescrollt:



    Für einen festen Hintergrund müssen wir diese Verschiebung ausgleichen. Dazu werden die Zeichendaten um ein Pixel nach links 'gerollt'. Was dabei links rausfällt, wird rechts wieder drangemacht:


    Code
    1. <-
    2. | ** | ** |
    3. | * * | * * |
    4. |* * |* * |
    5. | **| **|
    6. | **| **|
    7. |* * |* * |
    8. | * * | * * |
    9. | ** | ** |


    So geht es analog weiter:



    Zum Vergleich hier nochmal das Ausgangsbild:


    Code
    1. | ** | ** |
    2. | * * | * * |
    3. | * * | * * |
    4. |* *|* *|
    5. |* *|* *|
    6. | * * | * * |
    7. | * * | * * |
    8. | ** | ** |


    Der Hintergrund kann sich natürlich auch mitbewegen: Falls der Ausgleich nur bei jedem zweiten Schritt erfolgt, scrollt der Hintergrund mit halber Geschwindigkeit usw.

  • Also im Prinzip kann man alles, was man in Assembler machen kann auch in Basic machen.
    Man hat aber gegebenenfalls eben einen Geschwindigkeitsnachteil.
    Daher ist in Basic eben nicht alles möglich, wie in Assembler.
    Für vieles braucht es aber nicht soviel Speed, wie man denkt.
    Und auch in Basic kann man schnell sein, wenn die Prozesse eben gut Hardware oder Softwaremäßig unterstüzt sind. Denn auch Basic basiert ja auf Maschinensprache.


    Also auch Sprite-Multiplexen funktioniert mit Einschränkungen.


    Mit Zeichensätzen kann man auch mehr machen, als man denkt.
    Z.B. wie bei Bolderdash bewegte Objekte anzeigen, indem man zwischen zwei oder mehreren Zeichensätzen umschaltet.
    Mit ROM/RAM kann man im oberen 16kB-Bereich immerhin schon 7 verschiedene Zeichensätze parallel haben, zwischen denen man mit nur einem Poke umschalten kann.



    Schönen Gruß.

  • Zur Turrican-Grafik:
    Ich vermute mal das basiert auch auf der Nutzung des oberen 16kB Bereichs für die Grafik.


    Mit jedem Soft-Gescrolltem Pixel kann man ja den Zeichensatz umschalten.
    Damit hat man dann mit jedem Pixel eine leicht veränderte Perspektive.


    Also mit 16kB für Grafik kann man eben schon einiges machen.
    Oder wie das ROM/RAM-Programm zeigt einfach nur mal ein oder mehrere Zeichensatzzeichen oder ein oder mehrere Betriebssystembytes ändern.


    Schönen Gruß.