Мячик-попрыгун

Если мотион достаточно низкий - останавливать.
[merge_posts_bbcode]Добавлено: 29.05.2016 09:59:02[/merge_posts_bbcode]

А, не, ты про этот баг... Я его как-то решал, в opUpdate если он isGround переставал вызывать super.onUpdate кажись.
 
svk2140 написал(а):
Если мотион достаточно низкий - останавливать.
[merge_posts_bbcode]Добавлено: 29.05.2016 09:59:02[/merge_posts_bbcode]

А, не, ты про этот баг... Я его как-то решал, в opUpdate если он isGround переставал вызывать super.onUpdate кажись.
Ему надо чтоб отскакивало, а не чтоб он замер при первом же касании с блоком =_=

Попробуй делить на большее число. Это происходит, потому что в onUpdate motionY при каждом тике уменьшается на 0.03, и он как-бы разгоняется. (<-- Не уверен(Так как с ентити знаком смутно)).
 
fewizz написал(а):
svk2140 написал(а):
Если мотион достаточно низкий - останавливать.
[merge_posts_bbcode]Добавлено: 29.05.2016 09:59:02[/merge_posts_bbcode]

А, не, ты про этот баг... Я его как-то решал, в opUpdate если он isGround переставал вызывать super.onUpdate кажись.
Ему надо чтоб отскакивало, а не чтоб он замер при первом же касании с блоком =_=

Попробуй делить на большее число. Это происходит, потому что в onUpdate motionY при каждом тике уменьшается на 0.03, и он как-бы разгоняется. (<-- Не уверен(Так как с ентити знаком смутно)).
Но осталась небольшая загвоздка - он замедляется, но не останавливается и скачет на высоту одного-двух блоков. Как можно его полностью "положить" на землю? 
grin.png
 
Если делить постоянно на 1.25, то оно никогда не будет равно 0. Оно будет бесконечно малым. Логично?
Затем, motionY = -motionY/1.25D
А если motionY уже отрицательный? Ты тогда его делаешь положительным.(минус на минус). Что же делать, чтобы работало? Просто вычитай какую-нибудь величину.
 
wilah написал(а):
Если делить постоянно на 1.25, то оно никогда не будет равно 0. Оно будет бесконечно малым. Логично?
Затем, motionY = -motionY/1.25D
А если motionY уже отрицательный? Ты тогда его делаешь положительным.(минус на минус). Что же делать, чтобы работало? Просто вычитай какую-нибудь величину.
А он по идее и должен быть отрицательным вообщет =_= (ведь мяч падает, мошнY отрицательный. Ударился, перевертываем мошнY(делаем его положительным чтоб мячик поднимался) и делим на 1.25(ведь часть энергии теряет))
 
motionY = 12
**(tick)
motionY=-12 / 1.25
**
motionY= -(-12 / 1.25) / 1.25

И того, оно будет вечным
 
wilah написал(а):
motionY = 12
**(tick)
motionY=-12 / 1.25
**
motionY= -(-12 / 1.25) / 1.25

И того, оно будет вечным
update() {
x += motionY
motion -= 0.03 // Гравити (В EntityThrowable так прописано, это не я придумал(если что))
}

/** При касании, напр. motionY = -12,5 **/
motionY = -(-12,5) / 1,25 = 12,5 / 1,25 = 10 // ОН ЭТО ДЕЛАЕТ НЕ КАЖДЫЙ ТИК
/** Падал, отскочил, начал подниматься, потеряв часть энергии **/

Либо я тупой, либо ты неправ(мне кажется первое :lol:  ).
 
Не знаю, щас скину код своей гранаты.
[merge_posts_bbcode]Добавлено: 30.05.2016 09:20:53[/merge_posts_bbcode]

http://pastebin.com/2Gkfv2sj
Немного раковый + нету проверки на столкновение с тем, кто бросал.
 
Назад
Сверху