Пятница, 22 Ноября 2024, 14:18

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (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
был не раз
Сейчас нет на сайте
Дайте код:

Если прыгнул - поменялся спрайт на "спрайт"
Если приземлился - поменялся спрайт на "спрайт"
Но чтобы он менялся один раз, до следующего прыжка, позволяя другим спрайтам меняться (при ходьбе, например)


>_>
Поиск:

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