Packman sur TI-82stats.fr

Fermé
M@teo - 9 juil. 2012 à 19:46
 M@teo - 6 déc. 2012 à 20:44
Bonjour,
Je viens de sortir de seconde, et les (brefs) cours sur la programation qu'on a eut m'ont donné envie. J'ai donc fait quelques jeu (snake, pendu, etc...) sur ma calculatrice, une TI-82Stats.fr.
A l'aide des text-sprite, j'ai décidé de faire un packman, mais je rencontre un problème: si le packman est collé à la paroie de gauche ou du haut, il l'efface en s'affichant. :o
Avec un pxl-Test( et un Ligne(, j'ai réglé le problème, mais le résultat est moche: la paroie s'efface quand le packman se déplace, puis réaparait.Y aurait-il un moyen de "bloquer" un pxl sur une position ou une autre? Sinon, avez vous une autre solution à me proposer?
Merci d'avance pour vos réponses!



5 réponses

undercrix Messages postés 1 Date d'inscription mardi 30 octobre 2012 Statut Membre Dernière intervention 30 octobre 2012 2
30 oct. 2012 à 20:19
Salut, je suis nouveau sur le forum mais j'ai déjà pas mal programmé sur TI
Tout dépend si tu utilise la fonction "output(" ou bien si tu est dans les dessins.
Pour la fonction output, tu dois sois bloquer l'accès a la case, soit la faire apparaître de nouveau derrière le passage de pacman. Si tu utilise les dessins (graphique si tu préfère ^^) ce que je pense plus noble pour un jeu tel que pacman, sache que chaque objet type texte efface les pixels visibles a leurs droite et au dessus d'eux. En clair si tu veut que ta ligne ne s'efface pas, tu peut soit la faire réapparaître, soit empêcher pacman de s'y approcher a moins d'un pixels de cette ligne ;)

Et si tu a toujours pas compris (vue que je suis un trèèèèès mauvais prof) voici un petit schema pour t'expliquer les objets de type texte :

Exemple avec la lettres A
O=pixels ON
N=pixels OFF (mais faisant partit de l'objet)

NNNN
OOON
ONON
OOON
ONON
ONON


J'espère t'avoir aider =)
Si tu a besoin de plus d'aide je suis la =)
2
Tant pis, merci quand même...
0
tu décris correctement ton problème en tout cas
au hasard, tu pourrais essayer de ne pas faire jouer sur la ligne ? après tout il faut bien commencer par s'occuper du jouable, ce niveau de détail passe après...

je me souviens que sur ma TI-84 il y a une fonction pour "allumer" et "éteindre" un pixel (Pxl-on et Pxl-off), mais les 82 stats ou 83 ne l'ont peut-être pas.

mm mais sinon je pense qu'il y a des forums spécialisés sur TI

(P.S. : j'ai lu ton message, mais entre temps, j'ai été voir l'article "Pac Man" sur Wikipédia, qui est mentionné, dit-il, dans le film Sans Soleil de Chris Marker, que j'ai du coup vu, et ça m'a fait oublier ton message. Voilà, deux jours de retard et ce message ne sera jamais lu, pff.)
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 12/07/2012 à 10:56
Salut,

Je ne sais pas s'il y a des spécialistes de cette machine et du basic qu'elle utilise (je ne connais ni l'un ni l'autre) sur le forum.

Il y a des chances cependant que ton problème soit un problème d'algorithme.

Il n'y a aucune raison d'effacer quoi que ce soit si le bonhomme arrive aux limites, ou essaye de bouger sur une position où il n'est pas sensé pouvoir aller.

         +----------------------+  non 
  +----->| touche de direction ?|+------------------+ 
  |      +----------------------+                   | 
  |            oui  +                               | 
  |                 v                               | 
  |  +----------------------------------+           | 
  |  |(si touche gauche et curX>1) ou   |           | 
  |  |(si touche haute et curY>1) ou    |  non      | 
  |  |(si touche droite et curX<maxX) ou|+--------->| 
  |  |(si touche basse et curY<maxY) ou |           | 
  |  |(si touche direction vers mur) ou |           | 
  |  |(autres cas, ou malgré la touche  |           | 
  |  | pressée, on ne bouge pas) ...    |           | 
  |  +----------------------------------+           | 
  |            oui   +                              | 
  |                  v                              | 
  |       +------------------------+                + 
  |       |  Efface sprite Pacman  |       +----------------+ 
  |       |                        |       |Fait autre chose| 
  |       |  Change ses coordonnées|       +----------------+ 
  |       |                        |                + 
  |       | Affiche sprite Pacman  |                | 
  |       +------------------------+                | 
  |                   +                             | 
  |                   v                             | 
  +-------------------------------------------------+

Dal
0
Tout d'abord, merci pour vos réponses,

Donka-> Effectivement, j'ai une fonction pxl-On, et une autre pxl-Off, mais elles ne permettent pas de bloquer un pixel, juste de l'allumer, ou de l'éteindre: si une autre fonction a ensuite besoin de ce pixel, elle peut l'allumer, ou l'éteindre.

Dal->En fait, ce n'est pas une question de bouger le packman sur une position où il n'est pas sensé pouvoir aller, mais simplement que s'il y a un mur à sa droite(ou au dessus de lui), il l'efface en partie en s'affichant:
Ex:
__________________________________________________
|..............................P....| "Touche de droite"|.........................P ->Cette paroi
|....................................| ---------------------> |...........................| s'efface

Je vais donc chercher un forum spécialisé sur ma calculette, comme vous me l'avez conseillé. Au pire, je n'utiliserais pas les text-sprites, et me contenterais d'utiliser des pxl-On.

Merci encore, et bonne journée!

PS: pour ceux que ça intéresserais, si je trouve une solution autre que celles mentionnées plus haut, je la posterais ici ;)
0
Oups: je viens de me rendre compte que je dis plus haut "à la paroie de gauche ou du haut", mais ce sont les parois de droite et du haut qui posent problème
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci pour ta réponse!
Ce sujet datte un peu, je l'avais oublié, mais je viens de tomber dessus par hasard. J'ai posé cette question sur des forums de ti, et j'ai beaucoup appris depuis (même si j'ai finalement pas fini mon pacman,je m'y remettrais sûrement plus tard, mais en Asm cette fois)
Donc on m'avait bien expliqué la raison de mon problème, mais merci quand même de ton aide ^^

PS: j'utilisais effectivement l'écran graphique, et pas la fonction Output
0