• S'inscrire
    • Se connecter
    • Recherche
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes

    Crescendo et decrescendo pour un son

    Sans suite
    1.7.10
    3
    6
    1522
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • Deleted
      Deleted dernière édition par

      Salut à tous et à toutes, je cherche à faire un decrescendo lorsque ma musique se lance et un decrescendo quand elle doit s’arrêter cependant cela ne marche pas car la musique se lance avec une valeur mais cette dernière est bien tickée mais on dirait que le son de la musique ne veut pas se modifier

      Voilà mon code, merci d’avance ^^

      
      package mrplaigon.fr.testMod.entity;
      
      import mrplaigon.invictusserver.invictus.common.InvictusMod;
      import mrplaigon.invictusserver.invictus.handler.ItemHandler;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.EntityLivingBase;
      import net.minecraft.entity.SharedMonsterAttributes;
      import net.minecraft.entity.ai.attributes.IAttributeInstance;
      import net.minecraft.entity.item.EntityXPOrb;
      import net.minecraft.entity.monster.EntityMob;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.init.Items;
      import net.minecraft.potion.Potion;
      import net.minecraft.potion.PotionEffect;
      import net.minecraft.util.ChatComponentTranslation;
      import net.minecraft.util.DamageSource;
      import net.minecraft.util.MathHelper;
      import net.minecraft.world.EnumDifficulty;
      import net.minecraft.world.World;
      
      public class EntityBoss extends EntityMob
      
      {
      
          //public int deathTicks;
      public short timerReload = 0;
          public float crescendo = 0.0F;
          public float decrescendo = 2.5F;
          public float soundMusicValue;
      
      public EntityBoss(World world) 
      {
      super(world);
      //this.setSize(1.4F, 0.9F);
              this.isImmuneToFire = true;
      }
      
      public void applyEntityAttributes() 
      {
      super.applyEntityAttributes();
      getEntityAttribute(SharedMonsterAttributes.maxHealth).setBaseValue(10.0D);
      getEntityAttribute(SharedMonsterAttributes.attackDamage).setBaseValue(20.0D);
      getEntityAttribute(SharedMonsterAttributes.movementSpeed).setBaseValue(0.25D);
      getEntityAttribute(SharedMonsterAttributes.knockbackResistance).setBaseValue(5.0D);
      }
      
      public boolean attackEntityAsMob(Entity entity)
          {
              if (super.attackEntityAsMob(entity))
              {
                  if (entity instanceof EntityPlayer)
                  {
                          ((EntityPlayer)entity).addPotionEffect(new PotionEffect(Potion.wither.id, 10 * 20, 1));             
                  }
      
                  return true;
              }
              else
              {
                  return false;
              }
          }
      
          /**
           * handles entity death timer, experience orb and particle creation
           */
          public void onDeath(DamageSource damagesource)
          {
      
      if (damagesource.getEntity() instanceof EntityPlayer)
      {
      int j = rand.nextInt(3);
      
      if (j == 0)
      {
      this.dropItem(ItemHandler.invictusCristalRare, 1);
      }
      int k;
      int i = 75000;// 75 = 0.5 level, 150 = 1 level environ, 1500 = 10 level, 150 000 = 10 levels pour 10 personnes au minimum
      
                      while (i > 0)
                      {
                          k = EntityXPOrb.getXPSplit(i);
                          i -= k;
                          this.worldObj.spawnEntityInWorld(new EntityXPOrb(this.worldObj, this.posX, this.posY, this.posZ, k));
                      }
                   stopBossMusic();
      }
          }
      
          public void onLivingUpdate()
          {
          super.onLivingUpdate();
          timerReload++;
          crescendo += 0.1F;
            decrescendo -= 0.1F;
      
            System.out.println("La valeur de crescendo" + crescendo);
      
            if (crescendo >= 2.5F)
            crescendo = 0.1F;
      
            if (decrescendo == 0.0F)
            decrescendo = 2.5F;
      
          if (timerReload <= 1)
          {
          launchBossMusic();
          System.out.println("Music du boss lancee");
          }
          else if (timerReload >= 3500)
          {
          timerReload = 0;
          }
          }
      
          private void launchBossMusic()
          {
          if (this.getHealth() > 0.0F)
               {
                  EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 16.0D);
                     if(entityplayer != null && this.canEntityBeSeen(entityplayer))
                     {
                         crescendo = 0.1F;
                         soundMusicValue = crescendo;
                         this.worldObj.playSoundAtEntity(this, "invictus:bossMusic", soundMusicValue, 1.0F);
                     }
               }
           }
          private void stopBossMusic()
          {
          if (this.getHealth() == 0.0F)
           {
              EntityPlayer entityplayer = this.worldObj.getClosestVulnerablePlayerToEntity(this, 16.0D);
                 if(entityplayer != null && this.canEntityBeSeen(entityplayer))
                 {
                timerReload = 0;
                     decrescendo = 2.5F;
                     soundMusicValue = decrescendo;
                 }
           }
          }
      }
      
      
      1 réponse Dernière réponse Répondre Citer 0
      • isador
        isador Moddeurs confirmés Modérateurs dernière édition par

        au pire tu modifie ton fichier audio, c’est chiant mais plus facile

        1 réponse Dernière réponse Répondre Citer 0
        • Deleted
          Deleted dernière édition par

          @‘isador34’:

          au pire tu modifie ton fichier audio, c’est chiant mais plus facile

          J’y ai réfléchi mais pour le decrescendo ça n’ira pas car quand il mourra si il est à 1:10 ma musique dure 3 min alors qu’avec du code j’aurai pu baisser le volume même si la musique était au début

          1 réponse Dernière réponse Répondre Citer 0
          • isador
            isador Moddeurs confirmés Modérateurs dernière édition par

            a oue….

            1 réponse Dernière réponse Répondre Citer 0
            • jglrxavpok
              jglrxavpok Modérateurs dernière édition par

              Tu lances la musique au volume max au début et puis tu ne changes pas le son après, ça risque pas de marcher.
              Cependant, je te conseille de regarder la classe SoundManager de MC et SoundSytem de paulsoce, ces deux classes permettent de changer le volume assez facilement

              Sent from my GT-I9000 using Tapatalk 2

              Modérateur sur MFF. 
              Mon Github: http://github.com/jglrxavpok
              Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

              1 réponse Dernière réponse Répondre Citer 0
              • Deleted
                Deleted dernière édition par

                Merci xav de ta réponse 🙂
                J’ai beaucoup regardé la class SoundManager car SOundSystem était beaucoup trop gros comme class et m’avait l’air moins abordable que l’autre 
                J’ai trouvé ce topic
                http://www.minecraftforge.net/forum/index.php?topic=18542.0
                Mais avant que j’y revienne, je vais vous dire, j’au essayé la méthode stopSound mais comme l’argument était un ISound et que moi j’ai besoin d’un string j’ai essayé la méthode stop (String string) de la class SoundSystem mais j’ai besoin d’un instance et dès que je la fait toute mon entity bug et ne peut plus spawn avec ce crash report (http://hpics.li/18a4ada) , donc j’ai essaye de faire l’instance autrement comme celle dans la class SoundManager mais j’ai plein de bug au niveau des mots clé private public enfin ça cause plein d’erreur sur ma tentative d’instance.
                J’espère t’avoir bien aidé si tu peux m’en dire + je dis pas non ^^
                Merci d’avance à vous tous

                1 réponse Dernière réponse Répondre Citer 0
                • 1 / 1
                • Premier message
                  Dernier message
                Design by Woryk
                Contact / Mentions Légales

                MINECRAFT FORGE FRANCE © 2018

                Powered by NodeBB