Проверяешь по иксу: если икс игрока больше, чем икс врага, то враг поворачивается вправо, если меньше - влево; в зависимости от направления он в определенные промежутки времени выпускает пулю, летящую вправо/влево, если дистанция до игрока меньше определенной. Если справку читал, то по алгоритму все сделать можно без проблем. Велосипед никто не купил. Зол. Скоро начну рвать и метать.
Проверяешь по иксу: если икс игрока больше, чем икс врага, то враг поворачивается вправо, если меньше - влево; в зависимости от направления он в определенные промежутки времени выпускает пулю, летящую вправо/влево, если дистанция до игрока меньше определенной. Если справку читал, то по алгоритму все сделать можно без проблем.
Ну я реально в шоке. Ты случайно вкусной едой не отравился? Анбаннэд. Хэлоу эгин =)
Сообщение отредактировал Saladin - Вторник, 21 Августа 2012, 23:28
Сделай так. (Попробуй) Глобальная левая кнопка мыши нажата: GLobal Left Pressed: С боку в разделе main1 на самом верху есть. Create Moving: object: объект пули x: x y: y speed: как тебе угодно direction: любое значение или direction
Вопрос очень сложной, я даже не очень его понял. Но если ты хочешь чтобы враг как только видел тебя стрелял в тебя где бы ты не был слева,справа,сверху,снизу и т.д
В главного персонажа на создания кидаешь скрипт
Code
enemy_attack = 0;
в step главного персонажа кидаешь
Code
if (distance_to_object(my_hero) < 300 && enemy_attack == 0 ) with my_enemy { if (x < my_hero.x) {image_angle = 90} if (x > my_hero.x) {image_angle = 180} // или используй оператор else, только настрой image_angle или используй смену спрайта enemy_attack = 1; timer[0] = room.speed; //Стреляет 1 раз в секунду(какую бы скорость комнаты не указал instance_create(enemy_bullet) //Создает пулю with enemy_bullet {move_towards_point(my_hero.x,my_hero.y,3)} //Направляет пулю на персонажа //with enemy_bulled {if (x < 0 !! x > 355 !! y < 0 !! y > 355) {instance_destroy()}}// пока-что в разработке, уверен на 90% код не работает! }
timer[0] - у врага создаешь и внутри кидаешь код
Code
with enemy_bullet {instance_destroy()} enemy_attack = 0;
код на работоспособность я не проверял, писал прямо на форуме, еще нужно дописать коешто (если к игроку нет препятствий и т.д Помог поставь + Проект DeadWorldZ пока заморожен иными словами разрабатывается скрытно Skype: Skmaestro867
Сообщение отредактировал Skmaestro - Среда, 22 Августа 2012, 12:15
Врага надо заставить стрелять когда он видит игрока. Стрельба должна быть влево в право... Как это понять? Можно же по разному, чтобы каждую мсек он поворачивался влево,вправо и стрелял или так как я написал) Помог поставь + Проект DeadWorldZ пока заморожен иными словами разрабатывается скрытно Skype: Skmaestro867
В Step'e врага. if distance_to_object(player)<100500 {if x<player.x sprite_index=sprite1 //поворачиваем спрайт врага в нужную сторону instance_create(x + lengthdir_x(77,direction+8),y + lengthdir_y(77,direction+8),pul) //можешь также сделать англами или скалями, это см. выше else sprite_index=sprite2 //поворачиваем в другую сторону instance_create(x + lengthdir_x(77,direction-8),y + lengthdir_y(77,direction-8),pul)
Create in "pul": move_towards_point(player.x,player.y,30) Step in "pul": image_angle=direction
Следует учесть, здесь просто выстрел без проверок есть ли препятствие. Здесь также нет прокрутки анимации и прочее. Это можно дописать 2 строками. Думаю тут есть люди которые не нуждаюся и в написании этого
Shevron_7, Только опытному этот варинат подходит т.к. для них это механическая работа, а вот для новичков умственная. Так, что пускай голову поломают, а не спрашивают готовое решение.