Ce que je veux faire ici, c'est me laisser attaquer le monstre toutes les trois secondes. Voici mon code :

                user.last_attack_time = Date.now();
                user.save();


            let nextAttack = user.last_attack_time+3000;

            if(user.last_attack_time <= nextAttack) {

L'instruction if fonctionne toujours si j'attaque plus vite qu'une seconde. Quel pourrait être le problème ici ?

0
zlotte 17 mars 2019 à 22:50

2 réponses

Meilleure réponse

Vous voulez if(Date.now() >= nextAttack)

3
Andy Ray 17 mars 2019 à 19:54

Si tu fais

let x = a_function_returning_a_number();
let y = x + 3000;
if (y < x) { ... }

Vous attendez-vous vraiment à ce que le code à l'intérieur des accolades soit exécuté?

Ce que vous devez faire, c'est:

let t = Date.now();
if (t > this.last_attack+3000) {
    // Valid attack
    this.last_attack = t;
    ...
}
0
6502 17 mars 2019 à 19:56