[AXE] Besoin d'aide
3 participants
Page 1 sur 1
[AXE] Besoin d'aide
J'aimerais savoir comment il serait possible de faire un programme qui reconnaisse des séquences de touches, par exemple, "haut droite bas gauche", ou "gauche droite" pour un jeu.
je n'y arrive pas en raison de la rapidité de détections des touches :/
je n'y arrive pas en raison de la rapidité de détections des touches :/
maxence- Or 4
- Sexe :
Age : 28
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Re: [AXE] Besoin d'aide
C'est assez facile en fait, ça peut se résumer à un protocole :
C'est pas plus compliqué.
- Attends la pression sur une touche
- Quand tu en détectes une, stocke-la dans un pointeur
- Incrémente ce dernier
- Attends que toutes les touches soient relâchées (getKey(0) doit retourner 0)
- Recommence jusqu'à ce que ta condition d'arrêt soit validée
C'est pas plus compliqué.
matrefeytontias- Platinum 1
- Sexe :
Age : 27
Messages : 1383
Date d'inscription : 28/09/2011
Etudes : 1ère S SI
Points Forum : 90
Points Concours : 7
Langages :- - ASM TI-82 Stats / TI-83
- - ASM TI-83+ / TI-84+
- - Axe Parser
- - Lua Nspire
- - Ndless Nspire
- - TI-83+.fr
- - TI-Nspire CAS
Re: [AXE] Besoin d'aide
Exactement ce que dit matref, ce qui une fois codé (mais non optimisé) donne cela:
- Code:
.AA
. . .
Note: code non optimisé. On peut par exemple
exprimer N en fonction de P et économiser
une variable, etc, mais le but est ici de
comprendre le code, pas de le rendre efficace
. . .
10->N
.on va stocker une séquence de 10 touches
0->P
.le pointeur une fois ajouté à L1
.comme son nom l'indique
While 1
While 1
EndIf getKey
->{P+L1}
P++
While 1
Pause 20
End!If getKey(0)
EndIf N=P
.maintenant on vérifie que le code a marché
For(A,0,N-1)
Text(0,A*6,{A+L1}>Dec)
End
Pause 3600
Return
Hayleia- Or 4
- Age : 30
Messages : 406
Date d'inscription : 03/08/2012
Points Forum : 46
Points Concours : 4
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-76.fr
- - TI-83+
- - TI-84+ SE
- - TI-Nspire CX
Re: [AXE] Besoin d'aide
Merci à vous, Haylela, je ne peux pas voire ton code avec mon portable, il n'arrive à le faire défiler.
Mais j'ai fini par y arriver, avec un dérivé de l'exemple de matref, sauf que moi je test en permanence les touches, je n'attend pas qu'elles soient relachées.
En gros, si une touche est préssée, je l'ajoute à la pile.
Si il se passe 20 boucles après la dernière touche préssée, la pile est remise à zéro.
J'ai une fonction TEST qui renvoi vrai si la séquence de touche, par exemple Data(4,3,1,2) pour un cercle, est présente dans la pile des dernière touches préssées, voilà
Mais j'ai fini par y arriver, avec un dérivé de l'exemple de matref, sauf que moi je test en permanence les touches, je n'attend pas qu'elles soient relachées.
En gros, si une touche est préssée, je l'ajoute à la pile.
Si il se passe 20 boucles après la dernière touche préssée, la pile est remise à zéro.
J'ai une fonction TEST qui renvoi vrai si la séquence de touche, par exemple Data(4,3,1,2) pour un cercle, est présente dans la pile des dernière touches préssées, voilà
maxence- Or 4
- Sexe :
Age : 28
Messages : 574
Date d'inscription : 26/02/2012
Etudes : 1ere S SI
Points Forum : 17
Points Concours : 0
Langages :- - TI-Basic Z80
- - Axe Parser
- - TI-84+
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum