Вторник, 16 Апреля 2024, 07:17

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Записи участника » CHROM [30]
Результаты поиска
CHROMДата: Четверг, 04 Августа 2011, 00:40 | Сообщение # 21 | Тема: Передача файла в MP
частый гость
Сейчас нет на сайте
HELP ! help
Можно ли как то передать свой файл в ГМ через Мультиплеерные функции?



+ CHROM +
CHROMДата: Среда, 03 Августа 2011, 23:31 | Сообщение # 22 | Тема: Вопрос по полосе...
частый гость
Сейчас нет на сайте
а кстати...как делать разные полоски .... ну цветом или со своим как бы фоном! blink


+ CHROM +
CHROMДата: Вторник, 02 Августа 2011, 19:27 | Сообщение # 23 | Тема: Напишите пожалуйста урок по созданию онлаин игры на 39lib
частый гость
Сейчас нет на сайте
Необезательно всё переделывать... haha


+ CHROM +
CHROMДата: Вторник, 02 Августа 2011, 19:12 | Сообщение # 24 | Тема: Вопрос по полосе...
частый гость
Сейчас нет на сайте
ОУ! СПАСИБО БОЛЬШОЕ ! hands thumb up v


+ CHROM +
CHROMДата: Вторник, 02 Августа 2011, 18:07 | Сообщение # 25 | Тема: Вопрос по полосе...
частый гость
Сейчас нет на сайте
Помогите плиз... help
Я не знаю как в Game Makere сделать полоску ... ну всмысли такую как например стандартная ХП (жизней)!
Мне нужно две полосы - одна жизни, другая магия (мана).
Дайте код или просто объясните как делать такие полосы и возможно ли такое сделать... rolleyes



+ CHROM +
CHROMДата: Вторник, 02 Августа 2011, 00:13 | Сообщение # 26 | Тема: Weapon Creator 0.7
частый гость
Сейчас нет на сайте
Это ты на Game Makere сделал! Да? crazy


+ CHROM +
CHROMДата: Понедельник, 01 Августа 2011, 23:48 | Сообщение # 27 | Тема: Немного для TDS
частый гость
Сейчас нет на сайте
для новичков будет полезно!


+ CHROM +
CHROMДата: Понедельник, 01 Августа 2011, 21:48 | Сообщение # 28 | Тема: Немного для TDS
частый гость
Сейчас нет на сайте
1. Как сделать, чтобы противники двигались к игроку? (вид сверху)


Ответ: Заставить противников двигаться к игроку есть множество способов. Если противники должны просто следовать за игроком по прямой, можно использовать следующий код:

Код:

if instance_exists(объект_игрока)

{

if point_distance(x, y, объект_игрока.x, объект_игрока.y) > скорость_движения

{

move_towards_point(объект_игрока.x, объект_игрока.y, скорость_движения); // Двигаемся к игроку

}

else

{

x = объект_игрока.x;

y = объект_игрока.y;

}

}

Условие if instance_exists(объект_игрока) нужно для того, чтобы не появлялась ошибка, когда объекта игрока почему-то нет (например, когда он был удалён после смерти). Проверка point_distance требуется для того, чтобы противник не мог пройти позицию цели. К примеру, если скорость противника - 10 пикселей, а цель находится от него на расстоянии в два пикселя, то он попросту проскочит её, сдвинувшись на 10 пикселей в направлении цели. С проверкой он сдвинется точно к позиции цели, не перескакивая её.

2.Если противники должны двигаться к игроку, огибая стены, можно использовать следующий код:

Код:

if instance_exists(объект_игрока)

{

if point_distance(x, y, объект_игрока.x, объект_игрока.y) > скорость_движения

{

mp_potential_step(объект_игрока.x, объект_игрока.y, скорость_движения, checkall);

}

else

{

x = объект_игрока.x;

y = объект_игрока.y;

}

}

О значении последнего аргумента (checkall) читайте в справке.


3. Как сделать, чтобы противники "видели" игрока только на определённом расстоянии?


Ответ: Для этого нужно проверить расстояние между игроком и противником, делается это с помощью функции point_distance:

Код:

if instance_exists(объект_игрока)

{

if point_distance(x, y, объект_игрока.x, объект_игрока.y) < радиус_зрения_противника

{

// Действия противника, когда игрок попал в поле зрения.

}

}

О необходимости проверки instance_exists читайте в предыдущем вопросе.


4. Как сделать, чтобы противники видели игрока только под определённым углом?


Ответ: Используйте скрипт для вычисления разницы между двумя направлениями, создание которого подробно описывается в вопросе 2.4.24. Если разница между направлением взгляда противника и направлением от него к игроку превышает половину от угла обзора противника, значит противник не видит игрока. К примеру, если противник имеет угол обзора в 120 градусов, то разница между направлением его взгляда и направлением от него к игроку должна по модулю не превышать 60 градусов (это значит, что противник видит игрока). В коде это выглядит примерно так:

Код:

var dir;

dir = point_direction(x, y, объект_игрока.x, объект_игрока.y);

if abs(dir_difference(image_angle, dir)) <= угол_обзора / 2

{

// Действия противника, если игрок находится в его поле зрения.

}


5. Как сделать, чтобы противники не видели игрока через стены?


Ответ: Для этого нужно проверить, есть ли между противником и игроком стена. Используйте функцию collision_line:

Код:

if instance_exists(объект_игрока) // Если объект игрока существует

{

if !collision_line(x, y, объект_игрока.x, объект_игрока.y, объект_стены, 0, 0)

{

// Действия противника, когда между ним и игроком нет стены.

}

}

Восклицательный знак перед функцией - это знак отрицания, то есть, он сменяет true на false и false на true. Иначе говоря, без него проверка на русском языке звучала бы как "Если между игроком и противником есть стена", а с ним: "Если между игроком и противником нет стены".

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

Ответ: Так как объектов союзных персонажей может быть много, нам нужно обращаться к какому-то одному объекту, а не к каждому по отдельности. Для этого нужно использовать так называемых объектов-родителей (parent). Для начала нужно создать новый объект, родитель для всех союзных персонажей игрока и для него самого, после чего назначить его родителем всем нужным объектам. При обращении к родителю мы будем обращаться ко всем его дочерним объектам - ко всем союзным персонажам и игроку одновременно.

Для определения ближайшего объекта можно использовать функцию instance_nearest. Если ни одного экземпляра искомого объекта в комнате нет, функция возвратит noone, поэтому функцию instance_exists можно не использовать. Код будет выглядеть примерно так:

Код:

var obj;

obj = instance_nearest(x, y, родительский_объект); // Определяем ближайшего персонажа

if obj != noone // Если существует хотя бы один экземпляр объекта родительский_объект (или дочернего объекта), то...

{

/// Двигаемся к нему:

if point_distance(x, y, obj.x, obj.y) > скорость_движения

{

mp_potential_step(obj.x, obj.y, скорость_движения, checkall);

}

else

{

x = obj.x;

y = obj.y;

}

}

Пишите если чё непонятно...)

book



+ CHROM +
CHROMДата: Понедельник, 01 Августа 2011, 21:40 | Сообщение # 29 | Тема: Проблема с созданием ИИ.
частый гость
Сейчас нет на сайте
Вам сюда ... Click


+ CHROM +


Сообщение отредактировал CHROM - Понедельник, 01 Августа 2011, 21:49
CHROMДата: Понедельник, 01 Августа 2011, 21:03 | Сообщение # 30 | Тема: Всё таки, как прикрепить башню к танку?
частый гость
Сейчас нет на сайте
ЛЮДИ НЕ ПАРТЕСЬ! смотрите тут ... очень легко ... СКАЧАТЬ пример


+ CHROM +
Форум игроделов » Записи участника » CHROM [30]
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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