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

    Résolu Ligne de particules

    1.12.x
    1.12
    2
    3
    315
    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.
    • Mysterious_Dev
      Mysterious_Dev dernière édition par

      Bonjour ou bonsoir.

      Je me posais une question en développant un système pour mon projet, est il possible de créer une ligne de particule (particules de flamme) car j’ai essayé beaucoup de chose et seul soucis c’est que ça ne marche pas,

      package mysteriousdevs.spellp.spells;
      
      import com.sun.jndi.toolkit.ctx.Continuation;
      import mysteriousdevs.spellp.References;
      import net.minecraft.entity.Entity;
      import net.minecraft.entity.EntityLiving;
      import net.minecraft.entity.player.EntityPlayer;
      import net.minecraft.util.EntityDamageSource;
      import net.minecraft.util.EnumParticleTypes;
      import net.minecraft.util.ResourceLocation;
      import net.minecraft.util.math.AxisAlignedBB;
      
      import java.awt.event.ActionEvent;
      import java.awt.event.ActionListener;
      import java.util.List;
      import java.util.Timer;
      import java.util.TimerTask;
      
      public class DivinSwordSpell extends GeneralSpell
      {
      
      	public static final DivinSwordSpell INSTANCE = new DivinSwordSpell();
      
      	public DivinSwordSpell()
      	{
      
      		super("spell.divin_sword.name", 20, 10, new ResourceLocation(References.MODID, "textures/gui/icons/divine_sword_spell_icon.png"));
      
      	}
      
      	@Override
      	public void launchSpell(EntityPlayer player)
      	{
      
      		List<Entity> EntityOne = player.world.getEntitiesWithinAABBExcludingEntity(player, new AxisAlignedBB(player.posX + 3, player.posY + 1, player.posZ, player.posX - 3, player.posY + 1, player.posZ));
      
      		List<Entity> EntityTwo = player.world.getEntitiesWithinAABBExcludingEntity(player, new AxisAlignedBB(player.posX, player.posY + 1, player.posZ + 3, player.posX, player.posY + 1, player.posZ - 3));
      
      		for ( int i = 0; i < EntityOne.size(); i++ )
      		{
      
      			if( EntityOne.get(i) instanceof EntityLiving )
      			{
      				EntityOne.get(i).attackEntityFrom(EntityDamageSource.MAGIC, 4);
      			}
      
      		}
      
      		for ( int i = 0; i < EntityTwo.size(); i++ )
      		{
      
      			if( EntityTwo.get(i) instanceof EntityLiving )
      			{
      				EntityTwo.get(i).attackEntityFrom(EntityDamageSource.MAGIC, 4);
      			}
      
      		}
      
      
      		spawnParticle(player);
      
      	}
      
      	public void spawnParticle(EntityPlayer player)
      	{
      		for ( int i = 0; i < 8; i++ )
      		{
      
      
      				player.world.spawnParticle(EnumParticleTypes.REDSTONE, player.posX - 0.05, player.posY + 1, player.posZ, 0.05, 0, 0, 1, 2);
      				player.world.spawnParticle(EnumParticleTypes.FLAME, player.posX, player.posY + 1, player.posZ + 0.05, 0, 0, 0.05, 1, 2);
      				player.world.spawnParticle(EnumParticleTypes.FLAME, player.posX + 0.05, player.posY + 1, player.posZ, -0.05, 0, 0, 1, 2);
      				player.world.spawnParticle(EnumParticleTypes.FLAME, player.posX, player.posY + 1, player.posZ + 0.05, 0, 0, -0.05, 1, 2);
      
      
      
      		}
      
      
      		//System.out.println("X: " + x);
      		//System.out.println("Y: " + y);
      		//System.out.println("Z: " + z);
      
      
      	}
      
      
      }
      
      

      j’ai voulu au début répéter un spawn de particules 8 fois avec une latence de 0.5 seconde(un équivalent de la coroutine en C# pour le Java), seul soucis c’est que j’ai l’impression qu’un équivalent de la coroutine en Java ça n’existe pas, est ce qu’il existe une autre façon d’arriver au résultat attendu ?

      Merci d’avance

      Mysterious Devs

      Adore taper sur les moddeurs 1.7.10.

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par

        Salut,

        Pour effectuer une action régulièrement il faut passer par des fonctions de tick.
        Dans les entités, il y a la foncton onUpdate qui permet cela.

        Mysterious_Dev 1 réponse Dernière réponse Répondre Citer 0
        • Mysterious_Dev
          Mysterious_Dev @robin4002 dernière édition par

          @robin4002 C’est bon j’ai trouvé un moyen en utilisant les timer, mais merci quand même de ta réponse 😉

          Adore taper sur les moddeurs 1.7.10.

          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