1

Bonjour à tous! smile

Je vous explique mon problème, je suis en train de créer un jeu et j'aimerais pouvoir déplacer un "personnage" ou plutôt un caractère sur l'écran de ma ti 83+. le problème est que je ne sais pas très bien utiliser les codetouch (ou getkey).

voila mon programme:

EffEcr
1->X
1->Y
Repeat K=105
Output (Y,X,"+")
codetouch(->K
If K=24
X-1->X
If K=26
X+1->X
If K=25
Y+1->Y
If K+34
Y-1->Y
End


Deux problèmes se produisent quand je lance mon programme, j'ai tout d'abord une erreur domaine qui me ramène au Output quand j'utilise la flèche du bas pour faire descendre le "+" et ensuite quand je le déplace dans une autre direction, les anciennes positions du "+" restent affichée.

Pourriez vous m’aider svp?

Merci d'avance
Gurdil_CB

2

if K+34 => if K=34

pour la position ton effecr n'est pas dans le boucle, donc soit met le, soit après chaque changement, efface le + de la vieille position au préalable
et la le mec il le pécho par le bras et il lui dit '

3

Oups c'est une faute de frappe le K+34 excuse moi (si je peut te tutoyer).

Bien vu pour le EffEcr ! merci smile

Une idée pour le reste?

4

J'ai trouver le problème! Le code fonctionne parfaitement en réalité, il y avait une erreur domaine parce que je sortait de l'écran, le "+" n'était donc lus dans le domaine définie et engendrait une erreur ^^

5

:- )

par contre je te conseille de ne pas mettre ta calto en français, le code sera incompatible pour le reste du monde si tu release ton prog
et surtout, les autres prog basic seront incompatible sur ta machine
et la le mec il le pécho par le bras et il lui dit '

6

Merci du conseil je vais le faire de suite smile

Quelqu'un saurait-il comment définir l'espace où peut se déplacer un caractère sur l'écran?

J'ai essayé ça mais ça ne fonctionne pas:

0->Xmin
94->Xmax
0->Ymin
62->Ymax


Une idée ?

7

ca n'a rien à voir avec les limite de l'affichage de fonction

déjà, fait afficher sur ton écran la position courante du +

ensuite déplace le + et regarde toi même les valeurs à ne pas dépasser

ensuite, dans ton code, au moment de modifier les variables de la position, teste les avec les limites minimale ou maximale

tu devrais faire le output du + après le changement, pas avant, et avant le changement, effacer le + en affichant un espace au même endroit, ca évitera le coûteux clear screen

aussi tu peu mettre en place un système pour mettre a jour l’écran seulement quant c'est nécessaire, du style :

if(une touche bonne enfoncé)
{ 1->mise_a_jour;
modification positions
}

if(mise_a_jour)
{ clrScr;
affiche +
0->mise_a_jour
}
et la le mec il le pécho par le bras et il lui dit '

8

C'est un peu compliquer je n'ai pas tout suivis ^^', pourrais tu me montrer un exemple du code pour que je comprenne mieux?

9

en gros qq chose comme ca :

1->X
1->Y
1->maj
0->K
42->maxx
10->maxy

Repeat

getKey()->K

If K=24 and x>0
X-1->X
1->maj
endif

If K=26 and x<maxx
X+1->X
1->maj
endif

If K=25 and y<maxy
Y+1->Y
1->maj
endif

If K+34 and k>0
Y-1->Y
1->maj
endif

if maj=1
clrScr()
Output (Y,X,"+")
trucmachin->textepositioncourante // remplace truc machin par le nécessaire pour convertir en chaîne de char ton X et ton Y, afin de voir leur valeur en "live", ça te permettra de trouver les bonnes valeurs pour maxx et maxy
Output (1,1,textepositioncourante)
0->maj
endif

End
et la le mec il le pécho par le bras et il lui dit '

10

Je ne suis pas très loin du résultat merci beaucoup en revanche je ne comprends pas a quoi correspond le “maj”

11

(dsl pour le double post mais je n'arrive pas à éditer =/ )

j'ai compris tout seul que le fameux maj était en faite une simple variable ^^

donc voilà le code que j'ai modifié légèrement :

10->X
5->Y
1->A

94->Xmax
62->Ymax
0->Xmin
0->Ymin

Repeat K=105

GetKey->K

If K=24
X-1->X
1->A

If K=26
X+1->X
1->A

If k=25
Y-1->Y
1->A

If K=34
Y+1->Y
1->A

If A=1
ClrHome
OutPut(Y,X,"+")
End



Des erreur? Quelque chose a améliorer?

12

en fait,

94->Xmax
62->Ymax
0->Xmin
0->Ymin

n’empêchera en rien ton affichage de sortir de l'écran,
tu doit, avant d’incrémenter ou décrémenter ton x et ton y, t'assurer que celui ci restera dans les limites,
limites qui sont le nombre de colonnes et lignes de textes possible à l'écran (ou pixel, suivant ce que fait la fonction output)

si tu regarde mon code j'ai mis sur tes if une seconde condition qui fait cette vérification, la syntaxe est à adapter au ti basic, mais en gros c'est SI ( telle touche ET pas à la limite )

la syntaxe du 1->A aussi devrais être dans un "vrai" bloc if, donc if ... endif ou assimilé, sinon le if contiendra seulement l'instruction suivante

la ti83 n'autorise pas de nom de variable en dehors de a-z ?
et la le mec il le pécho par le bras et il lui dit '

13

Je n'ai en faite trouver aucun équivalent à la fonction and c'est pour cela qu'elle n'est pas présente dans code, je chercher comment faire.

Pour les variables on peut leur donner deux caractères maximum dans le nom (chiffre ou lettre), c'est probleme du basique.

En revanche j'ai réussi à limiter énormément le clignotement grace à toi en rajoutant un Lbl 0 après le Repeat et une condition:

If K=0
Goto

à placer entre la dernière condition des touches (K=34) et le If K=1

Pour le reste je cherche smile

14

le AND ou && doit forcement être présent, sinon, tu peut aussi enchaîner deux if

if K=34
then
	if y>0
	then
		Y-1->Y 
		1->maj 
	endif
endif


le clignotement est la car tu rafraîchis l'ecran à chaque passe,
en indiquant grâce à une variable (un flag), une modification, tu évite d'effacer l'écran à chaque fois, pour le faire seulement quant c'est vraiment utile
le goto n'est pas bête, c'est le même principe, et ton k=0 simule plus ou moins le flag de rafraîchissement de l'écran,
mais certain ici te trifouetterais violemment pour avoir osé utilisé cette instruction diabolique devil
et la le mec il le pécho par le bras et il lui dit '

15

Merci beaucoup pour ces réponses et désoler pour l'absence, j'ai trouver la fonction And, elle se trouve dans [seconde] [math] [logic] .
J'ai énormément enrichit le code depuis mais je me heurte un gros problème pour la conception de mon jeu: LA MÉMOIRE !
C'est une horreur je manque affreusement de place.. couic

16

Après un bon gros paquet de testes et expérimentation diverses je me suis lancé dans la conception d'un RPG complet, je sais
que je ne suis pas le premier et si quelqu'un est intéressé et motivé pour me prêter main forte je l’accueil à bras ouverts !
Le jeu (il n'a pas encore de nom) sera programmé entièrement en basique et aura pour objectif ne pas être trop volumineux pour la mémoire car il sera programmé pour les ti 83+ .
Pour cela le jeu sera divisé en plusieurs actes eux mêmes divisés en niveau, ce qui offrira au jeux une durée de vie prolongeable grin
Pour ce qui est du jeu en lui même le personnage se déplacera sur l'écran graphique et non avec des caractère comme je le faisais au départ.

Je vais essayer de vous faire quelques Screenshots pour vous donner une idée de ce à quoi le jeu va ressembler...

a bientôt

Gurdil_CB

17

bon courage smile
et la le mec il le pécho par le bras et il lui dit '

18

Merci beaucoup ! smile

Voici un premier screen c'est une maison qui sera probablement dans le premier village:

tromb Fichier joint : Sz39 (Maison.jpg)

Et un second (non définitif) de ce à quoi pourrai ressembler le personnage principal:

tromb Fichier joint : 14JU (personnage.jpg)