Résolu Détecter si le joueur est en mouvement
-
Bonjour,
J’aimerais faire une condition qui s’active uniquement quand le joueur est en mouvement mais je ne trouve pas de moyen de détecter si le joueur est en mouvement -
Salut,
Suffit de vérifier que player.motionX ou player.motionZ n’est pas égale à 0. -
Ok Merci !
EDIT : Aparemment ça marche pas
j’ai utilisé ce codepublic void onUpdate(ItemStack stack, World worldd, Entity player, int i, boolean b) { ItemStack equip = ((EntityPlayer)player).getCurrentEquippedItem(); if(equip == stack) { if(player.motionX != 0 || player.motionZ != 0 || player.motionY != 0) { //Spawns a particle. Args particleName, x, y, z, velX, velY, velZ worldd.spawnParticle("crit", player.posX, player.posY - 0.8, player.posZ, 0.0D, 0.0D, 0.0D); worldd.spawnParticle("crit", player.posX, player.posY - 0.6, player.posZ, 0.0D, 0.0D, 0.0D); worldd.spawnParticle("crit", player.posX, player.posY - 0.4, player.posZ, 0.0D, 0.0D, 0.0D); worldd.spawnParticle("crit", player.posX, player.posY - 0.2, player.posZ, 0.0D, 0.0D, 0.0D); worldd.spawnParticle("crit", player.posX, player.posY - 1, player.posZ, 0.0D, 0.0D, 0.0D); worldd.spawnParticle("crit", player.posX, player.posY - 1.2F, player.posZ, 0.0D, 0.0D, 0.0D); } } }
Je sais pas ou j’ai fait une erreur …
-
Correction, si le joueur se déplace vers des coordonnées négatives, les motions sont négatives.
Donc il faut mettre != 0 et non > 0
-
C’est bon ça fonctionne merci !
EDIT : Ah ben non en fait, il faut que je soit en train de voler dans les airs pour que ça fonctionne -
J’ai dis x et z, pas y x)
motionY est négatif si le joueur tombe, positif s’il monte. Sinon 0.(concernant ta première condition, remplaces juste par if(b). Cette variable vaut true si l’item est porté en main, sinon false).
-
Ca fonctionne , merci !