CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Incrémenter chaque seconde

News jeu

Expeditions: Samurai veut révolutionner le RPG tactique avec une aventure entièrement jouable en coop

Voir
the_wrath
the_wrath
Niveau 5
23 décembre 2015 à 20:14:56

:salut:
Voila j'ai commencé à développer un jeu HTML5 avec Pixi.js , dans la fonction animate qui fonctionne en gros comme la boucle principale d'un jeu j'ai besoin d'incrémenter un compteur mais seulement chaque seconde et non à chaque tour de boucle, j'ai fait quelque chose qui marche mais j'ai trop honte parce que ma solution fait planter firefox et sa rame :hap:
Merci pour vos lumières ! [[sticker:p/1kkn]]

Lapintade
Lapintade
Niveau 30
23 décembre 2015 à 20:36:23

En général on utilise la boucle et son temps variable et tu cumule le temps dans une variable. Après tu peux détecter quand tu passe les secondes.

en pseudo langage, ca donnerait:

init
{
temps_cumul=0;
}

update(delta_temps)
{
temps_cumul = temps_cumul+delta_temp^s

if temps_cumul change de seconde then do ....

}

the_wrath
the_wrath
Niveau 5
23 décembre 2015 à 20:48:22

comment tu détecte que ton temps_cumul change de seconde ?

Chnapy
Chnapy
Niveau 10
23 décembre 2015 à 22:21:45

If( temps_cumul/1000 > 0 )
temps_cumul = temps_cumul % 1000
...

LGV
LGV
Niveau 28
23 décembre 2015 à 22:38:33

Pour etre totalement "safe" et pour fonctionner en cas de time slicing, on ecrit plutot :

timer += dt
while (timer > time)
{
timer -= time
do...
}

Ca permet eventuellement de faire plusieurs actions par frame et n'accumule pas d'erreur non plus

Message édité le 23 décembre 2015 à 22:40:20 par LGV
LECROU
LECROU
Niveau 10
23 décembre 2015 à 23:52:03

D'un point de vue purement Javascript, tu pourrais utiliser setInterval avec 1000ms, mais il est probablement plus intéressant de se baser sur le delta time, effectivement.

the_wrath
the_wrath
Niveau 5
23 décembre 2015 à 23:58:10

Merci en tout cas pour vos réponse mais même avec votre solution finalement je retrouve le même problème à savoir out of memory ( le gestionnaire des tâches m'indique que firefox consomme 1go de memoire vive ) donc soit ça vient d'autre part soit ba je sais pas :hap:

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware