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 » Est-ce que cette fonction existe?


Xanto Invité

Est-ce que cette fonction existe?

Posté le 18/11/2016 17:38

Bonjour
Après avoir finis le tutoriel (très bien fait ) sans grosses difficultés, j'ai évidemment voulu créer mon premier jeu
J'ai décidé de programmer un clicker parce que j'adore ça et c pas trop compliqué.
Dans mon jeu (et comme dans la majorité des clickers) il y a deux types d'amélioration : celle qui font qu' a chaque fois qu'on clique on gagne x d'or en plus, et les amélioration qui font qu'à chaque secondes on gagne x d'or.
J'en arrive donc à ma question, : existe t-il une fonction permettant de faire qu'a chaque seconde, il se passe qqch?


Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 18/11/2016 17:39 | #


Malheureusement, non. La seule méthode existante pour faire ça est de coder une boucle qui se met en pause à chaque itération.
While 1
// événements de chaque seconde
For 1→N To 1000:Next
WhileEnd

Ajuster la borne supérieure de la boucle For permet de faire varier le délai. Ce n'est pas une solution très satisfaisante mais on ne peut pas vraiment faire mieux !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)


Xanto Invité

Citer : Posté le 18/11/2016 17:42 | #


Merci bcp je vais tester ça rapidement
Cakeisalie5 En ligne Ancien administrateur Points: 1910 Défis: 11 Message

Citer : Posté le 18/11/2016 17:43 | #


Pour gérer des timers en plus de ton code principal, tu peux la jouer fine.
Tu as une boucle :

While 1
// ton code normal, interaction avec l'utilisateur
WhileEnd

L'idée est d'avoir une variable que tu incrémentes à chaque tour :

0->N
While 1
// ...
N+1->N
If N=<une valeur qui te convient>:Then
// évènements de ton timer
0->N
IfEnd
WhileEnd

Ainsi, tous les <valeur> tours de boucles, une action sera exécutée.

Promotion ordinaire sur les inscriptions sur Planète Casio : en ce moment, c'est gratuit !

Mon blogBesoin d'utilitaires de transfert vers et depuis la calculatrice sous GNU/Linux ?
Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 18/11/2016 17:45 | #


Je précise qu'une telle boucle (que ce soit pour ma solution ou celle de Cake) doit être ton programme principal... en fait, la technique normale (sur un ordinateur par exemple) est de programmer un timer qui expire au bout du délai voulu en appelant du code spécifié :
Corps principal
  ... faire des choses
  Programmer le timer
  // le programme sera interrompu régulièrement par le timer
  ... continuer

Code de réaction au timer
  ... effectuer les tâches régulières
  // le programme revient automatiquement dans le corps principal

Et donc, le code qui répond au timer est détaché du reste. Ici, ce n'est pas possible. Le code régulier est donc dans la boucle, et tu n'as pas d'autre choix que de mettre à peu près tout le programme dans la boucle.
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 18/11/2016 19:31 | #


Dans mon ancien projet Starcraft, j'avais créé un sous-programme qui gérait le "temps réel", je l'appelais dans chaque menu. Malgré les nombreuses vérifications faites, le résultat était convaincant :
sur un de mes commentaires a écrit :
A titre d'information, le moteur du jeu pour lequel j'en suis trèèèèès fier ne fait que 370 octets
Il gère :
- les ressources
- l'affichage/rafraichissement du minerai, gaz, population et le temps
- les touches (getkey)
- l'activation des évènements et du menu de pause
- et surtout, il simule le temps réel !
Le Getkey est très réactif : vérifié 40 fois par seconde sur la G100+ et 68 fois sur la G85 !


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 69 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