2013-03-29 6 views
0

Я только начал делать свою первую игру на Java, и я получил довольно далеко. Игра - это вариант знаменитого Панга, который я много играл в детстве. Я только начал кодировать прыгающие мячи в игре, и я застрял. Я не могу получить реалистичную гравитационную тягу, чтобы воздействовать на мяч.Не могу получить правильную гравитацию для работы

* Board.java

* Ball.java

Я создал тестовый проект, так что я не испортить настоящую игру. Там также есть Frame.java, но поскольку работа заключается только в создании фрейма, я думал, что не буду включать его. Проблема заключается в том, что один пиксель на 5 мс (dx/dy = 1) должен быть быстрым, потому что мяч должен достигнуть почти полной остановки, когда он находится на самой высокой точке.

Поэтому я решил пойти с поплавками, так как он поддерживает десятичные знаки. Это оказалось также болью в заднице, так как g2d.drawImage(); требует img,int,int,observer. Я полностью понимаю это, потому что перемещение 0,5 пикселей было бы невозможно.

Как я могу переписать код, чтобы я мог получить прорыв гравитационного тяги на мяче? Должен ли я переписать крошечный движок или есть другие более простые способы сделать это?

Код дает ошибки на текущий момент, из-за ситуации int/float.

+0

Единственное предложение, которое я имею разработать двойную систему координат, что это реалистичный размер. Скажите игровое поле 50 метров в высоту и 25 метров в высоту. Вы можете рассчитать гравитацию, используя более реалистичные числа. Наконец, вы преобразуете свою двойную систему координат в систему координат чертежа, чтобы поместить изображения на экран. –

ответ

0

Как насчет литья (усечение дробной части) или округления поплавка до int?

Жаль, что я даю ответ, я не могу комментировать

+0

спасибо, что ответили на мой вопрос. Проблема в том, что 1px/5ms для быстрой работы, а 0px/5ms - для замедления. Мне нужно что-то между ними, но g2d.drawimage требует целых чисел, а не удваивает/плавает. Округление 0,67 до ближайшего целого числа заставило бы меня снова застревать с той же проблемой. – user2208493

Смежные вопросы