Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.
Pacman - Page 1 / 2
JC78 le 29/01/2008 à 15:15
Voia c'est encore moi. J'ai fait en grande partie un pacman et j'aimerais savoir si je pouvait faire avance mon personnage qui se composent de 20 points dans les quatre direction snas passer par des milliard de "point off" et des "L1(1),L1(2)..." enchaine a la suite car cela rend le jeu trop lent.
Mon jeu:
C'est le principe d'un pacman. On est une sorte de "bouche-smilley" et on doit recuper des point. Pour l'instant je n'est mis qu'un seule enemis(il en faudrait 3)et le probleme qui se pose est que mon bonhomme met de 1 a 2 seconde apres que j'ai appuyer sur une touche directionnel pour se deplacer.
Merci d'avance.
JC78.

Sangohan38 le 29/01/2008 à 16:00
Il y a un moyen pour que les pt-off disparaissent: utiliser uene boucle avec for ce qui raccourcirait le programme.
Pour éviter les listes, je ne voit qu'un moyen: faire varier les coordonées du pacman et des ennemis et lorsqu'elles sont égales, envoyer au label de la défaite. Par contre, je ne voit pas comment tu pourrait ne pas les utilisées pour définir les coordonées des points à manger.
Enfin, si ton pacman est lent, c'est parcequ'entre le moment ou tu appuye et le moment ou il bouge, la calculette effectue beaucoup de calculs/boucles.
Sangohan38Ratuss le 29/01/2008 à 19:07
si tu mets une boucle for ce sera beaucoup plus lent.
(sinon je vois pas non plus pourquoi tu utilises des listes

? )
JC78 le 30/01/2008 à 12:29
Merci. Les liste que j'utilise,2 au total pour un perso, permet de reperer les 20 points qui composent mon perso.L1 code les x et L2 definit les y.
ex: si je veux aller a droite(codetouche donne y):
Code
If Y=26:then:pt-off(L1(1)-A,L2(1)-A:...pt-off(L1(20)-A,L2(20):end
Au prealable if Y=26:L1(1)+A donne L1(1)
Avec A=8
Sachant qu'a la fin il y a
Code
pt-on(L1(1),L2(1):...pt-on(L1(20),L2(20)
Pour resume les points definisent mon perso,donc si je n'utilise pas de liste pour eux comment est ce qu'il seront definit.
(Mon jeu tourne sur le dessin et non sur ecran de calcul que l'on a lors que l'on allume sa calculette.
Merci.

coc5 le 30/01/2008 à 14:12
A moins de programmer en Assembleur Z80 tu ne pourras jamais avoir un jeu fluide avec un dessein de plus de deux lignes (en faîte le mieux est d'utiliser le troisième argument de Pt-On et d'y mettre 2 ou 3).Sangohan38 le 30/01/2008 à 15:52
Effectivement, le pt-change permettera de canger les pixels actuelles et ensuite, de les remettres à un autre endroit.
Sangohan38JC78 le 31/01/2008 à 10:10
Merci.
Citation
le pt-change permettera de canger les pixels actuelles
par canger tu entendais changer

Sangohan38 le 31/01/2008 à 12:55
Effectivement, c'est une erreur de frappe de ma part.
Sangohan38coc5 le 31/01/2008 à 19:31
Sangohan38 a écrit :
Effectivement, le pt-change permettera de canger les pixels actuelles et ensuite, de les remettres à un autre endroit.
Sangohan38
Je ne parlais pas de ça mais de, par exemple :
Ratuss le 31/01/2008 à 20:04
non compatible avec les 82 par contre...JC78 le 01/02/2008 à 10:16
Si je met:
Dans ce cas là le perds mon perso(compose de 20 points) pour le remplacer par un "2" ?
En fait pour les pt-off je les ait remplacer par:
Code
:If Y=26
:then
:texte(62-L2(13),L1(9)," "
:texte(63-L2(13),L1(9)," "
:end
(L1 pour les x, L2 pour les Y)

coc5 le 01/02/2008 à 10:21
Ratuss a écrit :
non compatible avec les 82 par contre...
Je ne le savais pas...
Pt-On(A,B,2 n'affichera pas un deux mais un dessin.
JC78 le 02/02/2008 à 18:12
Je l'ai tester et sa affiche en effet un "carre" ou un "plus".
Les "textes" donneront ils le meme resultat?
ex:

Ratuss le 02/02/2008 à 18:45
non : ils sont légerement plus lents d'une part, et de plus il y a un "masque blanc" qui s'affiche derrière.JC78 le 02/02/2008 à 19:04
Merci. Pour l'espace blanc ce n'est pas un probleme etant donné qu'il y a un espace de 2 a 3 points entre les persos et les murs.
Le probleme qui se pose maintenant est les nombreuses conditions que mon jeu inclut pour rendre aleatoire et autonome les trois enemis.
(Je posterais bientot le code de ces conditions pour voir s'il elles sont simplifiables pour rendre le jeu plus fluide, le temps que je l'ai recopie.)
JC78.

JC78 le 03/02/2008 à 18:10
Voila une partie du code de mon jeu pacman que je n’arrive pas à simplifier pour rendre mon jeu plus fluide.
Paramètre :
Les ennemis peuvent traverser les murs pour la fluidité du jeu.
Chaque ennemis est autonome et avance selon une logique : l’aleatoire. (Faire un algorithme en fonction ma position me semble trop élevé (au niveau condition) pour que cela soit possible tout en gardant une vitesse de jeu correct. (Il peut sembler court mais n’est pratiquement compose que de conditions qui ralentissent mon jeu.).
Code
:enAleat(1,4)#C
:While 1
:Codetouche#Y
:If C=1:then:1#D:2#E:enAleat(2,4)#C:end
:If C=2:then:2#D:4#E:enAleat(1,3)#C:end
:If C=3:then:3#D:1#E:enAleat(2,4)#C:end
:If C=4:then:4#D:3#E:enAleat(1,3)#C:end
:If D=1 et Q<84 et Q>0:Q+A#Q
:If E=1 et O<84 et O>0:O+A#O
:If D=2 et V>0 et V<46:V+A#V
:If E=2 et T>0 et T<46:T+A#T
:If D=3 et V>8 et V<62:V-A#V
:If E=3 et T>8 et T<62:T-A#T
:If D=4 et Q>8 et Q<94:Q-A#Q
:If E=4 et O>8 et O<94:O-A#O
:If D=1:Texte(V,Q-A,” “
:If E=1:Texte(T,O-A,” “
:If D=4:Texte(V,Q+A,“ “
:If E=4:Texte(T,O+A,” “
:If D=3:Texte(V+A,Q,“ “
:If E=3:Texte(T+A,O,” “
:If D=2:Texte(V-A,Q,“ “
:If E=2:Texte(T-A,O,” “
:Texte(V,Q,”+“
:Texte(T,O,”+“
:End
:End
Précisions :
# donne STO(le flèche).
les caese noires represente des guillemets.
Il y a trois espace entre les guillemets.
Cette partie de code ne donne que 2 ennemis représenter par des »+ ».
(En effet pour en mettre plus il suffit de rajouter trois variables.)
Ceci n’est pas le code dans sa version entière.
La variable A est égale a 8 ( elle est fixe pendant tout le jeu.)
JC78.

Ratuss le 03/02/2008 à 18:23
a mon avis tu dois pouvoir enlever tous les if.
juste pour savoir, il prend combien en taille ton prog ?Sangohan38 le 03/02/2008 à 18:28
D'après ce que je viens de voir, tu peut alléger.
Tout d'abord, on voit que selon les valeurs de C, on met les mêmes dans D donc au lieu de:
Cela donne:
Ensuite, pour les entléat, il y à qu'une conditon différente donc au lieu de:
Citation
If C=1:Then:...:entAléat(1,3):End
...
If C=3:Then:...:entAléat(1,3):End
On obtient:
Citation
If C=(1 ou 3):entAléat(1,3)
Enfin, pour les dernières lignes, c'est impossible d'alléger sauf si tu nous donne plus de détail.
Sangohan38
Ratuss le 03/02/2008 à 18:47
Code
:If C=1:then:1#D:2#E:enAleat(2,4)#C:end
:If C=2:then:2#D:4#E:enAleat(1,3)#C:end
:If C=3:then:3#D:1#E:enAleat(2,4)#C:end
:If C=4:then:4#D:3#E:enAleat(1,3)#C:end
sauf que les valeurs de D et E sont differentes
JC78 le 03/02/2008 à 19:09
Totalement aboutis il devrait faire entre 3000 et 4000 octet.
Dont 2000 pour les conditions de déplacements de mon perso.
Il se compose de 5 programmes :
Un programme maitre et quatre sous programmes.
Les sous programmes définissent les conditions de déplacements de mon perso (4 au total.)
Les E et D sont différents pour éviter que les ennemis ne fassent la même chose.
Je posterais bientôt le programme dans sa totalité. Peut être demain..
JC78.

Avertissement :Il s'agit d'une page optimisée pour la navigation mobile. Voir la
page originale.