Как создать компьютерных оппонентов и научить их стрелять.
Приветствую. Многие при первом знакомстве с Game Makero’ом сразу же
загораются желанием создать какую-нибудь стрелялку или платформер. Но
ни то, ни другое не получится интересным без наличия разнообразных (или
не очень) и достаточно «умных» врагов. В этой статье я расскажу, как
добавить в игру таких врагов. Для примера возьмём рассмотренную в одной
из предыдущих статей танковую пострелушку. В нашей игре пока есть
только танк (зато умеющий «правильно» ездить) и пара скриптов. Создайте
спрайт для вражеского танка (предлагаю просто дублировать спрайт
игрока, и через Edit Sprite=>images=>colorize перекрасить его в
другой цвет). Присвойте спрайт объекту врага, и в событие Step вставьте
скрипт поворота.
Теперь создайте скрипт следующего содержания:
if instance_exists(player) {
if point_distance(x, y,player.x, player.y) < 150 {
move_towards_point(player.x-100, player.y-100,2);
if speed=0 {direction=player.direction-180 }
}
}
и также вставьте его в событие Step. Этот скрипт делает так, чтобы ваш
враг если вы к нему приблизитесь начал догонять вас, и если расстояние
между вами и противником стало равно 100 пикселам остановится. Если вы
запустите игру то увидите, что всё прекрасно работает, но это ещё не
готовая игра, ваши враги ещё не стреляют, а какая же это тогда
стрелялка. Но сначала нужно научить стрелять ваш танк. Создайте спрайт
пули и присвойте его соответствующему объекту. Сразу поставьте в
событие Colizion (столкновение), в выпадающем списке выбрав объект
противника, действие Destroy the instance. В открывшемя окне выберите
пункт Other. В событие Create поставьте кусок кода, в котором напишите:
direction=wrag.direction;
speed=5;
Теперь откройте объект танка игрока и в событии Keyboard=>Space
поставьте действие Create instance of object, в поле object выберите
объект пули. Закройте объект игрока, и откройте противника. Опять же в
действии Step вставьте действие if variable has a value, в поле
variable укажите speed, а в поле value поставьте 0. Третье поле
оставьте неизменным, по умолчанию там должно значится equal to. Это
действие проверяет значение переменной, значение указанное в поле
variable означает саму переменную, которая может быть глобальной или
объектной, а в поле value вводится значение этой переменной. На
закладке Control есть два действия: Start of a block и End of a block
поставьте их действия проверки переменной. Между ними вставьте действие
Set an Alarm clock (иконка с часиками) и установите его на 30 в Alarm
0. Теперь переходите в событие Alarm 0. Туда скопируйте действие
создания пули из объекта танка игрока, а ниже скопируйте действие
установки часов из события Step. Если вы ещё не поставили в комнате
объекты танков то сделайте это, и можете смело запускать игру.