Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Autres questions


Index du Forum » Autres questions » Effacer une partie de ma barre de vie
4lex1s Hors ligne Membre Points: 11 Défis: 0 Message

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)


Lephenixnoir En ligne Administrateur Points: 24241 Défis: 170 Message

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.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Silaxe Hors ligne Membre Points: 809 Défis: 12 Message

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 ?
4lex1s Hors ligne Membre Points: 11 Défis: 0 Message

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
Lephenixnoir En ligne Administrateur Points: 24241 Défis: 170 Message

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 :
For 58→I To 39
PlotOff I,15
Next

Est-ce que je suis clair ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
4lex1s Hors ligne Membre Points: 11 Défis: 0 Message

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 ?
Lephenixnoir En ligne Administrateur Points: 24241 Défis: 170 Message

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
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message

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).

For 58→I To 39 Step -1
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 :
For Pixel_départ→I To Pixel_arrivée Step -1
PlotOff I,15
Next


Disons que tu stockes Pixel_départ dans A et Pixel_arrivée dans B. On obtient alors :
For A→I To B Step -1
PlotOff I,15
Next

4lex1s Hors ligne Membre Points: 11 Défis: 0 Message

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 ?
Totoyo Hors ligne Membre d'honneur Points: 16093 Défis: 102 Message

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 37 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd