Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Очень просто. Вот пример как это сделано в ботании:проверку на двойной прыжок? как лучше?
private static boolean jumpDown;
@Override
public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected)
{
if(worldIn.isRemote)
{
if(entityIn instanceof EntityPlayerSP)
{
EntityPlayerSP playerSp = (EntityPlayerSP) entityIn;
if (playerSp.movementInput.jump) {
if (!jumpDown) {
// прыжок второй раз
playerSp.jump();
// отправка пакета о прыжке на сервер...
@SubscribeEvent
public void isKeyPressed(InputEvent.KeyInputEvent e)
{
if(Keyboard.isKeyDown(57)) // 57 - код клавиши Space (пробел)
{
// действие при нажатой клавише
}
}
Зачем использовать числа, если этот же класс Keyboard содержит константы с буквенными названиями клавиш?Для 1.7.10
Легких путей не ищете) В самом классе есть константы с кодами всех стандартных клавиш.Мне удобней так. Я беру числа отсюда
Keyboard.isKeyDown(Keyboard.KEY_SPACE);
Я не ищу легких путей, сказал же мне так нравиться :/Легких путей не ищете) В самом классе есть константы с кодами всех стандартных клавиш.
Я знаюВ самом классе есть константы с кодами всех стандартных клавиш.
Просто делаешь несколько проверок:а если надо сделать проверку на двойной прыжок? как лучше? (я про смоу проверку
if (Keyboard.isKeyDown(Keyboard.KEY_SPACE)) - если нажали Space (он же пробел)if (player.isJumping) - если игрок в прыжке (на данный момент, уже)if (player.isAirBorne) - если игрок в воздухеif (player.motionY < 0.05) - узнаем путь прыжка, к примеру 0.05 (тут могу ошибаться)if (!WasJumped) - до этого прыжка не былоWasJumped нужно где-то хранить. Но по сути, 5-й пункт не обязательно. Просто если его не учесть, то каждый прыжок после прыжка будет двойным прыжком InputEvent.KeyInputEvent? Но тогда как получить игрока, как узнать прыгает ли он? Очень просто. Вот пример как это сделано в ботании:проверку на двойной прыжок? как лучше?
private static boolean jumpDown;
@Override
public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected)
{
if(worldIn.isRemote)
{
if(entityIn instanceof EntityPlayerSP)
{
EntityPlayerSP playerSp = (EntityPlayerSP) entityIn;
if (playerSp.movementInput.jump) {
if (!jumpDown) {
// прыжок второй раз
playerSp.jump();
// отправка пакета о прыжке на сервер
/*sendToServer(new PacketJump());*/
}
jumpDown = true;
} else {
jumpDown = false;
}
}
}
}