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?