Page 1 of 1

Aide jeu ESQUIVE !

Unread postPosted: 04 Dec 2015, 22:01
by loupiot
J'ai publié aujourd'hui un jeu nommé ESQUIVE ! où il faut éviter des objet alors que le joueur est toujours en mouvement.
Il y a cependant encore quelques bugs que je n'ai pas réussi à corriger.
(Je vous laisse télécharger pour vous faire une idée du principe)
Code: Select all
Lbl 0
EffEcran
Menu("ESQUIVE !","Le jeu",1,"Les règles",2,"Quitter",3
Lbl 2
EffEcran
Disp "Le jeu cosiste à éviter
Disp "les 'I' qui tombent sans
Disp "dépasser les limites.
Disp "Le vaisseau Δ ne peux pas
Disp "s'arrêter. On utilise les
Disp "flèches pour se déplacer.
Disp "L'orsque '□' apparaît, tu
Disp " peux appuier sur la
Disp "flèche haut pour gagner
Output(10,1,"10 points !
codetouch(
Repeat codetouch(
End
Goto 0
End
Lbl 1
EffVar S
EffVar Z
EffVar W
EffVar Y
12→X
1→F
8→E
2→H
12→G
3→J
20→I
4→M
18→L
For(A,2,9
    Output(A,5,">
    Output(A,22,"<
End
For(B,5,22
    Output(9,B,"^
End
Output(8,X,"Δ
Output(F,E,"I
Output(H,G,"I
Output(J,I,"I
Output(F,E+4,"I
Output(H,G-3,"I
Output(J,I-5,"I
entAléat(10,30→Z
entAléat(7,20→Y
While 1
    W+1→W
    If W=Z
        Output(1,Y,"□
    If W=Z+15
    Then
        Output(1,Y,"
        EffVar W
        EffVar Z
        EffVar Y
        entAléat(15,30→Z
        entAléat(7,20→Y
    End
    codetouch(
    If Rep
        Rep→K
    If K=25 et X=Y et Z<W<Z+15
    Then
        S+10→S
        Output(7,X,"!
        Output(1,Y,"
        EffVar W
        EffVar Z
        EffVar Y
        entAléat(15,30→Z
        entAléat(7,20→Y
        Output(7,X,"
    End
    If K=24
        X-1→X
    Output(8,X+1,"
    If K=26
        X+1→X
    Output(8,X-1,"
    If K≠24 et K≠26
        X-1→X
    Output(8,X+1,"
    Output(8,X,"Δ
    F+1→F
    H+1→H
    J+1→J
    Output(F-1,E,"
    Output(H-1,G,"
    Output(J-1,I,"
    Output(F-1,E+4,"
    Output(H-1,G-3,"
    Output(J-1,I-5,"
    If (E≠X et E+4≠X) et F=9
    Then
        S+2→S
        entAléat(7,15→E
        1→F
    End
    If (G≠X et G-3≠X) et H=9
    Then
        S+2→S
        entAléat(10,20→G
        2→H
    End
    If (I≠X et I-5≠X) et J=9
    Then
        S+1→S
        entAléat(13,20→I
        1→J
    End
    Output(F,E,"I
    Output(H,G,"I
    Output(J,I,"I
    Output(F,E+4,"I
    Output(H,G-3,"I
    Output(J,I-5,"I
    If X=22 ou X=5 ou (F=8 ou F=9) et (E=X ou X+4=X) ou (H=8 ou H=9) et (G=X ou G-3=X) ou (J=8 ou J=9) et (I=X ou I-5=X)
    Then
        Output(4,9,"GAME OVER
        Output(5,10,"SCORE
        Output(5,16,S
        Output(6,6,"APPUIES SUR UNE
        Output(7,10,"TOUCHE
        codetouch(
        Repeat codetouch(
        End
        Goto 0
    End
End
Lbl 3
Stop



Voici les problèmes :
je voudrais déjà que lorsqu'on appuie sur une touche différente de 24 ou 26, notre personnage avance toujours dans la direction dans laquelle il avançait.
Ici, si K est différent de 24 ou 26, il avancera vers la gauche.

Pour l'élément aléatoire, je voulais que le carré s'affiche même lorsqu'un projectile est sur la même colonne que lui. J'avais donc fais
if Z<W<Z+15
output(1,Y,"□
ça marchait, mais bizarrement le carré s'affichait tout le temps, alors que lorsque W est plus petit que Z+15, W prend pour valeur 0


Et si vous pouviez m'aider pour réduire la taille (et donc augmenter la vitesse du programme) de la boucle while, ça m'aiderait beaucoup !

Merci de votre aide :bj:

Re: Aide jeu ESQUIVE !

Unread postPosted: 04 Dec 2015, 22:04
by noelnadal
Ça ne fait pas une grosse différence, mais tu peux mettre tous les EffVar, plus la ligne suivante, sur la même ligne.
Par exemple :

:Effvar A
:Effvar B
:5 -> B
:1->A

devient :

:Effvar AEffvar B5 ->B
:1->A

Sinon, utilise les balises [code][/code] s'il te plaît... :P