Первое что нам надо это 4 спрайта : Главный герой,Враг,Мужик городской житель и Спрайт кличка мыши,например крестик или кружок.
Дальше создаем объект o_hero это будет сам герой.
У него в Create пишем:
Code
health=100 //Кол-во Здоровья
global.mana=100 //Кол-во маны
alarm[1]=5 //Это востонавление маны,чуть попозже напишим код
Дальше создаем объект o_seting здесь будут все данные игрока.В Create пишем:
Code
global.level=1//Уровень игрока
global.xp=0//Опыт игрока
global.gold=0//Деньги игрока
global.maxmana=100//Максимум маны
global.maxhp=100//Максимум здоровья
global.gold_min=0//Ограничитель денег,что-бы они в минус не уходили
global.maxxp=100//Максимальный опыт
Сохраняем код.Теперь ставим галочку у Постоянный.Все основные данные готовы,идем дальше.
Опять возвращаемся к o_hero.
У него в Alarm 1 пишим код:
Code
if global.mana<global.maxmana global.mana+=1//Востоновление маны приблизительно каждые 0.25 Секунды
Дальше делаем событие Глобальной Левой кнопки мыши и в нем пишим:
Code
with (way) instance_destroy()//Way это сам путь мышью,для этого создадите объект way
instance_create(mouse_x,mouse_y,way)
move_towards_point(mouse_x,mouse_y,5)//Все это указывает путь Героя
Дальше в Step игрока пишем:
Code
//Движение\\
if distance_to_object(way)<5 {speed=0 with(way)instance_destroy()}//Движение за мышью
image_angle=direction//Без коментариев,если вы новичок то это поворот в определеную сторону
//Характиристики\\
if health<=0 {show_message('Игра окончена')game_restart()}//Рестарт после смерти
if health>global.maxhp health=global.maxhp//Ограничитель для ХП,теперь если у вас 100 ХП и вы подойдете к Эликсиру то ХП дальше 100 не пойдет
if global.mana>global.maxmana global.mana=global.maxmana//Ограничитель для Маны,теперь если у вас 100 Маны и вы подойдете к Эликсиру то Мана дальше 100 не пойдет
if global.xp>=global.maxxp {global.level+=1 global.xp=0 show_message('Вы достигли - '+string(global.level)+' уровня!')global.mana+=150 health+=150
global.maxmana+=30 global.maxhp+=50 global.maxxp+=30}//Повышение уровня и всех характеристик(Макс.Опыта,Здоровья,Маны и уровня)
if (global.gold < global.gold_min) global.gold=global.gold_min//Теперь ваши деньги не уйдут в минус
if global.xp<global.maxxp global.maxxp=global.maxmana//Значение Максимального Опыта
Ну какая РПГ будет если в ней игрок не обладает магическими способностями?Щас иправим!
Нарисуем Магичиский Шар или что нибудь другое.
Создаем объект o_magball это сам шар и в Create пишим:
Code
move_towards_point(mouse_x,mouse_y,10)\\Дает действие стрельбы в указаную точку
В Step пишем:
Code
image_angle=direction
Идем к o_hero у него создаем Глобальную Правую кнопку мыши и пишим код
if global.mana>=20 {global.mana-=20 instance_create(x,y,o_magball)}//Сам шар
Теперь раставляем все в комнате и смотрим что получилось.
Осталось только создать hud прошлого века =) ,врага и NPC
Создаем объект o_hud , создаем событие Draw и пишим в нем:
Code
draw_healthbar(view_xview[0],view_yview[0],view_xview[0]+100,view_yview[0]+20,health,c_gray,c_red,c_red,0,1,1)
draw_text(view_xview[0]+30,view_yview[0]+0,health)
draw_healthbar(view_xview[0],view_yview[0]+23,view_xview[0]+100,view_yview[0]+43,global.mana,c_gray,c_blue,c_blue,0,1,1)
depth=-1000
draw_text(view_xview[0]+30,view_yview[0]+25,global.mana)
draw_healthbar(view_xview[0],view_yview[0]+47,view_xview[0]+100,view_yview[0]+67,global.xp,c_gray,c_orange,c_orange,0,1,1)
depth=-1000
draw_text(view_xview[0]+10,view_yview[0]+48,global.xp)
draw_text(view_xview[0]+30,view_yview[0]+48,'/')
draw_text(view_xview[0]+40,view_yview[0]+48,global.maxxp)//Это все характеристики
Создаем объект o_vrag это сам враг.В Create пишим:
Code
heal=100
alarm[0]=1
speed=2
Создаем Alarm 0 и пишем:
Code
direction=random(360)
alarm[0]=random(150)//Направление врага
Создаем Step и пишим:
Code
if heal<=0 {global.xp+=10 instance_destroy() global.gold+=1}//Дает бабосы и опыт за его убийство
image_angle=direction
if distance_to_object(o_hero)<450
speed=3
direction=point_direction(x,y,o_hero.x,o_hero.y)
image_angle=direction//Следуем за o_hero
Делаем столкновение с o_magball и пишим код:
Делаем действие Instance_destroy,и применяем к объекту o_magball.
Делаем событие Левая кнопка нажата и пишим код:
Code
o_hero.image_speed=1
if distance_to_object(o_hero)<5{
heal-=15}//Атакуем в ближнем бою.
Делаем событие Левая кнопка отпущена и пишим код:
Code
o_hero.image_speed=0
Все,с ботом ботово,запускаем игру и бот гоняется за нами!
Осталось сделать NPC.
Делаем объект o_npc и в Create пишем:
Для реалистичности можно написать в Alarm:
Code
direction=random(360)
alarm[0]=random(150)
А также в Step:
Code
image_angle=direction
if distance_to_object(o_hero)<600
speed=3//Теперь NPC спокойно передвигаеться по карте
Что-бы NPC не убегал из комнаты делаем событие Пересечение границ комнаты и пишим код:
Code
direction=random(360)
alarm[0]=random(150)
Система NPC Готова
Осталось только сделать столкновение с o_hero и написать код:
Code
health-=1//Отнимание ХП у игрока
Ну вот и все 1 часть закончена,с вами был MyACT.