Проблема с круговым спавном партиклей [1.6.4]

Статус
В этой теме нельзя размещать новые ответы.
7
0
Здравствуйте, уважаемые форумчане !
(Первая тема, так что не обессудьте).
В общем мне надо, чтобы партикли спавнились по кругу, а там уж я разберусь.
Читал здесь на форуме, гуглил, но как не писал бы - всё равно работает как не надо.
В общем, код взял из темы по ссылке выше (сам спавн партиклей):

Код:
public void randomDisplayTick(World par1World, int par2, int par3, int par4, Random par5Random) {
        int radius = 2;
    int x = par2;
        int y = par4;
    for (float l = 0; l < 2*Math.PI; l += Math.PI/6){
          x = (int)(x + radius*Math.cos(l));
          y = (int)(y + radius*Math.sin(l));
          Minecraft.getMinecraft().effectRenderer.addEffect(new EntityPoisonFX(par1World, x, par3, y));
    }      
}

Кстати, скриншоты того безобразия, что я натворил, во вложении.

Объясните дилетанту, в чём ошибка :rolleyes:
 
Код:
@Override
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
    double radius = 2.0;
    for (float l = 0; l < 2*Math.PI; l += Math.PI/6){
          double px = x + radius*Math.cos(l);
          double py = y + radius*Math.sin(l);
          Minecraft.getMinecraft().effectRenderer.addEffect(new EntityPoisonFX(world, px, py, z));
    }      
}
Как-то так нужно.
У тебя в цикле к x и y приплюсовываются некоторые значения, когда... учи школьную математику.
А потом ты кастуешь double к int, что тоже неправильно.
Прочти хотя бы https://ru.wikibooks.org/wiki/Java/%D0%A2%D0%B8%D0%BF%D1%8B_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85
 
Спасибо, Asd73, я понял свою ошибку.
Ты там чуть чуть с переменными напутал (просто мне надо было спавнить партиклы по x и z только), я подправил и теперь всё пашет как надо.
Вот код:

Код:
public void randomDisplayTick(World world, int x, int y, int z, Random rand) {
       double radius = 1.0;

       for (float l = 0; l < 2*Math.PI; l += Math.PI/6){
             double px = x + radius*Math.cos(l);
             double py = z + radius*Math.sin(l);
             Minecraft.getMinecraft().effectRenderer.addEffect(new EntityPoisonFX(world, px+0.5D, y+1.0D, py+0.5D));
       }        
    }

Фоточку получившейся конструкции я прикрепил.


Тему можно закрывать.​
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху