Effacer une partie de ma barre de vie
Posté le 16/01/2015 16:00
Bonjour,
après avoir appris le fonctionnement des F-Line, PlotOff et PlotOn, je me suis dit que j'allais créer un jeu.
le problème c'est avec ma barre de vie, je ne sais pas comment la faire baisser le facon dont j'avais essayé de le faire hier ne marchait pas (ca faisait un peu n'importe quoi).
voici mon code
[brown]Cls[/brown]
[brown]ViewWindow[/brown] [maroon]1[/maroon],[maroon]127[/maroon],[maroon]0[/maroon],[maroon]1[/maroon],[maroon]63[/maroon],[maroon]0[/maroon]
46→H
0→D
0→R
[b][brown]F-Line[/brown][/b] [maroon]10[/maroon],[maroon]10[/maroon],[maroon]60[/maroon],[maroon]10[/maroon]
[b][brown]F-Line[/brown][/b] [maroon]10[/maroon],[maroon]10[/maroon],[maroon]10[/maroon],[maroon]17[/maroon]
[b][brown]F-Line[/brown][/b] [maroon]10[/maroon],[maroon]17[/maroon],[maroon]60[/maroon],[maroon]17[/maroon]
[b][brown]F-Line[/brown][/b] [maroon]60[/maroon],[maroon]17[/maroon],[maroon]60[/maroon],[maroon]10[/maroon]
[b][brown]Text[/brown][/b] [maroon]41[/maroon],[maroon]11[/maroon],[gray]"points de vie"[/gray]
[b][brown]F-Line[/brown][/b] [maroon]12[/maroon],[maroon]12[/maroon],[maroon]58[/maroon],[maroon]12[/maroon]
[b][brown]F-Line[/brown][/b] [maroon]12[/maroon],[maroon]13[/maroon],[maroon]58[/maroon],[maroon]13[/maroon]
[b][brown]F-Line[/brown][/b] [maroon]12[/maroon],[maroon]14[/maroon],[maroon]58[/maroon],[maroon]14[/maroon]
[b][brown]F-Line[/brown][/b] [maroon]12[/maroon],[maroon]15[/maroon],[maroon]58[/maroon],[maroon]15[/maroon] [green]'a partir de là j'ai une barre de vie remplie[/green]
[b][blue]Do[/blue][/b]
[b][brown]Text[/brown][/b] [maroon]56[/maroon],[maroon]15[/maroon],H
[b][brown]Text[/brown][/b] [maroon]56[/maroon],[maroon]26[/maroon],[gray]"| [maroon]46[/maroon]"[/gray] [green]'pour afficher les points de vie[/green]
Getkey=[maroon]79[/maroon]⇒1→D [green]'ca ne sera pas dans mon code à la fin c'est juste pour faire baisser ma vie et faire des tests[/green]
[b][blue]If[/blue][/b] D=[maroon]1[/maroon]
[b][blue]Then[/blue][/b] H-1→H
0→D
[b][blue]IfEnd[/blue][/b]
[b][blue]Then[/blue][/b] H-1→H
0→D
[b][blue]IfEnd[/blue][/b]
[b][blue]LpWhile H>0[/blue][/b]
voilà j'aimerais donc que ma barre de vie faite (avec les 4 F-Line après mon Text) puisse se vider quand ma Variable H (ma vie) diminue et s'arrête au bon endroit (exemple : je perd 6 points de vie (donc si je fait H-6→H) 6 pixels soit effacé dans le sens de la longueur)
Citer : Posté le 16/01/2015 16:02 | #
Tu peux effacer facilement des pixels en faisant une boucle et en utilisant PxlOff pos_x, pos_y (dans le repère de Text) out PlotOff pos_x, pos_y (dans le repère de F-Line).
Attention, les fonctions Plot changent les valeurs de X et de Y donc il n'est plus possible de les utiliser.
Citer : Posté le 16/01/2015 16:55 | #
Il y a plusieurs façon dont celle évoquée par Lephenixnoir.
Quel est ton type de jeu ?
Citer : Posté le 16/01/2015 18:05 | #
Lephenixnoir, merci mais tu pourrais me dire le code que je doit écrire ? j'ai pas exactement compris ce que tu dis
Silaxe enfaite ca sera un RPG, tour par tour, mais pour l'instant c'est juste de l'affichage
Citer : Posté le 16/01/2015 18:06 | #
Si j'ai bien compris ta barre de vie va de 12 à 58 sur la ligne 15.
Donc pour effacer 20 pixels :
PlotOff I,15
Next
Est-ce que je suis clair ?
Citer : Posté le 16/01/2015 19:49 | #
merci, mais je n'ai pas compris où se trouve le 20, que dois-je changer si je veux effacer moins ou plus ?
Citer : Posté le 16/01/2015 20:04 | #
Ma boucle fait varier I de 58 à 39. Il faut imaginer un pixel, sur la ligne de ta barre de vie, qui se balade entre la colonne 58 et la colonne 39
Du coup, facile : 20 c'est 58-39 (+1 car les deux bornes sont incluses), la longueur du déplacement dudit pixel
Faut juste faire attention que ta barre de vie elle commence pas toujours à 58 vu qu'elle descend quand tu perds de la vie
Citer : Posté le 16/01/2015 20:07 | #
Il se trouve ici :
"For 58→I To 39"
Le code proposé par Lephenixnoir va effacer les pixels de 58 à 39. D'ailleurs, il a oublié le "Step -1" car les valeurs décroissent (58 > 39).
PlotOff I,15
Next
En gros, 58 représente la valeur de départ et 39 la valeur d'arrivée. Les calculs de ces valeurs ressemblent à cela :
Pixel_départ : 12 + 46 * Vie_restante_avant_dégâts / Vie_max
Pixel_arrivée : 12 + 46 * Vie_restante_après_dégâts / Vie_max
Donc, on aura ça :
PlotOff I,15
Next
Disons que tu stockes Pixel_départ dans A et Pixel_arrivée dans B. On obtient alors :
PlotOff I,15
Next
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<
Citer : Posté le 16/01/2015 20:40 | #
ok merci beaucoup pour votre aide
Ajouté le 16/01/2015 à 20:42 :
mais j'aurais une autre petite question : j'ai aussi en dessous de la barre de vie le nombre (46/46) mais le problème c'est que j'ai fait beaucoup de PlotOff pour effacer le deuxième nombre de 46 quand il passe en dessous de 10 et c'est très long pour effacer un simple nombre, est-il possible de le faire plus rapidement ?
Citer : Posté le 16/01/2015 21:26 | #
Tu fais :
Vitesse des fonctions en Basic Casio | 7 days CPC | Casio Universal Wiki | Tutoriel Basic Casio
>>> Give me a click Brother <<< >>> Teste mon générateur de mots nouveaux <<<
>>> Random Youtube Video <<<