Воскресенье, 05 Мая 2024, 09:08

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » Daedros [19]
Результаты поиска
DaedrosДата: Понедельник, 01 Августа 2016, 16:06 | Сообщение # 1 | Тема: Машина состояний для ИИ
был не раз
Сейчас нет на сайте
Huricane, Спасибо, да, там явно косячное место было, я в разных примерах смотрел реализацию и что-то слепить пытался. Разобрался, сделал по-другому, без доп. состояния атаки.
DaedrosДата: Пятница, 29 Июля 2016, 00:33 | Сообщение # 2 | Тема: Машина состояний для ИИ
был не раз
Сейчас нет на сайте
Доброго времени суток, весь замучался. Суть проблемы - пишу машину состоянии для ИИ, как вы уже могли прочесть в заголовке.

есть следующие состояния:
state_enemy_idle

state_enemy_stall

state_enemy_wander

state_enemy_chasing

state_enemy_choose_next

и scr_check_player


и событие collision для врага и ГГ


И все было бы здорово, если бы не следующие ситуации:

ситуация 1: иногда противник может атаковать с явно преувеличенной дистанции. при этом ударить нас он не может, а мы его вполне себе можем бить

ситуация 2: - самая главная проблема
Заскринить не могу, но могу описать суть - персонаж противника после атаки внезапно начинает оббегать ГГ либо убегать непонятно куда, атакуя через секунду забежав к персонажу с рандомной стороны.
как бы можно сказать что это фича, но это жутко раздражает, если честно

Опять же, необходимый код для других событий/объектов/скрипты могу предоставить

Уверен что проблема дурацкая и легко решаемая, но я уже не знаю как. Пробовал вместо mp_potential_step(o_hero.x, o_hero.y, sp, false); следующие варианты:
move_towards_point(targetx, targety,sp); // просто после атаки пробегает сквозь персонажа, разворачивается и бежит сквозь персонажа в обратном направлении
mp_potential_step_object(targetx, targety, sp, 0); //не заметил разницы с mp_potential_step
и
x += sign(targetx - x); //ужасно дрыгаясь прибегает к персонажу, атакует и так же ужасно дрыгаясь начинает оббегать
y += sign(targety - y);

Лучше не стало. Увы.
Надеюсь на вашу помощь


Сообщение отредактировал Daedros - Пятница, 29 Июля 2016, 00:36
DaedrosДата: Среда, 03 Февраля 2016, 12:58 | Сообщение # 3 | Тема: Несколько вопросов про планирование путей и поведение АИ
был не раз
Сейчас нет на сайте
maksim1221232, главный герой перемещается, и поэтому путь приходится рассчитывать путь каждый шаг.
allowdiag стоит в 0.
Событие Room Start - сетка
Код
mp_grid_clear_all(grid1);

for (i = 0; i < ceil(room_width / cage_w); i += 1)
     for (j = 0; j < ceil(room_height / cage_h); j += 1)
        {
         if !((!collision_point(i * cage_w, j * cage_h, wall, false, true) && collision_point(i * cage_w, (j + 1) * cage_h, wall, false, true)) || collision_point(i * cage_w, j * cage_h, o_ladder, false, true) || (!collision_point(i * cage_w, j * cage_h, wall, false, true) && collision_point(i * cage_w, (j + 1) * cage_h, o_ladder, false, true)))
         mp_grid_add_cell(grid1,i,j);
        }


Степ - движение по пути

Код

switch stage
    {
    case 1:
        {
            if instance_exists(o_goal)
                if mp_grid_path(grid1, path1, x, y, o_goal.x div cage_w * cage_w + cage_w / 2, o_goal.y div cage_h * cage_h+ cage_h / 2, false)
                    {
                     stage = 2;                   
                     if moving == 0 {
                        path_start(path1, 5, 0, 1);
                        }                        
                    }    
         break;
        }       
        
    }
    
DaedrosДата: Вторник, 02 Февраля 2016, 19:15 | Сообщение # 4 | Тема: Несколько вопросов про планирование путей и поведение АИ
был не раз
Сейчас нет на сайте
BrightSpot, при изначальном движении к сундуку никаких срезов не образуется. Не могу понять причину их возникновения при движении за персонажем

Добавлено (02 февраля 2016, 19:15)
---------------------------------------------
Ну тоже очевидно, что срезы образуются из-за косячного расчета пути в момент, когда моб находится на вершине лестницы, но еще не слез с неё, вот и пытается ближайшим образом попасть на твердую поверхность, а уже с неё нормально рассчитывает. Но я уже ума не приложу, как это можно исправить, может у кого-нибудь есть идеи? либо это как-то костыльно решать, убирал твердость у стены при контакте с врагом, он же все равно движется по маршруту и не падает. но уже добравшись до цели шлепается, плюс ГГ проваливается


Сообщение отредактировал Daedros - Вторник, 02 Февраля 2016, 19:23
DaedrosДата: Вторник, 02 Февраля 2016, 18:15 | Сообщение # 5 | Тема: Несколько вопросов про планирование путей и поведение АИ
был не раз
Сейчас нет на сайте
Рассчитываю пути через сетку, враги исправно бегут к цели, поднимаясь и спускаясь по лестницам. При приближении персонажа, их цель перемещается на него, и путь рассчитывается уже за персонажем. Казалось бы все хорошо, но при спуске-подъеме на лестницу, в момент перехода с неё на твердые блоки, персонажи застревают. 1) Изначально все поняли свой путь, успешно идут по нему, залезают на блоки.
2) Пытаются построить свой путь до объекта игрока - тупят

3) вот такая картина в итоге - стоят и не могут слезть/залезть

Черным нарисован путь, красным - цель
DaedrosДата: Суббота, 30 Января 2016, 20:22 | Сообщение # 6 | Тема: Несколько вопросов про планирование путей и поведение АИ
был не раз
Сейчас нет на сайте
maksim1221232, спасибо, хоть и в целом, это было очевидно уже исходя из функции, и того, что она возвращает.

Все еще нужна помощь с рандомом (пусть ИИ стреляет рандомными заклинаниями, исходя из трех возможных). И, видимо, нужны хорошие примеры поведения ИИ для платформера, когда он умеет прыгать по препятствиям двигаясь к цели
maksim1221232, спасибо, хоть и в целом, это было очевидно уже исходя из функции, и того, что она возвращает.

Все еще нужна помощь с рандомом (пусть ИИ стреляет рандомными заклинаниями, исходя из трех возможных). И, видимо, нужны хорошие примеры поведения ИИ для платформера, когда он умеет прыгать по препятствиям двигаясь к цели
UPD при помощи дебага, проблема с рандомом была решена

Разыскиваются примеры движения ИИ:)


Сообщение отредактировал Daedros - Суббота, 30 Января 2016, 21:01
DaedrosДата: Суббота, 30 Января 2016, 11:17 | Сообщение # 7 | Тема: Несколько вопросов про планирование путей и поведение АИ
был не раз
Сейчас нет на сайте
DIDA,
Спасибо огромное, сменил название, не знал про instance_nearest()
Теперь самое главное разобраться с правильным поведением для ИИ, чтобы прыгали на "пол", спрыгивали. И, поскольку у меня используется if (distance_to_object(hero_o) < 400){move_towards_point(hero_o.x,hero_o.y,5);} ИИ напрочь забывает про гравитацию, просто летит в игрока


Сообщение отредактировал Daedros - Суббота, 30 Января 2016, 11:37
DaedrosДата: Суббота, 30 Января 2016, 10:48 | Сообщение # 8 | Тема: Несколько вопросов про планирование путей и поведение АИ
был не раз
Сейчас нет на сайте
Всем привет. Возникла проблема. Делаю платформер, суть в двух словах - есть враги, которые при старте комнаты идут к сундукам, адекватно перепрыгивая препятствия. Подходят к сундучку, "грабят" его, идут к следующему, если они еще остались. Главный герой должен защитить сундуки на уровне, соответственно, если его убьют либо полностью ограбят - поражение. Помимо этого, враги при дистанции, пусть будет условно, 400, бегут за ГГ, а при дистанции, опять же, условно, 200 - начинают кидать в него заклинания. А теперь что, собственно, меня беспокоит - объект сундук (chest) у меня один. Поэтому все ИИ начинают бежать к одному и тому же экземпляру объекта, потом бегут к следующему и т.д. в том порядке, в котором я их добавил в в комнату. Подскажите, как заставить их бежать к ближайшему экземпляру объекта? Применять костыль из нескольких сундуков плохо, потому что придется еще делать несколько одинаковых ИИ, только с разным порядком обхода сундуков.
Дальше, прибежав к одному сундуку, все ИИ кучкуются, и в итоге после нескольких обходов сундуков совсем сливаются. Все мои попытки их отталкивать друг от друга, привели к тому, что они просто тупят. Не думаю что это как-то сложно исправить, особенно, если заставить их бегать отдельно, но хотелось бы и от этой фигни избавиться. Ну и на засыпку - адекватные пути. ИИ должны прыгать на блоки, спрыгивать с них при необходимости, чтобы добраться до сундуков. Перерыл кучу примеров, выбрал на мой взгляд самый адекватный - http://rghost.ru/6fxcN7yJv (называется platform_exampl.gmk) В этом примере ИИ "агрится" на ГГ и преследует его, перепрыгивая препятствия, чтобы сделать выстрел. Пытался разобраться и переделать под конкретно свой случай - мои ИИ сразу поворачивают направо и бегут до упора, потом успешно застревают wacko
И последнее, пытался чтобы вместо одних лишь фаерболов, враги могли кидать и другие заклинания. Но они просто прекратили вообще что-то делать и перешли врукопашную. ЧЯДНТ?

Без проблем могу скинуть куски кода проекта, либо сам целиком. Надеюсь, форум еще жив и мне помогут) Последний раз делал что-то на гейммейкере года 4 назад)

Step для enemy
DaedrosДата: Суббота, 10 Ноября 2012, 02:42 | Сообщение # 9 | Тема: TDS - освещение фонарика на стенах
был не раз
Сейчас нет на сайте
Alexis-63, а вот это уже неплохо звучит, спасибо, потом попробую подумать в этом направлении.
у меня рисуется спрайт, можно изменять его размер при условии, что расстояние до стены = n?

Добавлено (10.11.2012, 02:42)
---------------------------------------------
но получится не совсем то. заденет краем спрайт света, и все, дальше не пойдет

DaedrosДата: Суббота, 10 Ноября 2012, 02:34 | Сообщение # 10 | Тема: TDS - освещение фонарика на стенах
был не раз
Сейчас нет на сайте
Alexis-63, я выкрутился по-другому, коридоры - по толстым черным стенам не понятно, просвечивает ли фонарик smile
хотя в углах можно просветить так, что свет входит в стену и выходит сквозь, но делать заплатками я не смогу, т.к. работать с сурфейсами не умею вообще.
DaedrosДата: Суббота, 10 Ноября 2012, 01:08 | Сообщение # 11 | Тема: Что-то типа полоски здоровья, но от другой переменной
был не раз
Сейчас нет на сайте
Alexis-63, спасибо, поставил +
DaedrosДата: Суббота, 10 Ноября 2012, 01:03 | Сообщение # 12 | Тема: Что-то типа полоски здоровья, но от другой переменной
был не раз
Сейчас нет на сайте
Alexis-63, дак как?! :DD
DaedrosДата: Суббота, 10 Ноября 2012, 00:53 | Сообщение # 13 | Тема: Что-то типа полоски здоровья, но от другой переменной
был не раз
Сейчас нет на сайте


ЖАНР ИГРЫ - TDS

итак, у меня есть:

переменные:
global.fonarikenergy=100 - заряд фонарика

объект, создающий сурфейс:
if lighter = true and global.fonarikenergy>0
{
draw_set_blend_mode(bm_subtract)
draw_sprite_ext(spr_light,-1,o_hero.x,o_hero.y,1,1,o_hero.image_angle,c_white,0.6)
global.usefonarik=1
}

который, при условии что заряд фонарика больше нуля, дает переменной, отвечающей за использование фонарика значение true

объект ГГ, в степе:
if global.usefonarik=1
alarm[1]=30

скорость комнаты - 30

в аларме, соответственно:

global.fonarikenergy-=1
if global.fonarikenergy<0 global.fonarikenergy=0
if global.fonarikenergy>0 and global.usefonarik=1
alarm[1]=30

и есть инвентарь из примера Dva_kota, в котором
case obj_battery: global.fonarikenergy=100; break;
ну то есть при использовании из инвентаря батарейки заряд восполняется.

это должно работать, но мне надо показать пользователю, что заряд батарейки уменьшается со временем. и я не знаю как это делать, а из справки не понял.
помогите, пожалуйста. нужен индикатор типа полоски хп, над o_hero, но с переменной fonarikenergy
DaedrosДата: Вторник, 06 Ноября 2012, 23:54 | Сообщение # 14 | Тема: Постоянное положение объекта
был не раз
Сейчас нет на сайте
Hamster099, круто, но не работает

Добавлено (06.11.2012, 23:54)
---------------------------------------------
Hamster099, о, норм, работает. просто из рук валится все сегодня весь день. спасибо)
репа не повышается Т_Т


Сообщение отредактировал Daedros - Вторник, 06 Ноября 2012, 23:54
DaedrosДата: Понедельник, 05 Ноября 2012, 23:45 | Сообщение # 15 | Тема: Постоянное положение объекта
был не раз
Сейчас нет на сайте
Здравствуйте, подскажите, пожалуйста, как сделать так, что бы объект создавался и всегда находился в точке
view_xview+8,view_yview+60
и никуда от туда не девался?
я решил сделать объект невидимым, заставить его всегда идти в эту точку, а поверх рисовать спрайт этого объекта, так как я знаю, как заставить спрайт оставаться в той точке, но наверняка есть решение проще
DaedrosДата: Понедельник, 05 Ноября 2012, 14:13 | Сообщение # 16 | Тема: Звуки
был не раз
Сейчас нет на сайте
Hamster099, фонарик на F включается
сверху значек глаза - "моргометр", каждые 10 секунд персонаж моргает.
но это уже к делу не относится)
спасибо, попробую сейчас

Добавлено (05.11.2012, 14:13)
---------------------------------------------
Hamster099, все работает, большое спасибо, держи +

DaedrosДата: Воскресенье, 04 Ноября 2012, 23:38 | Сообщение # 17 | Тема: Звуки
был не раз
Сейчас нет на сайте
tvmerd, мне легче не стало

прикреплю пример
http://zalil.ru/33926553
удалил все, что связано с кашлем, но звук там есть
может быть кто-то сможет придумать что-нибудь еще и с освещением, что бы свет не проходил сквозь стены
DaedrosДата: Воскресенье, 04 Ноября 2012, 23:04 | Сообщение # 18 | Тема: Звуки
был не раз
Сейчас нет на сайте
Здравствуйте, вопрос заезженный, смотрел, как надо делать, но не получается (Т_Т)
как реализовать следующие вещи:
1) есть фоновая музыка. работает
2) ГГ попадает на объект, создается эффект дым, должен проигрываться звук кашель - не работает, выключается фоновая музыка, жутко лагает, выхожу из дыма - работает кашель
3) появляется монстр - проигрывается звук - после тестов с кашлем даже не стал пробовать
DaedrosДата: Воскресенье, 04 Ноября 2012, 01:49 | Сообщение # 19 | Тема: TDS - освещение фонарика на стенах
был не раз
Сейчас нет на сайте
Здравствуйте, у меня возникла проблема, а как ее решить я не знаю, потому что с ГМ не имел дел более года.
Суть - TDS, есть фонарик через сурфейсы, есть спрайт с "освещением". Проблема - фонарик светит "сквозь" стену. Как сделать так, что бы освещение при контакте со стеной не светило "внутрь", а как обрезалось что ли, надеюсь, вы поняли.
Вот, собственно, примерчик:
http://zalil.ru/33923534


Сообщение отредактировал Daedros - Воскресенье, 04 Ноября 2012, 18:59
Форум игроделов » Записи участника » Daedros [19]
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг