Показать сообщение отдельно
Старый 08.07.2010, 08:59
NoCD вне форума Посмотреть профиль Отправить личное сообщение для NoCD Найти все сообщения от NoCD
  № 8  
Ответить с цитированием
NoCD
 
Аватар для NoCD

Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
Если вы хотите получить рандомное движение, то просто пусть враг генерирует на расстоянии от себя например в 200 пикселов любую точку _x,_y и движется к ней.

Что бы враг смог уклоняться от выстрелов игрока, просто нужно контролировать выстрелы игрока и направление выстрела, если выстрел был произведен в сторону врага, то этот враг рандомно движется в том или ином направлении от пули(например влево или вправо от пули). Что бы была вероятность попадания по врагу, можно замедлить реакцию рандомно. Тоесть враг узнал, что игрок стреляет по нему, рандомно вычисляем время реакции.

Если цель игры: уничтожить всех врагов, то пусть все враги движутся к игроку. Враг берет координаты игрока, сохраняет их в себе и движется по этим координатам. Через определенное время (например 5 секунд), обновить координаты. Если расстояние в пределах выидимости игрока, то враг нападает на игрока напрямую.

Если задача игры: выжить среди других игроков(ИИ), то пусть враги проверяют расстояние до близжайшего врага, вступают в бой, маневрируют.

Алгоритм обычно строится от глобального к частному.
Вот примитивный вариант ИИ:
не все пункты идут по порядку.

1. Вычисление позиций других врагов (заносим во внутренний массив текущего игрока)
2. Вычисляем слабого\сильного врага, его расстояние, в режиме боя он или нет.
3. Цель определена, движемся к ней.
4. Цель достигнута, вступаем в режим боя.
5. Стреляем по врагу и маневрируем если по нам стреляют.
6. Если нападают двое и шанс выжить минимален, то покинуть поле боя.
7. и т.д.

На счет литературы по ИИ могу посоветовать "Шампандар. Искусственный интеллект в компьютерных играх"
Зачем вам C# или с++ для создания ИИ? Главное знать алгоритмы построения ИИ, а не определенный язык программирования.


Последний раз редактировалось NoCD; 08.07.2010 в 09:16.