Jeu : Falling [Ti-Basic]

Voir la vidéo

 

- Le télécharger :

FALLING.zip
Archives compressées en format ZIP 653 Bytes

- Comment jouer :

Au démarrage du niveau : déplacer le pixel en haut de l'écran (qui représente le point de départ) avec [fenêtre] ou [trace].

Puis appuyer sur une touche de déplacement pour commencer la chute. Les touches de déplacement pour éviter les pixels sont  [f(x)] et [graphe].

Θ correspond à "thêta", et peut bien sûr être remplacé par n'importe quelle autre 
lettre.
:ClrHome
:ClrDraw
:0Q
:Vertical Xmin
:Vertical Xmax
:StorePic Pic1
:30Θ
:While Q=0
:       47X
:       0Y
:       ClrDraw
:       Text(25,30,"NIVEAU"
:       Text(25,57,(Θ-25)/5
:       For(A,1,500
:       End
:       ClrDraw
:       RecallPic Pic1
:       For(A,1,Θ
:               Pxl-On(randInt(5,62),randInt(1,93)
:       End
:       StorePic Pic1
:       Pxl-On(Y,X
:       0K
:       Repeat (K=11) or (K=15)
:               getKey→K
:               If ((K=12) and (X>2)) or ((K=14) and (X<92))
:               Then
:                       Pxl-Off(Y,X
:                       X+2(K=14)-2(K=12)→X
:                       Pxl-On(Y,X
:               End
:       End
:       Repeat (Y=62) or (Q=1)
:               getKey→K
:               X+(K=15)-(K=11)→X
:               Y+1Y
:               Pxl-Test(Y,X)→Q
:               Pxl-On(Y,X
:       End
:       Θ+5Θ
:End
:Text(15,33,"PERDU !"
:Text(23,30,"NIVEAU"
:Text(23,57,(Θ-30)/5
:Pause 
:ClrDraw
:ClrHome

Petite précision : si vous n'avez pas la commande "randint(" 

Il faut combiner 2 commandes : "int(" ([math], 2ème onglet, 5) et rand ([math], 2ème onglet, 1), de cette manière : int(randX). Ca renvoie alors un nombre entier aléatoire entre 0 et (X-1). 

Donc pour avoir un nombre aléatoire entre 1 et 93, il faut écrire : int(rand93) + 1.

Et de même pour un nombre entre 5 et 62 : int(rand58) + 5.

Pour ralentir la chute du point, observez les ajouts de code en vert : 

:ClrHome
:ClrDraw
:0Q
:Vertical Xmin
:Vertical Xmax
:StorePic Pic1
:30Θ
:While Q=0
:       47X
:       0Y
:       ClrDraw
:       Text(25,30,"NIVEAU"
:       Text(25,57,(Θ-25)/5
:       For(A,1,500
:       End
:       ClrDraw
:       RecallPic Pic1
:       For(A,1,Θ
:               Pxl-On(randInt(5,62),randInt(1,93)
:       End
:       StorePic Pic1
:       Pxl-On(Y,X
:       0K
:       Repeat (K=11) or (K=15)
:               getKey→K
:               If ((K=12) and (X>2)) or ((K=14) and (X<92))
:               Then
:                       Pxl-Off(Y,X
:                       X+2(K=14)-2(K=12)→X
:                       Pxl-On(Y,X
:               End
:       End
:
: 0->L //On utilisera 2 variables de plus
: 0->M
: : Repeat (Y=62) or (Q=1) : getKey→K
: If (K!=0) //Si l'utilisateur appuie sur une touche ("!=" veut dire "différent de")
: KL //On enregistre sa valeur dans la variable L
:               M+1M   //M est incrémenté : c'est le compteur qui déterminera la vitesse de la chute
: If M>2 //Si M>2 alors on fait chuter le point. Avec M>X : plus X est grand plus le point chute lentement ; plus X est petit plus le point chute rapidement
: Then
: 0M //On remet le compteur à 0
: X+(L=15)-(L=11)->X
/*On a remplacé K par L. Le problème était le suivant : on appuie sur une touche de déplacement : K aura la valeur de celle ci mais pour un tour de boucle seulement. Le point chute par exemple un tour sur 3. Si l'on appuie pas au bon moment alors le déplacement demandé ne sera pas pris en compte car K sera remis à 0. C'est pour ça que la valeur de la touche appuyée est enregistrée dans L.
*/
: 0L //Une fois le déplacement effectué : on supprime la valeur enregistrée
:                      Y+1Y
: Pxl-Test(Y,X)→Q : Pxl-On(Y,X
: End //On sort de la condition "Si M>2" : End : Θ+5Θ :End :Text(15,33,"PERDU !" :Text(23,30,"NIVEAU" :Text(23,57,(Θ-30)/5 :Pause :ClrDraw :ClrHome

Nouveau site :


Abonne toi!