RS Game Maker Community
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

 
Расширенный поиск
  Главная  Форум   Вики Блоги FAQ Игры Статьи Примеры Войти Регистрация  
Вики
Все желающие приглашаются редактировать вики. Можете писать о своих (или чужих) играх, размещать туториалы, постить статьи - главное навесить категорию.
Страниц: 1 2 3 4   Вниз
  Печать  
Вопросы от меня, ответы для всех)
0 Пользователей и 1 Гость смотрят эту тему.
Andrew
[Z7N▼]
Новичок


Репутация: 3
Offline Offline

Сообщений: 33


[D&S]

30 Ноябрь 2010 в 06:20
Здравствуйте, коллеги.
В этой теме я буду задавать свои вопросы, т.к. у меня вопросы не большого формата и создавать отдельные темы просто бессмысленно.
1 Вопрос:
Какой код надо использовать для того, чтоб противник стрелял только в том случае, когда траектория пули до игрока свободна. Я использую вот этот код для обнаружения и атаки игрока:
if distance_to_object(plr)<=100
{
mp_potential_step(plr.x,plr.y,move_speed,false)
 if reload<=0
 {
 instance_create(x,y,enemy_bullet1) reload=reload_plus
 }
}
В общем нужна проверка свободного пути(траектории полета) для врага и если путь свободен, то враг стреляет. Помогите! :'(

Анимэ заставки *Бесплатно
Создаю lib библиотеки.
 
CobyDick
Я всё ещё
Участник
*

Репутация: 9
Offline Offline

Сообщений: 72


Ответ № 1 30 Ноябрь 2010 в 07:41
Попробуй  так

 if !collision_line(x,y,o_hero.x,o_hero.y,o_stena,false,false) 
{
strelba=true
}
else
{
strelba=false
}
if strelba=true
{
instance_create(x,y,o_bullet)
}
Andrew
[Z7N▼]
Новичок


Репутация: 3
Offline Offline

Сообщений: 33


[D&S]

Ответ № 2 30 Ноябрь 2010 в 08:30
CobyDick,спасибо, помогло! O0
2 вопрос:
Как сделать проверку значения переменной в другом объекте?
Объясню, у меня есть объект fire(Огонь) и enemy(Враг).
В create объекта fire:
damage=1;
Я не могу сделать у объекта enemy проверку переменной, объяснить на словах могу, а вот перевести это в код не могу.
Необходимо сделать проверку у enemy если объект находящийся на расстоянии (8px) и у него присутствует переменная damage=1, то он его обходит стороной(обходить объекты я знаю как это сделать), а если же переменная damage=0, то enemy идет на про полую. Помогите...

Анимэ заставки *Бесплатно
Создаю lib библиотеки.
Pinguin
Завсегдатай
****

Репутация: 25
Offline Offline

Сообщений: 538


Ну типа Горшок

Ответ № 3 30 Ноябрь 2010 в 10:13
Сделай эту переменную глобальной.
У игрока в создании пиши:
 global.damage=0 //например 

Andrew
[Z7N▼]
Новичок


Репутация: 3
Offline Offline

Сообщений: 33


[D&S]

Ответ № 4 30 Ноябрь 2010 в 13:13
pingvin, нет, это не то, т.к. объект не постоянный и к тому же он не один, вот могу написать код который я пытался использовать:
Объект enemy в step:
if other.danger=1
{
mp_potential_step(plr.x,plr.y,move_speed,true)
}
else
{
mp_potential_step(plr.x,plr.y,move_speed,false)
}
Но GM ругается, говорит, что damage не известная переменная. Мне нужно этот код сделать рабочим. Помогите! :'(

Анимэ заставки *Бесплатно
Создаю lib библиотеки.
Pinguin
Завсегдатай
****

Репутация: 25
Offline Offline

Сообщений: 538


Ну типа Горшок

Ответ № 5 30 Ноябрь 2010 в 13:16
pingvin, нет, это не то, т.к. объект не постоянный и к тому же он не один, вот могу написать код который я пытался использовать:
Объект enemy в step:
if other.danger=1
{
mp_potential_step(plr.x,plr.y,move_speed,true)
}
else
{
mp_potential_step(plr.x,plr.y,move_speed,false)
}
Но GM ругается, говорит, что damage не известная переменная. Мне нужно этот код сделать рабочим. Помогите! :'(
Возможно надо её указать вроде
 var danger;
Но я не уверен.

Andrew
[Z7N▼]
Новичок


Репутация: 3
Offline Offline

Сообщений: 33


[D&S]

Ответ № 6 30 Ноябрь 2010 в 13:30
Не работает. :(

Анимэ заставки *Бесплатно
Создаю lib библиотеки.
Огион
Завсегдатай
****

Репутация: 133
Offline Offline

Сообщений: 984


Ответ № 7 30 Ноябрь 2010 в 13:48
Разумеется. Other тут совершенно непричем, а var вообще-то создает временную переменную.
Для того, чтобы получить переменную экземпляра объекта, нужно знать его id. А id "объекта находящегося на расстоянии ( 8px )", ты просто так не получишь. Я бы, наверное, придумал что-нибудь вроде занесения id в массив или список, но для тебя это будет слишком сложно... Попробуй заменять объект вместо изменения переменной.
Andrew
[Z7N▼]
Новичок


Репутация: 3
Offline Offline

Сообщений: 33


[D&S]

Ответ № 8 30 Ноябрь 2010 в 14:22
Ogion, например вот так?
В create fire.  
danger[0]=no
danger[1]=yes
current_danger_status=1

Теперь в step enemy:
if other.(danger[current_danger_status])
{
 mp_potential_step(plr.x,plr.y,move_speed,true)
}
else
{
mp_potential_step(plr.x,plr.y,move_speed,false)
}
Если честно не понимаю как использовать массив в данной ситуации. :-\

Анимэ заставки *Бесплатно
Создаю lib библиотеки.
Lagevae
Норм
Старожил
******

Репутация: 194
Offline Offline

Награды:
За перевод справки Game Maker 8Легенда сайта
Сообщений: 2 703

Ответ № 9 30 Ноябрь 2010 в 14:39
place_meeting(x-8,y) и так во все 4 стороны. Хорошо, если огней мало, и они не рядом.
Или instance_nearest() и проверять расстояние до него. Если меньше 8-ми пикселей то то-то и то-то (;D).
Последнее редактирование: 30 Ноябрь 2010 в 15:21 от Lagevae

therein lies the beauty
Andrew
[Z7N▼]
Новичок


Репутация: 3
Offline Offline

Сообщений: 33


[D&S]

Ответ № 10 30 Ноябрь 2010 в 15:00
Спасибо всем за попытку помочь мне с решением 2-го вопроса, но ответа так ни кто и не дал. :( Я закрываю 2-ой вопрос, т.к. на него нет ответа. :(
Появятся вопросы попроще, напишу в этой теме.

Анимэ заставки *Бесплатно
Создаю lib библиотеки.
Lagevae
Норм
Старожил
******

Репутация: 194
Offline Offline

Награды:
За перевод справки Game Maker 8Легенда сайта
Сообщений: 2 703

Ответ № 11 30 Ноябрь 2010 в 15:22
А вообще, блин, чё, наложить сверху объект толще на 8 пикселей в каждую сторону и проверять по нему...
Короче, я не знаю, не представляю даже как объяснить...
В общем, помогите ему кто-нибудь. ;)

А, дак ты уже и закрыл вопрос.....

therein lies the beauty
deathsoul
дезсоул
Ветеран форума
*****

Репутация: 548
Offline Offline

Награды:
Легенда сайта
Сообщений: 1 853


Ответ № 12 30 Ноябрь 2010 в 16:39
Спасибо всем за попытку помочь мне с решением 2-го вопроса, но ответа так ни кто и не дал. :( Я закрываю 2-ой вопрос, т.к. на него нет ответа. :(
Появятся вопросы попроще, напишу в этой теме.
Не спеши делать поспешные выводы.


Парни, вы что? Зачем заносить id в список? Для оптимизации что ли?
Код будет выглядеть примерно вот так:

var move;
move = 0;
with all // Обращаемся ко всем объектам
{
    if point_distance(x, y, other.x, other.y) <= 8 // Если этот объект находится на расстоянии 8 пикселей
    {
        if variable_local_exists('damage') // Если у него объявлена переменная damage
        {
            if damage == 1 // Если она равна 1
            {
                move = 1; // ... обходим объект
                break; // Завершаем цикл
            }
        }
    }
}

if move == 1
{
    mp_potential_step(plr.x, plr.y, move_speed, true);
}
else
{
    mp_potential_step(plr.x, plr.y, move_speed, false);
}
Последнее редактирование: 30 Ноябрь 2010 в 16:48 от DeatHSoul
Andrew
[Z7N▼]
Новичок


Репутация: 3
Offline Offline

Сообщений: 33


[D&S]

Ответ № 13 30 Ноябрь 2010 в 17:14
DeatHSoul, спасибо, помог O0! Уважаю таких людей ;).

Анимэ заставки *Бесплатно
Создаю lib библиотеки.
OneFate();
Ветеран форума
*****

Репутация: 54
Offline Offline

Награды:
Легенда сайта
Сообщений: 1 024


Ответ № 14 30 Ноябрь 2010 в 17:23
Спасибо всем за попытку помочь мне с решением 2-го вопроса, но ответа так ни кто и не дал. :( Я закрываю 2-ой вопрос, т.к. на него нет ответа. :(
Появятся вопросы попроще, напишу в этой теме.
Не спеши делать поспешные выводы.


Парни, вы что? Зачем заносить id в список? Для оптимизации что ли?
Код будет выглядеть примерно вот так:

var move;
move = 0;
with all // Обращаемся ко всем объектам
{
    if point_distance(x, y, other.x, other.y) <= 8 // Если этот объект находится на расстоянии 8 пикселей
    {
        if variable_local_exists('damage') // Если у него объявлена переменная damage
        {
            if damage == 1 // Если она равна 1
            {
                move = 1; // ... обходим объект
                break; // Завершаем цикл
            }
        }
    }
}

if move == 1
{
    mp_potential_step(plr.x, plr.y, move_speed, true);
}
else
{
    mp_potential_step(plr.x, plr.y, move_speed, false);
}

Ого, с такой просто вещью и помочь никто не смог. :crazy:
DeatHSoul как всегда мастер ))
Andrew
[Z7N▼]
Новичок


Репутация: 3
Offline Offline

Сообщений: 33


[D&S]

Ответ № 15 19 Декабрь 2010 в 03:55
3-ий вопрос: Какой формат 3d моделей читает GM и есть ли "экспортеры" для 3ds MAX 8 SP2?
P.S. Если есть какие "импортеты" для GM, то подскажите пожалуйста.

Анимэ заставки *Бесплатно
Создаю lib библиотеки.
Tkachov
Завсегдатай
****

Репутация: 130
Offline Offline

Награды:
За перевод справки Game Maker 8Призер конкурса ''Маляр Ниндзя''
Сообщений: 665


Ответ № 16 19 Декабрь 2010 в 06:38
GM не читает 3D-моделей.

Есть скрипт, который, кажется, .3ds "конвертирует" в понятный GM формат (а точнее, собирает модель заново по данным из 3ds).

Есть Ultimate3D.dll, которая поддерживает много форматов, но только рано связываться с ней не надо...

В .3ds 3ds MAX может экспортировать (file->export, там выбираешь тип 3ds, он второй по счёту, и сохраняешь).
Andrew
[Z7N▼]
Новичок


Репутация: 3
Offline Offline

Сообщений: 33


[D&S]

Ответ № 17 19 Декабрь 2010 в 08:10
Tkachov, извиняюсь за орфографические ошибки и не правильное написание :(  :angel:, а с Ultimate3D знаком, но не пользуюсь ею, а не можешь подсказать где можно посмотреть скрипт или скачать исходник с ним?

Анимэ заставки *Бесплатно
Создаю lib библиотеки.
Tkachov
Завсегдатай
****

Репутация: 130
Offline Offline

Награды:
За перевод справки Game Maker 8Призер конкурса ''Маляр Ниндзя''
Сообщений: 665


Ответ № 18 19 Декабрь 2010 в 08:36
Нет, не знаю. Я его давно на gm-rus.ru встречал, только его закрыли... так что не знаю.
Andrew
[Z7N▼]
Новичок


Репутация: 3
Offline Offline

Сообщений: 33


[D&S]

Ответ № 19 19 Декабрь 2010 в 08:58
Tkachov, жаль..., но спасибо за помощь.

Анимэ заставки *Бесплатно
Создаю lib библиотеки.
Страниц: 1 2 3 4   Вверх
  Печать  
 
Перейти в:  

RSGMC (gmakers.ru) © 2007—2018
Счётчик–@Mail.ru