J'essaie de comprendre les bases du développement de jeux C64 après BASIC, et je pourrais utiliser quelques conseils sur quelque chose de très basique, mais important: qu'est-ce que tout cela à l'écran et comment le dessiner?
Jetez un œil à Katakis / Denaris :
Il y a au moins 9 choses différentes à l'écran:
- La barre de score, avec différentes polices
- Le navire lui-même
- Un satellite attaché au navire, détachable
- Projectiles d'armes secondaires
- Projectiles d'armes primaires
- Objets en mouvement (peuvent être des navires ennemis)
- La barre d'état, avec une image du navire, le nombre de vies et trois sections qui peuvent remplir
- La barre de charge de l'arme principale peut se remplir jusqu'à la fin
- Un champ stellaire défilant en arrière-plan
- (non numéroté à l'écran) Objets solides comme des roches ou des murs métalliques qui font partie de l'arrière-plan
Le C64 ne prend en charge que 8 sprites par ligne de balayage horizontal, donc je ne pense pas que tout au milieu de l'écran puisse être un sprite? Je suppose que tout ce qui nécessite une collision serait un sprite (car je peux obtenir une détection de collision matérielle avec des sprites), mais même alors, j'ai rapidement atteint la limite de 8 sprites. De plus, mes armes peuvent tirer beaucoup plus d'un projectile - mon vaisseau, le satellite et 6 balles seraient déjà 8 sprites d'affilée (regardez environ 50 secondes dans la vidéo).
De plus, quel mode graphique un jeu comme celui-ci utiliserait-il? Le manuel de programmation répertorie le mode Bit Map qui modifie essentiellement la mémoire de l'écran directement. Est-ce le mode dans lequel je devrais habituellement travailler? Comment puis-je composer tous les éléments non-sprite ensemble pour les afficher à l'écran?
Beaucoup de choses dans la partition et la barre d'état sont statiques ("Area: 01" ou "frame"), donc je suppose que je ne les remplirai qu'une fois quand le niveau commencera. Les choses qui doivent être mises à jour - le score, les barres de charge en bas - seraient mises à jour en remplissant la mémoire de l'écran avec du noir et en dessinant ensuite le nouveau score à chaque image?
Ou dois-je dessiner la totalité de l'écran sur chaque image?
la source
J'ai lu un article il y a quelque temps dans le magazine allemand C64. Les balles sont des personnages qui agissent comme des sprites comme quelqu'un l'a déjà souligné. Le navire et les ennemis sont des sprites.
Les niveaux sont faits de personnages aussi mais avec une touche. Étant donné que les niveaux sont si énormes et que la mémoire est précieuse, Trenz a écrit son propre ensemble d'outils pour regrouper les personnages en modules.
Il peut donc utiliser des modules plus grands et les composer. Il utiliserait également certains modules de correctifs pour obtenir l'intersection des modules agréable et propre.
Dans l'ensemble, c'est une sorte de compression, où les niveaux sont décrits comme des blocs de construction au lieu de caractère par caractère.
Vous remarquerez également que dans Katakis, certains niveaux ont des arrière-plans de parallaxe.
Cela se fait en ayant un motif pour remplir l'arrière-plan, principalement composé de caractères 2x2 ou 3x3, et en l'animant (bit-shifting) dans le sens contraire du défilement. Par exemple, le niveau défile de 2 pixels vers la gauche, le motif d'arrière-plan défile de 1 pixel vers la droite, il semble donc qu'il défile à un rythme plus lent.
J'espère que cela pourra aider
Une dernière chose que vous pouvez réellement voir les modules individuels et tels ici https://archive.org/details/64er_1989_10/page/n27 faites défiler jusqu'à la page 24
la source