CHROM | Дата: Четверг, 04 Августа 2011, 00:40 | Сообщение # 21 | Тема: Передача файла в MP |
частый гость
Сейчас нет на сайте
| HELP ! Можно ли как то передать свой файл в ГМ через Мультиплеерные функции?
+ CHROM +
|
|
| |
CHROM | Дата: Среда, 03 Августа 2011, 23:31 | Сообщение # 22 | Тема: Вопрос по полосе... |
частый гость
Сейчас нет на сайте
| а кстати...как делать разные полоски .... ну цветом или со своим как бы фоном!
+ CHROM +
|
|
| |
CHROM | Дата: Вторник, 02 Августа 2011, 19:27 | Сообщение # 23 | Тема: Напишите пожалуйста урок по созданию онлаин игры на 39lib |
частый гость
Сейчас нет на сайте
| Необезательно всё переделывать...
+ CHROM +
|
|
| |
|
|
CHROM | Дата: Вторник, 02 Августа 2011, 00:13 | Сообщение # 26 | Тема: Weapon Creator 0.7 |
частый гость
Сейчас нет на сайте
| Это ты на Game Makere сделал! Да?
+ 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;
}
}
Пишите если чё непонятно...)
+ CHROM +
|
|
| |
CHROM | Дата: Понедельник, 01 Августа 2011, 21:40 | Сообщение # 29 | Тема: Проблема с созданием ИИ. |
частый гость
Сейчас нет на сайте
| Вам сюда ... Click
+ CHROM +
Сообщение отредактировал CHROM - Понедельник, 01 Августа 2011, 21:49 |
|
| |
CHROM | Дата: Понедельник, 01 Августа 2011, 21:03 | Сообщение # 30 | Тема: Всё таки, как прикрепить башню к танку? |
частый гость
Сейчас нет на сайте
| ЛЮДИ НЕ ПАРТЕСЬ! смотрите тут ... очень легко ... СКАЧАТЬ пример
+ CHROM +
|
|
| |