3 votes

Imprimer la lettre dans n'importe quelle position sur l'écran

Selon le manuel du C64, vous pouvez imprimer un caractère en utilisant "POKE 1024, 1" où 1024 est l'adresse de départ (C64-BASIC). L'écran fait 40*25, ce qui signifie que 2024 est la position de la fin de l'écran. Cela donne la formule suivante pour écrire une lettre dans n'importe quelle ligne et colonne à partir du début (1024, en haut à gauche de l'écran) : 1024 + x + 40 * y où x est la ligne et y la colonne. La plupart du temps, lorsque vous créez un jeu comme celui-ci, vous souhaitez commencer par le point inférieur gauche (qui devrait être l'adresse 1984). Existe-t-il une "formule" permettant de faire fonctionner X et Y à partir de ce point ?

Exemple : Disons que vous avez un personnage ou quelque chose qui se déplace depuis la gauche et qui doit sauter, donc nous devons faire quelques calculs physiques et changer les valeurs X et Y et les écrire à l'écran. Si X est mis à jour avec 3 et Y avec 4, ces valeurs doivent être calculées pour être correctes sur l'écran (à partir du bas gauche de l'écran comme point de départ).

J'espère que j'ai bien expliqué et que tout cela n'est pas trop flou. Sinon, n'hésitez pas à demander.

Merci d'avance pour toute aide !

4voto

Il est encore tôt ici en Angleterre (early-ish...) mais d'après ce que j'ai pu voir, il suffit d'inverser le y coordonner ?

Il faudra peut-être y apporter quelques modifications, mais cela ne rendrait-il pas la formule [éditée] :

1024 + x + 40 * (24 - y )

Il semble que pour aller de bas en haut à gauche, il suffise de déterminer ce que le y serait dans votre formule d'origine...

1voto

Jupp3 Points 71

Vous pouvez modifier la position X de l'impression avec tab() :

print tab(8)"test"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X