Создать запись
3180
0 Оставить Мнение 21 Апреля 2013
Лава и прыжки (Double Tap или Двойной клик)

Теперь поиграем. Геймплей кстати стал гораздо интереснее.



Сделать это оказалось не так и сложно, написан новый namespace с названием - trap, что в переводе означает ловушка, в нем были созданы отображения LeftTrap, RightTrap, BackTrap, FrontTrap и FloorTrap, для рисования каждой из сторон ловушки: потолка, правой стены, левой стены, передней стены, задней стены и пола или лавы, а рисовать мы их собираемся по определенному алгоритму: так же как и стены - у собратов стен, ловушек (объектов которые соприкасаются с друг другом) мы не рисуем соприкасающиеся грани, поэтому мы достигаем эффекта, что лава есть настраиваемый объект относительно координат на которых она находится и рисуется она тоже относительно друг относительно друга. С лавой мы закончили, а теперь прыжок! Как сделать прыжок в игре? Ответ прост и напрашиваться сам: делаем его на DoubleTap - т. е. на двойной клик. Для этого гуглим как делается двойной клик на java android. Делается он вот так:

/* Double Tap / Двойной клик */

/* считаем количество кликов на промежуток времени */
private int clickCount = 0;
/* засекаем время с начала первого клика */
private long startTime;
/* высчитываем общее время */
private long duration;
/* время константа за которое должен быть осуществлен двойной клик */
private final static int MAX_DURATION = 500;

/* Обработчик в котором искусственно будет отслеживаться двойной клик есть OnTouchEvent */
@Override
public boolean onTouchEvent(MotionEvent event) {
long time = System.currentTimeMillis() - startTime;
duration= duration + time;
if(clickCount == 2)
{
if(duration <= MAX_DURATION)
{
// Опа, а здесь у нас событие двойного клика!
}
clickCount = 0;
duration = 0;
}
}


А теперь эмулируем прыжок:

Берем sin (синус), выставляем его в 180 градусов, и при двойном клике увеличиваем его угол и (ВНИМАНИЕ) прибавляем его к Y координате нашего героя, так будет сэмулировано, что главный герой, из низкого положения проходит дугу по траектории, или якобы прыгает.

Логика - далее:

На момент прыжка мы не учитываем координаты лавы при перемещении, в момент когда дуга завершилась, мы их начинаем учитывать, т. е. если главный герой попал в лаву - рестарт уровня.