Как создать блок, ускоряющий движение?

Нашел я блок песка душ. Там тот же код что предлагал AlexSocol, только именно при условии нахождения внутри блока. При сильном ускорении также возникают описанные ранее глюки. Но зря сильное ускорение мне и не к чему. Получил я в итоге блок, для строительства дорог, ускоряющий движение игрока где-то в 1,5 раза и в который малость проваливаешься))) Не совсем то чего хотел, но хотя бы так.  И на последок, хоть уже и не по теме, подскажите как создать полублок и ступеньку.
 

timaxa007

Модератор
5,831
409
672
Нижний полу-блок:
Код:
setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F)
Верхний полу-блок:
Код:
setBlockBounds(0.0F, 0.5F, 0.0F, 1.0F, 1.0F, 1.0F)
А так-же смотри пример из BlockSlab.
Пример ступенек: Двери, панели, ступени
 
У меня подобное чуть по другому сделано:

public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4)
    {
        float f = 0.100F;//125
        return AxisAlignedBB.getAABBPool().getAABB((double)par2, (double)par3, (double)par4, (double)(par2 + 1), (double)((float)(par3 + 1) - f), (double)(par4 + 1));
    }
   
    public void onEntityCollidedWithBlock(World par1World, int par2, int par3, int par4, Entity par5Entity)
    {
        par5Entity.motionX *= 1.7D;//скорость прохождения блока
        //par5Entity.motionZ *= 1.8D;
        //par5Entity.motionY *= 1.4D;//скорость прыжка в блоке
}
[merge_posts_bbcode]Добавлено: 31.01.2016 19:33:33[/merge_posts_bbcode]

Но эффект срабатывает если игрок по блоку идёт,если он стоит то он не будет набирать скорость.
 
Сверху