Количество партиклов

54
1
0
Как изменить количество партиклов? Я искал , но этого нигде нету:(
 
54
1
0
Код:
public class bobl extends EntityFX
{

    private static final ResourceLocation texture = new ResourceLocation("mercury:textures/particle/bubble.png");
      private static float alpha;
      private static boolean faze;
    
    public voronka(World par1World, double x, double y, double z) {
        super(par1World, x, y, z, 0.0D, 0.0D, 0.0D);
        setGravity(-1);
        setMaxAge(10);
        
    }
    
    public void renderParticle(Tessellator tess, float ticks, float par3, float par4, float par5, float par6, float par7){
        Minecraft.getMinecraft().renderEngine.bindTexture(texture);
         
        glDepthMask(false);
        glEnable(GL_BLEND);
        glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
        glAlphaFunc(GL_GREATER, 0.003921569F);
        tess.startDrawingQuads();
        tess.setBrightness(getBrightnessForRender(ticks));
        float scale = 0.5F * particleScale;
           float x = (float)(prevPosX + (posX - prevPosX) * ticks - interpPosX);
            float y = (float)(prevPosY + (posY - prevPosY) * ticks - interpPosY);
            float z = (float)(prevPosZ + (posZ - prevPosZ) * ticks - interpPosZ);
        tess.addVertexWithUV(x - par3 * scale - par6 * scale, y - par4 * scale, z - par5 * scale - par7 * scale, 0, 0);
        tess.addVertexWithUV(x - par3 * scale + par6 * scale, y + par4 * scale, z - par5 * scale + par7 * scale, 1, 0);
        tess.addVertexWithUV(x + par3 * scale + par6 * scale, y + par4 * scale, z + par5 * scale + par7 * scale, 1, 1);
        tess.addVertexWithUV(x + par3 * scale - par6 * scale, y - par4 * scale, z + par5 * scale - par7 * scale, 0, 1);
        tess.draw();
        glDisable(GL_BLEND);
        glDepthMask(true);
        glAlphaFunc(GL_GREATER, 0.1F);
         
    }
    
       public void onUpdate()
        {
           
             this.prevPosX = this.posX;
             this.prevPosY = this.posY;
             this.prevPosZ = this.posZ;

             if (this.particleAge++ >= this.particleMaxAge)
             {
                 this.setDead();
             }

             this.motionY -= 0.0D * (double)this.particleGravity;
             this.moveEntity(this.motionX, this.motionY, this.motionZ);
             this.motionX *= 0.0D;
             this.motionY *= 0.0D;
             this.motionZ *= 0.0D;

             if (this.onGround)
             {
                 this.motionX *= 0.0D;
                 this.motionZ *= 0.0D;
             }
            
            if(faze) {
                if(alpha < 1.0F) {
                   alpha += 0.025F;
                } else {
                   faze = false;
                   alpha = 1.0F;
                }
             } else if(alpha > 0.0F) {
                alpha -= 0.05F;
             } else {
                faze = true;
                alpha = 0.0F;
             }
             glColor4f(1.0F, 1.0F, 1.0F, alpha);
           }
        

    
    public int getFXLayer(){
        return 3;
    }
    
    public voronka setMaxAge(int maxAge){
        particleMaxAge = maxAge;
        return this;
    }
    
    public voronka setScale(float scale){
        particleScale = scale;
        return this;
    }
    
    public voronka setGravity(float gravity){
        particleGravity = gravity;
        return this;
    }
    

    
    
}
Здесь у меня спавнится 3-4 партикла в секунду.. я хочу что бы один партикл спавнился напирмер каждые десять секунд, но здесь ничего такого нет.Как это сделать?
 
608
5
15
Что?
 
1,976
68
220
обожемойтыхотьсампонялчтосказал?
Код:
randomDispalyTick(bla-bla-bla) {
    if (random.nextInt(100) == 0) world.spawnParticle-bla-bla-bla;
}
 
54
1
0
svk2140 написал(а):
Изменить кол-во партиклов которые спавнятся
[merge_posts_bbcode]Добавлено: 23.06.2016 19:43:39[/merge_posts_bbcode]

AlexSocol написал(а):
обожемойтыхотьсампонялчтосказал?
Код:
randomDispalyTick(bla-bla-bla) {
    if (random.nextInt(100) == 0) world.spawnParticle-bla-bla-bla;
}
А зачем мне спавнить их рандомно?

[merge_posts_bbcode]Добавлено: 23.06.2016 19:45:44[/merge_posts_bbcode]

Код:
   float f7 = (float)par2 + 0.5F;
            float f2 = (float)par3 + 0.1F;
            float f3 = (float)par4 + 0.5F;
          
            
      
            

            Minecraft.getMinecraft().effectRenderer.addEffect(new bobl(par1World, (double)(f7), (double)f2, (double)(f3)));
Так я сделал в методе randomDisplayTick.
 
608
5
15
Ты про кусочки текстуры? Со временем они типо исчезают, и тебе надо, что-бы они спавнились уже полуисчезнувшими?
 
1,976
68
220
mercury написал(а):
> А зачем мне спавнить их рандомно?
> randomDisplayTick
Совсем глупый?

mercury написал(а):
Как изменить кол-во партиклов которые спавнятся?
Берёшь и меняешь. Я тебе написал как.

mercury написал(а):
Код:
float f7 = (float)par2 + 0.5F;
(double)(f7)
Про это вообще молчу. Сначала дабл конвертируешь во флоат, а потом флоат снова в дабл. Зачем?

svk2140 написал(а):
Ты про кусочки текстуры? Со временем они типо исчезают, и тебе надо, что-бы они спавнились уже полуисчезнувшими?
Что? Какие кусочки? Как исчезнувшие? Ты о чём? :silly:
 
54
1
0
AlexSocol написал(а):
mercury написал(а):
> А зачем мне спавнить их рандомно?
> randomDisplayTick
Совсем глупый?

mercury написал(а):
Как изменить кол-во партиклов которые спавнятся?
Берёшь и меняешь. Я тебе написал как.

mercury написал(а):
Код:
float f7 = (float)par2 + 0.5F;
(double)(f7)
Про это вообще молчу. Сначала дабл конвертируешь во флоат, а потом флоат снова в дабл. Зачем?

svk2140 написал(а):
Ты про кусочки текстуры? Со временем они типо исчезают, и тебе надо, что-бы они спавнились уже полуисчезнувшими?
Что? Какие кусочки? Как исчезнувшие? Ты о чём? :silly:
Лол, это ты глупый:D Я написал что мне каждые десять секунд нужно спавнить "кусочек текстуры" а не РАНДОМНО в 100 ТИКОВ. Про дабл и флоат не заметил
[merge_posts_bbcode]Добавлено: 23.06.2016 22:16:54[/merge_posts_bbcode]

svk2140 написал(а):
Ты про кусочки текстуры? Со временем они типо исчезают, и тебе надо, что-бы они спавнились уже полуисчезнувшими?
Именно.Но с временем жизни партиклей maxAge я разобрался.

[merge_posts_bbcode]Добавлено: 23.06.2016 22:19:01[/merge_posts_bbcode]

Алекс, количество партиклов изменяется , но еще раз повторю что мне не нужно через рандомное кол-во тиков их спавнить, а только через 200( к примеру ) тиков. Как я понял randomDisplayTick это и есть цикл на каждый тик??

[merge_posts_bbcode]Добавлено: 23.06.2016 22:20:55[/merge_posts_bbcode]

Я не врублюсь как это работает. На каждый тик выходит один партикл, так?
 
608
5
15
Алекс, количество партиклов изменяется , но еще раз повторю что мне не нужно через рандомное кол-во тиков их спавнить, а только через 200( к примеру ) тиков. Как я понял randomDisplayTick это и есть цикл на каждый тик??

Конечно, прям по названию - randomDisplayTick, видно что он вызывается каждый тик.
 
1,976
68
220
mercury написал(а):
каждые десять секунд нужно спавнить "кусочек текстуры" а не РАНДОМНО в 100 ТИКОВ.
Сначала разберись, что за код тебе дают и что ты используешь сам, а потом отвергай помощь. Самый умный? Тогда зачем сюда пришёл?
Если нужно чётко каждые 10 сек - спаунь партиклы в тайлэнтити по таймеру (там же).
[merge_posts_bbcode]Добавлено: 23.06.2016 23:04:49[/merge_posts_bbcode]

Каждый тик - onUpdate или updateBlock
 
54
1
0
AlexSocol написал(а):
mercury написал(а):
каждые десять секунд нужно спавнить "кусочек текстуры" а не РАНДОМНО в 100 ТИКОВ.
Сначала разберись, что за код тебе дают и что ты используешь сам, а потом отвергай помощь. Самый умный? Тогда зачем сюда пришёл?
Если нужно чётко каждые 10 сек - спаунь партиклы в тайлэнтити по таймеру (там же).
[merge_posts_bbcode]Добавлено: 23.06.2016 23:04:49[/merge_posts_bbcode]


Каждый тик - onUpdate или updateBlock
Ладно,  спасибо за помощь.  Ну просто я же написал что через определенное время.
 
Сверху