пятница, 8 февраля 2013 г.

2l4u.ru Столкновения игровых объектов

При создании любой игры, рано или поздно встаёт вопрос взаимодействия игровых объектов друг с другом.
Давайте рассмотрим на простом примере построения столкновения шарика и стены с помощью 2l4u.ru

1. Входим в систему.
2. Создаём новый проект.





2.Теперь загружаем объекты картинки на сцену. Я выбрал вот эти:

Шарик я оставил без названия и он на автомате стал именоваться object_1, а стенку переименовал в wall1 при загрузке.

3. Теперь нажимаем на шестеренку, вызываем окно редактирования поведения
4. Откроется окно редактора свойств объекта (поведения в том числе)
5. Нажмём "Добавить событие в объект"

 6. Выбирем в списке событие "Create" (Событие активно во сремя запуска и это то, что нам нужно, для нашей задачи) ... 

 Откроется список действий. Выбираем blank script - чистый сценарий
Когда blank script добавлен, мы можем его редактировать


 Откроется долгожданное окно редактора сценарий blank script

В это окно (в "editor window") нужно добавить: 

// переменная, нам нужна чтобы определить двигается объект или нет
var object_1_go=0;
// здесь меняем курсор пи наведении на шарик
$("#object_1").css("cursor","pointer");
// присваиваем событие нажатия на шарик
$("#object_1").click(function(){    
// переменная понадобиться для движения, 0 - означает верх
// также , чтобы симулировать отскок, когда объект столкнётся
var y=0;
// начинаем двигать объект по оси y - top, время пути 500 миллисекунд
$("#object_1").animate({"top":y},  
{duration:500,step:function(){  
// показываем, что объект движется
object_1_go=1;
 // проверяем нет ли коллизии с объектом стена - wall1, 
// а также, что переменная object_1_go - равна 1, т.е. объект движется
if (check_col_2("#object_1","#wall1",0,0) && object_1_go==1){
// если условие выполняется прекращаем анимацию
$("#object_1").stop();
// меняем значение переменной на начальное инициализируем
object_1_go=0;
// c помощью встроенной функции фиксируем положение объекта
// добавляем отскок в 200 пикселей
var y=get_obj_y("#object_1")+200;
// для разнообразия изменяем координату х
// прибавляем к ней число выбранное случайным порядком от 0 до 100
var x=get_obj_x("#object_1")+getRandomInt(0,100);;
// отскок объекта от стены
$("#object_1").animate({top:y, left: x},500,function(){});
}
  
},  
complete:function(){  
object_1_go=0;
}});  
});

7. Нажимаем сохранить, жмём пуск, наслаждаемся

Пример доступен по адресу http://2l4u.ru/program_457.php Кстати, открыт для копирования. (Справа в списке проектов) Называется "kickback"





Комментариев нет:

Отправить комментарий