Вопрос - Ответ (Game Maker)
| |
Raven84 | Дата: Вторник, 28 Февраля 2017, 15:13 | Сообщение # 5921 |
старожил
Сейчас нет на сайте
| dildo_bomber, Сомневаюсь, что такое возможно. EXE-шник просто загружается в опреативку, при выходе с игры, она освобождается. Сохранение каких-то данных возможно только во внешних файлах. Я так думаю. Даже в больших играх все сохраненки в файлах. Что вам мешает так сделать?
Super Knight Story (в разработке) Idolzzz - игра доступна в Steam и Play Market Oliver's Adventures in the Fairyland
|
|
| |
dildo_bomber | Дата: Пятница, 28 Апреля 2017, 12:54 | Сообщение # 5922 |
частый гость
Сейчас нет на сайте
| Raven84, ничем, просто стало интересно Добавлено (28 апреля 2017, 12:54) --------------------------------------------- всем привет. у меня такая ситуация: есть пуля, есть круг. хочу сделать, что бы пуля ударяясь об круг и рикошетила.
как я вижу, как это можно сделать: при столкновении пули с кругом беру point_direction(circle_x, circle_y, bullet_x, bullet_y) получаю угол с точкой столкновения, назовём его A. далее в точке столкновения нужно провести перпендикуляр к углу A, и отразить пулю от него под тем же углом B, под которым она и влетела, с той же скоростью.
вот отсюда вопрос, как я могу провести этот перпендикуляр и организовать отражение от него? и получается, что от четверти, в которой произошло столкновение, зависит - какая компонента скорости будет изменена. как с этим не запутаться?
для наглядности, что я имею ввиду, вот картинка (p.s. встроенная вставка по каким-то причинам у меня не работает) картинка
|
|
| |
OpenGOO | Дата: Суббота, 29 Апреля 2017, 08:50 | Сообщение # 5923 |
почти ветеран
Сейчас нет на сайте
| dildo_bomber, есть уже готовые функции для этого move_bounce_all и move_bounce_solid
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
dildo_bomber | Дата: Вторник, 02 Мая 2017, 12:44 | Сообщение # 5924 |
частый гость
Сейчас нет на сайте
| мув баунс не подходит, потому что один раз его в объекте включив, я не могу отключить. т.е. мне надо, что бы ударившись 1 раз о круг, объект терял свойства отскока и пролетая второй раз через круг уже от него не отскакивал, а просто проходил насквозь. круг я сделал твёрдым и пробовал с move_bouce_solid\ + у меня не просто окружность, у меня круг. баунс работает если круг не двигается и удар прихоидстя по поверхности. если у объекта скорость большая или я резко круг дёргаю, то они застревают.
Сообщение отредактировал dildo_bomber - Вторник, 02 Мая 2017, 13:09 |
|
| |
JohnnyHam | Дата: Вторник, 02 Мая 2017, 16:12 | Сообщение # 5925 |
MadBro
Сейчас нет на сайте
| Попробуй при столкновении пули с шаром задать ей направление, скажем в 90°(вверх) или рандомное. Что насчет прочности: добавь переменную solid=0, и когда пуля сталкивается с шаром, то переменная становится равна 1и при следующем столкновении пуля будет пролетать насквозь
Чем лучше—тем хуже
Сообщение отредактировал JohnnyHam - Вторник, 02 Мая 2017, 16:13 |
|
| |
dildo_bomber | Дата: Вторник, 02 Мая 2017, 17:22 | Сообщение # 5926 |
частый гость
Сейчас нет на сайте
| нет, так не получается. в любом случае, когда у пули появляется свойство отталкивания от твёрдых объектов, она уже не будет их насквозь пролетать. т.е. в моём случае - отлетевшая пуля просто утыкивается к круг и стоит на месте вместе с кругом, пока я не уведу курсор так далеко, что круг уже не будет мешать пуле. тогда он телепортируется под курсор, а она улетает.
а про направление не совсем понял, эт зачем? я баунс и хотел использовать для сложных махинаций с углами отражения. вот если бы можно было отключать свойство типа "!move_bounce_solid()" было бы прекрасно, но так не получается
Сообщение отредактировал dildo_bomber - Вторник, 02 Мая 2017, 17:25 |
|
| |
OpenGOO | Дата: Четверг, 04 Мая 2017, 09:13 | Сообщение # 5927 |
почти ветеран
Сейчас нет на сайте
| dildo_bomber, move_bouce_* это функции, а не свойство экземпляра. Чтобы эта функция вызывалась один раз, нужно в событии Create объекта пули завести переменную и присвоить ей значение true. В месте где проверяется коллизия, надо написать
Код if (имя_переменной) { move_bounce_all(false); имя_переменной = false; }
Если круг нужно двигать, то он не должен быть solid.
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
dildo_bomber | Дата: Четверг, 11 Мая 2017, 10:03 | Сообщение # 5928 |
частый гость
Сейчас нет на сайте
| о, это заработало. но я писал точно такую же конструкцию, только для солид объектов. может поэтому не запахало. пасиб!
|
|
| |
Aliery | Дата: Воскресенье, 21 Мая 2017, 13:47 | Сообщение # 5929 |
уже был
Сейчас нет на сайте
| У меня такой вопрос по коду: Делал инвентарь. Создал сетку из объектов-ячеек. При подборе предмета(столкновения с игроком) идет проверка на позицию ячейки и свободна ли она. Все работает хорошо, но когда инвентарь полон, а свободных ячеек нет, выскакивает соответственная ошибка. Ну я и решил добавить условие(если ячейка не пустая) и "бездействие". Вот код "o_item_parent(Событие столкновения))"
Код with(o_inv_box) { for (i=0; i<10; i+=1) { for (j=0; j<6; j+=1) { if (box[i,j].item ==-1) { if (box[i,j].type == '') { box[i,j].item = other.object_index; box[i,j].sp=other.sp; box[i,j].mana=other.mana; box[i,j].dmg=other.dmg; box[i,j].dis=other.dis; box[i,j].item_type=other.item_type; with(other) {instance_destroy();} exit; } } else if (box[i,j].item != -1){exit;} } } } А это в "o_inv_box(Создание)"
Код item = -1; type = '';
for(i = 0; i < 10; i ++) { for(j = 0; j < 6; j ++) { box[i,j] = instance_position(xstart+view_xview[0],ystart+view_yview[0],o_inv_box); } }
dmg=0; sp=0; mana=0; dis=''; item_type=0;
И что у меня в итоге получается: если оставить код без второго условия, то все предметы подбираются и появляются в инвентаре как надо, а если с условием if (box[i,j].item != -1){exit;}, то предмет, который в первой ячейке является приоритетным, и пока там лежит что-то, то ничего больше не подбирается. Если он пустой, то помещается в первую ячейку и снова ничего не делает. Подскажите как исправить код, пожалуйста
Нашел в чем ошибка, благодаря одному из старых примеров у вас на сайте
Сообщение отредактировал Aliery - Понедельник, 22 Мая 2017, 15:43 |
|
| |
wasterman | Дата: Суббота, 27 Мая 2017, 01:50 | Сообщение # 5930 |
частый гость
Сейчас нет на сайте
| Как при использовании mp_linear_step запретить двигаться по диагонали?
Рок форева! Не графоМан! Холодный космос.
|
|
| |
fishark_print | Дата: Среда, 14 Июня 2017, 11:41 | Сообщение # 5931 |
был не раз
Сейчас нет на сайте
| Добрый день. Подскажите как реализовать управление двумя персонажами в GM. Чтобы пока я управлял одним, второй либо стоял, либо занимался нужными делами. И я мог переключаться между ними. Если можно, дайте ссылку на пример, так как подобного не смог найти. Спасибо
Сообщение отредактировал fishark_print - Среда, 14 Июня 2017, 12:57 |
|
| |
Sparplak | Дата: Воскресенье, 18 Июня 2017, 13:19 | Сообщение # 5932 |
уже был
Сейчас нет на сайте
| Здравствуйте. Мне бы хотелось узнать как в Game maker сделать так, чтобы при нажатии на определенную кнопку (Z) игрок взаимодействовал с находящимся рядом объектом. Например: Obj_Player стоит впритык к Obj_Box Как сделать так,чтобы при нажатии на кнопку Z игрок говорил ("Это коробка"). Я еще новичек,многого не знаю, и если уже задавали подобный вопрос скиньте ссылочку пожалуйста
|
|
| |
AlexanderBekker | Дата: Воскресенье, 18 Июня 2017, 18:10 | Сообщение # 5933 |
BekkerDev Studio
Сейчас нет на сайте
| Sparplak,
Код if (keyboard_check_pressed(ord("Z"))) { xPlace = x + lengthdir_x(10, direction); //10 — расстояние для взаимодействия с объектом yPlace = y + lengthdir_y(10, direction); //direction — направление игрока obj = instance_place(xPlace, yPlace, Obj_Box); if (obj != noone) show_message("Это коробка"); }
Разработчик, композитор и издатель инди-игр в Steam. Редактор карт: BekkerDev Level Editor 4 Страница разработчика в Steam Паблик ВК: BekkerDev Studio
|
|
| |
vampir0305 | Дата: Воскресенье, 18 Июня 2017, 19:51 | Сообщение # 5934 |
Unity C# Programmer
Сейчас нет на сайте
| AlexanderBekker, Зачем так замудрёно? Можно просто проверить расстояние до объекта. В Step игрока:
Код if (keyboard_check_pressed(ord("Z"))) { if (distance_to_object(obj_box) < 32) {show_message("Это коробка")} }
Красочная сюжетно-ориентированная игра-головоломка
Сообщение отредактировал vampir0305 - Воскресенье, 18 Июня 2017, 19:51 |
|
| |
AlexanderBekker | Дата: Воскресенье, 18 Июня 2017, 21:11 | Сообщение # 5935 |
BekkerDev Studio
Сейчас нет на сайте
| vampir0305, ну да, взаимодействовать с объектом, стоя к нему спиной, это очень реалистично.
Разработчик, композитор и издатель инди-игр в Steam. Редактор карт: BekkerDev Level Editor 4 Страница разработчика в Steam Паблик ВК: BekkerDev Studio
|
|
| |
ProsstoBRO | Дата: Вторник, 20 Июня 2017, 21:11 | Сообщение # 5936 |
был не раз
Сейчас нет на сайте
| Всем привет. Кто знает как можно реализовать слежение объекта за объектом, как например в тавер дефенсах?
|
|
| |
Schwards | Дата: Среда, 28 Июня 2017, 12:31 | Сообщение # 5937 |
был не раз
Сейчас нет на сайте
| ProsstoBRO, Надо сделать объект к которому привязан вид. Этот объект должен следить за другими объектами с помощью привязки координат и проверкой на наличии объекта.
Сила есть, воля есть, а силы воли нету. :)
|
|
| |
Christopher | Дата: Среда, 12 Июля 2017, 20:47 | Сообщение # 5938 |
участник
Сейчас нет на сайте
| Цитата ProsstoBRO ( ) слежение объекта за объектом
Код image_angle=point_direction(x,y,object2.x,object2.y);
Сообщение отредактировал Christopher - Среда, 12 Июля 2017, 20:47 |
|
| |
Yakutian_Boy | Дата: Понедельник, 17 Июля 2017, 10:52 | Сообщение # 5939 |
был не раз
Сейчас нет на сайте
| пожалуйста найдите ошибку
if (sprite_index=SprLeft)(sprite_index=mSprLeft) { // if (sprite_index=SprRight)(sprite_index=mSprLeft) { // if (sprite_index=SprRight)(sprite_index=mSprLeft) { // if (sprite_index=SprUp)(sprite_index=mSprLeft) { // if (sprite_index=SprDown)(sprite_index=mSprLeft) { // }
можете сказать где ошибка?
|
|
| |
NekoFox | Дата: Суббота, 22 Июля 2017, 12:59 | Сообщение # 5940 |
был не раз
Сейчас нет на сайте
| Дайте код:
Если прыгнул - поменялся спрайт на "спрайт" Если приземлился - поменялся спрайт на "спрайт" Но чтобы он менялся один раз, до следующего прыжка, позволяя другим спрайтам меняться (при ходьбе, например)
>_>
|
|
| |
|