Прiжок

sk9zist :l

Исправился
981
18
158
Как вызвать частицы падения с сверх высокой точки без самого падения?:
2019-11-16_19.14.47.png
Вот, то, что под ногами у игрока при приземлении.
 
Ап темы раз в сутки
ап
 
А что именно вам непонятно?
  • Как спавнить частицы? world.spawnParticles(args).
  • Как получить высоту позиции игрока? player.posY
  • Не знаешь куда всё это засунуть? В LivingUpdateEvent.
 
Мне непонятно:
А нельзя разве вызвать какой-нибудь метод, отвечающий за проигрывание частиц падения? Когда падаешь, оно расчитывает высоту с которой упал и генерирует соответствующее множество частиц.
Как спавнить частицы? world.spawnParticles(args).
И как мне их заспавнить разлетающихся в стороны, как от падения?
 
А заглянуть в код не судьба?
Да и насколько я помню, такого метода нет, там только расчёты, которые вы можете скопировать.
 
Класс EntityLivingBase строка 243, метод updateFallState().
Вообще в любой среде разработки есть поиск в коде. Логично что обработка падения будет в классе ентити, а дальше ctrl+F и вперёд.
 
Java:
float f = (float)MathHelper.ceil(10.0F - 3.0F);
        
double d0 = Math.min((double)(0.2F + f / 15.0F), 2.5D);
int i = (int)(150.0D * d0);
worldIn.spawnParticle(EnumParticleTypes.BLOCK_DUST, playerIn.posX, playerIn.posY, playerIn.posZ, i, 0.0D, 0.0D, 0.0D, 0.15000000596046448D, Block.getStateId(state));
попытался скопирайтить. Непонимаю что указывать вместо Block.getStateId? Пробовал Blocks.GRASS.getActualState() но это точно неправильно
 
Block.getStateId(Blocks.GRASS.getActualState())
getActualState нужны аргументы BlockState, так как я не могу получить BlockState в моей ситуации, я попробовал getDefaultState или просто getBlockState, ошибка в Block.getStateId
screenshot.12294.jpg
 
блокстейт у игрока под ногами
Java:
IBlockState state = ((IBlockState) worldIn.getBlockState(new BlockPos(playerIn.posX, playerIn.posY-1, playerIn.posZ)));
float f = (float)MathHelper.ceil(10.0F - 3.0F);

double d0 = Math.min((double)(0.2F + f / 15.0F), 2.5D);
int i = (int)(150.0D * d0);
worldIn.spawnParticle(EnumParticleTypes.BLOCK_DUST, playerIn.posX, playerIn.posY, playerIn.posZ, i, 0.0D, 0.0D, 0.0D, 0.15000000596046448D, Block.getStateId(state));
подчёркивает spawnParticle как ошибку
всё это делаю в onItemRightClick
 
Посмотри какой тип принимает метод и что ты туда пытаешься запихнуть. А еще, если навести на ошибку, то там пишет, в чем проблема
 
если навести на ошибку, то там пишет, в чем проблема
проблема в том, что у spawnParticle должен быть аргумент в конце int..parameters а у меня он просто int, я уже смотрел ошибку, но чаще всего я их непонимаю
 
В int..parameters можно передать и один int, так что все нормально
 
Если уж совсем бессилен, то прочитай основы джавы, очень поможет
 
Всем снова добрыц день! В этой теме еще кто остался? Не посчитайте меня наглым, но я скажу:
Когда я запустил, у меня появлялась только одна частица, но около нее спавнилост вроде еще много частиц, но дело в том, что они все в одном месте, а надо чтобы они разлетались в стороны , создавая эффект падения игрока. Я понял, что блокстейт это чтото типо значение, из него можно взять с какой высоты упал игрок и сделать соответствующее множество частиц, или это регулирует какойто другой параметр... вообщем смысл в том, что у меня это значение равно почти нулю так как я не падаю
 
Посмотри параметры spawnParticle
чувствую себя капитаном очевидность
 
Назад
Сверху