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

 
Расширенный поиск
  Главная  Форум   Вики Блоги FAQ Игры Статьи Примеры Войти Регистрация  
Вики
Все желающие приглашаются редактировать вики. Можете писать о своих (или чужих) играх, размещать туториалы, постить статьи - главное навесить категорию.
Страниц: 1 ... 357 358 359 360 361 362 363 364 365 366   Вниз
  Печать  
Ответы@Gmakers.xyz — все вопросы сюда
Огион и 5 Гостей смотрят эту тему.
deathsoul
дезсоул
Ветеран форума
*****

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

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


21 Апрель 2011 в 01:14
Чтобы не было тем с вопросами, которые содержат всего два-три сообщения, все свои вопросы задавайтесь здесь. Если вопрос окажется слишком сложным для общей темы, модераторы всегда могут вынести обсуждение в отдельную тему.
Для этой темы действуют те же правила, что и для всего раздела, так что перед тем, как задать вопрос, обязательно ознакомьтесь с этой темой: «Ознакомьтесь, прежде чем задать вопрос». И не забудьте проверить, нет ли ответа на ваш вопрос в FAQ по Game Maker.
Последнее редактирование: 13 Октябрь 2013 в 19:01 от Огион
 
Макасин
[s]
Младший администратор
Старожил
******

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

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


[/s]

Ответ № 7201 12 Декабрь 2017 в 17:11
Как грамотно организовать столкновения при виде сверху, если движение реализовано через speed и direction?

Энтузиазм нашему форуму чужд. Sad but true.
Ogion.
Огион
Завсегдатай
****

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

Сообщений: 989


Ответ № 7202 12 Декабрь 2017 в 22:12
Вариант «не использовать speed и direction» исключён?
Макасин
[s]
Младший администратор
Старожил
******

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

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


[/s]

Ответ № 7203 12 Декабрь 2017 в 23:15
Крайне нежелателен. Ситуация в том, что вид может поворачиваться, и для того, чтобы управление оставалось правильным относительно него speed и direction предпочтительны.

Энтузиазм нашему форуму чужд. Sad but true.
Ogion.
Огион
Завсегдатай
****

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

Сообщений: 989


Ответ № 7204 13 Декабрь 2017 в 11:25
Не очень понимаю, каким образом поворот вида навязывает использование встроенных переменных.
Макасин
[s]
Младший администратор
Старожил
******

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

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


[/s]

Ответ № 7205 13 Декабрь 2017 в 12:26
..хм, может не в лыжах дело?
Ну смотри, есть же три варианта: "х-у", "вертикальная-горизонтальная скорости", "скорость-направление".
При первых двух при повороте вида относительно персонажа управление сбивается, ибо оно относительно координат мира. Чтобы решить нужны костыли. А в третьем можно просто вычесть из направления персонажа значение поворота вида.

UPD.
Действительно, на свежую голову разобрался. FAQ II.2.12., а поправку на поворот вида можно делать в момент задания направления клавишами.
Последнее редактирование: 13 Декабрь 2017 в 13:22 от Макасин

Энтузиазм нашему форуму чужд. Sad but true.
Ogion.
Огион
Завсегдатай
****

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

Сообщений: 989


Ответ № 7206 13 Декабрь 2017 в 17:02
Надо понимать, что движение — это вектор. Этот вектор задаётся горизонтальной и вертикальной компонентами, чтобы не прибегать к синусам-косинусам при вычислении новых координат. Это и есть hspeed и vspeed. Переменные speed и direction — просто альтернативный способ работы с этими переменными, чтобы тебе не приходилось заморачиваться с математикой.

Я предпочитаю вовсе не прибегать к встроенным переменным движения, а использовать свои. Чтобы можно было делать проверку на столкновение перед перемещением, а не после.  

Могу выдрать из Хэнка код, отвечающий за движение. Там и скольжение вдоль стен, и «прижатие» к стенам. Вроде бы без багов.
Макасин
[s]
Младший администратор
Старожил
******

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

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


[/s]

Ответ № 7207 14 Декабрь 2017 в 20:02
Могу выдрать из Хэнка код, отвечающий за движение. Там и скольжение вдоль стен, и «прижатие» к стенам. Вроде бы без багов.

Острой необходимости нет, но взглянуть было бы интересно.

Энтузиазм нашему форуму чужд. Sad but true.
Ogion.
Огион
Завсегдатай
****

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

Сообщений: 989


Ответ № 7208 17 Декабрь 2017 в 22:29
Проще сделать голову отдельным объектом.

В Create объекта персонажа:
head_id = instance_create(x + head_xoffset, y + head_yoffset, o_head); 
head_id.body_id = id; //Сохраним в экземпляре головы id тела

Переменные head_xoffset и head_yoffset — положение головы относительно тела.

В End Step головы (почему именно End Step — см. FAQ II.2.13):
x = body_id.x + body_id.head_xoffset;
y = body_id.y + body_id.head_yoffset;

И в столкновении головы с пулей:
body_id.hp -= 100;
Макасин
[s]
Младший администратор
Старожил
******

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

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


[/s]

Ответ № 7209 18 Декабрь 2017 в 04:10
У меня каверзный вопрос.
На что влияет порядок объектов в этом списке? И влияет ли?

Энтузиазм нашему форуму чужд. Sad but true.
Ogion.
Vovan1802
Активный участник
**

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

Сообщений: 148

Ответ № 7210 18 Декабрь 2017 в 04:12
Ни на что он не влияет. Я лично для удобства там создаю группы объектов (игроки, враги, бонусы...). А так не важно в каком порядке будут созданы объекты, ни на что не повлияют
Макасин
[s]
Младший администратор
Старожил
******

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

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


[/s]

Ответ № 7211 18 Декабрь 2017 в 04:21
А вот и нет. Вот кусок кода, который работает по-разному, в зависимости от положения объекта o_door.
if (!collision_line(x, y, o_pers.x, o_pers.y, AI_avoid, 0, 0) && !collision_line(x, y, o_pers.x, o_pers.y, o_door, 1, 0))
{
//smth
}

Энтузиазм нашему форуму чужд. Sad but true.
Ogion.
Огион
Завсегдатай
****

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

Сообщений: 989


Ответ № 7212 18 Декабрь 2017 в 10:22
ZCGamer,
Отдельный объект лучше, потому что ты можешь запросто сделать его любого размера и формы. А если у тебя всё в одном объекте, то этого можно будет добиться только точной проверкой столкновений, которая очень ресурсозатратна.  

Макасин,
Очень странно. Можешь сделать минимальный пример?
Последнее редактирование: 18 Декабрь 2017 в 10:41 от Огион
Огион
Завсегдатай
****

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

Сообщений: 989


Ответ № 7213 21 Декабрь 2017 в 03:07
Здесь был вопрос от ZCGamer, который он по какой-то причине удалил.

Исходник я так и не посмотрел, но могу предположить, что проблемы возникают из-за путаницы в разных состояниях героя. Чтобы путаницы не было, нужно реализовать их через конечный автомат (finite state machine). Неслучайно тебе ещё полгода назад предлагали с ними разобраться:
По хорошему, тебе нужен конечный автомат, чтобы точнее контролировать состояния. Прочитай статью и попробуй разобраться самостоятельно.

Обрати внимание на этот тред. Там предлагается два подхода: готовый набор скриптов, при помощи которых можно программно создавать сколько угодно сложные КА, а также топорный подход с Хабрахабра.
Vovan1802
Активный участник
**

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

Сообщений: 148

Ответ № 7214 22 Декабрь 2017 в 20:39
Подскажите, как выполнить проверку, отправляется ли пакет с сервера на клиента? А вообще проблема следующая: На сервере создается объект, надо чтоб он отправил свои координаты на клиента и появился на нем. Подскажите, каким образом это реализовать? Данные с клиента на сервер и с сервера на остальные клиенты передаются без проблем, а вот данные объекта, созданного на сервере, передать на клиенты не получается
Кто-тo
Ветеран форума
*****

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

Сообщений: 1 112


Ответ № 7215 24 Декабрь 2017 в 01:40
Подскажите, как выполнить проверку, отправляется ли пакет с сервера на клиента?
Послать тестовый пакет, на который клиент отвечает серверу что тестовый пакет принял.
Вообще, network_send_packet согласно справке GMS 1.4 возвращает отрицательное значение, если отправка не удалась. Но оно ничего не говорит о том, удался ли приём или нет.

данные объекта, созданного на сервере, передать на клиенты не получается
В каком смысле данные объекта передать не получается? Какие данные пытаешься передать, каким образом принимаешь?
Vovan1802
Активный участник
**

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

Сообщений: 148

Ответ № 7216 24 Декабрь 2017 в 01:49
Ну гробо говоря ситуация такая: на клиенте создается персонаж, у него определенное оружие. При нажатии на выстрел появляется пуля на клиенте, ее данные сохраняются в буфер, отправляются на сервер. Сервер обрабатывает данные, рисует эту же пулю на себе, и отправляет данные этой пули остальным клиентам. С пулей все работает как надо. А теперь мне надо чтоб на сервере появился ящик в рандомном месте карты, его координаты должны отправиться клиентам, и там уже появиться. Но у меня почему то не получается((( как я пишу код, смогу написать только завтра, сейчас нет доступа к компу. Да и вообще с проектом произошла какая то хрень: на прошлой неделе все тестил, на обоих клиентах все работало правильно, рисовались персонажи, их оружие, пули, правильно наносился урон. А вчера запустил- а там вообще какой то пи.... Все работает через одно место((( Хотя ничего сам не менял( И где теперь искать проблему- хз((( Походу придется все переписывать по новой. Возможно из за этого и с этим ящиком ничего не получается, где то какой то косяк
Макасин
[s]
Младший администратор
Старожил
******

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

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


[/s]

Ответ № 7217 24 Декабрь 2017 в 02:52
Макасин,
Очень странно. Можешь сделать минимальный пример?

Это проблематично, но могу как-нибудь в дискорде показать на досуге.

Энтузиазм нашему форуму чужд. Sad but true.
Ogion.
ZCGamer
Активный участник
**

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

Сообщений: 201


Гроза игростроя!

Ответ № 7218 05 Январь 2018 в 20:33
В GM8 возможно воспроизведенный звук (к примеру фоновую музыку) поставить на паузу (например при открытии меню) и после воспроизвести с остановленного места, что бы она не начиналась заново?
Огион
Завсегдатай
****

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

Сообщений: 989


Ответ № 7219 05 Январь 2018 в 23:11
Только если использовать какую-нибудь DLL. В любом случае встроенный в GM8 звук использовать нельзя, потому что на современных системах из-за неё происходят вылеты.
Satan'sCry
Теплый, ламповый и пиксельный
Завсегдатай
****

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

Сообщений: 842


теплый, ламповый и пиксельный

Ответ № 7220 14 Январь 2018 в 00:58
Привет сидящим тут.
Возник вопрос :
есть у меня объект, где я в рисую по-частям спрайт. (тело от рук / одежда и т д)
рисую я, в итоге, способом :

draw_sprite_ext(...);
draw_sprite_ext(...);
...

можно ли как то это все в одну текстуру после преобразовать?
что бы потом можно было вызвать по
sprite_get_texture()
?

//Этот объект - персонаж игрока, и поверх этой текстуры накладывается шейдер, который рисует контур в 1 пиксель.
беру за основу один спрайт (любой из частей тела), и он отделяет контуром отдельно спрайты, я бы хотел, что бы покрывались все спрайты по одному контуру.

Страниц: 1 ... 357 358 359 360 361 362 363 364 365 366   Вверх
  Печать  
 
Перейти в:  

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