Вторник, 03 Августа 2021, 19:50

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Вопрос - Ответ (Game Maker) (Будут пополняться)
Вопрос - Ответ (Game Maker)
Fill_FreemanДата: Пятница, 08 Апреля 2016, 10:51 | Сообщение # 5601
почетный гость
Сейчас нет на сайте
Anthem, в GMS нет подобных вещей, насколько я знаю.

Вспоминаются только различные Асинхронные экшены. Но это обычно, если извне что-то..

Насколько мне подсказывает логика, событие по сути и есть "проверка переменной в степе, а не принялали она определенное значение". Просто там где есть события скорее всего это реализовано очень глубоко и нативно, а значит быстрее.


EvklidДата: Суббота, 16 Апреля 2016, 22:58 | Сообщение # 5602
был не раз
Сейчас нет на сайте
Пишу код <if obj_t_aim.image_angle=(от 0 до 10) {sprite_index=spr_t_rifle_stop_right; image_speed=1/3};}> . Как реализовать это (от 0 до 10)?
YellowAfterlifeДата: Воскресенье, 17 Апреля 2016, 04:54 | Сообщение # 5603
Сейчас нет на сайте
Цитата Evklid ()
Пишу код <if obj_t_aim.image_angle=(от 0 до 10) {sprite_index=spr_t_rifle_stop_right; image_speed=1/3};}> . Как реализовать это (от 0 до 10)?

Вариант 1:
Код
if (obj_t_aim.image_angle >= 0 && obj_t_aim.image_angle < 10) ...

Вариант 2: добавить скрипт between
Код
/// between(value, min, max)
return argument0 >= argument1 && argument0 < argument2;

и потом
Код
if (between(obj_t_aim.image_angle, 0, 10)) ...


ASH2Дата: Воскресенье, 17 Апреля 2016, 08:14 | Сообщение # 5604
участник
Сейчас нет на сайте
не подскажете, какая функция захватывает нажатие на кнопки крестовины у xbox контроллера? Все кнопки и стики нашёл, а крестовина что-то так и не обнаружилась :/

Карсон и Питееерс!!!
YellowAfterlifeДата: Воскресенье, 17 Апреля 2016, 15:13 | Сообщение # 5605
Сейчас нет на сайте
Цитата ASH2 ()
не подскажете, какая функция захватывает нажатие на кнопки крестовины у xbox контроллера? Все кнопки и стики нашёл, а крестовина что-то так и не обнаружилась :/

Странно, потому что в справке даже картинка есть:
http://docs.yoyogames.com/source/dadiospice/002_reference/mouse,%20keyboard%20and%20other%20controls/gamepad%20input/index.html
Если обстоятельства (необходимость самоистязаний, например) требуют использования устаревшей на 8 лет версии, то тогда joystick_pov.


ASH2Дата: Воскресенье, 17 Апреля 2016, 16:25 | Сообщение # 5606
участник
Сейчас нет на сайте
YellowAfterlife, хм.. точно. Просто юзал справку на 8.1... Спасибо.

Карсон и Питееерс!!!

Сообщение отредактировал ASH2 - Воскресенье, 17 Апреля 2016, 16:27
snikker2016Дата: Пятница, 22 Апреля 2016, 18:34 | Сообщение # 5607
был не раз
Сейчас нет на сайте
Помогите пожалуйста! Проблема со спрайтами.
Подскажите как сделать что бы при запуске игры начиналась анимация спрайта и до конца игры?
Заранее, спасибо!


Неопытный создатель игр
AnthemДата: Понедельник, 25 Апреля 2016, 00:36 | Сообщение # 5608
Д'Артаньян
Сейчас нет на сайте
Fill_Freeman, спасибо
snikker2016, это делается кодом или изменением параметров листа спрайтов. Чтобы понять, читай справку или смотри видео-уроки

Коллеги, подскажите, как эффективнее всего реализовать проверку следования игрока цепочке действий, например, из 20 штук? Есть что-то более лаконичное 20ти if?


Текстовый контент для вашей игры (бесплатно)
Сценарист, геймдизайнер для Вашей игры
LuxorixДата: Понедельник, 25 Апреля 2016, 10:00 | Сообщение # 5609
постоянный участник
Сейчас нет на сайте
Anthem, как на счет switch?

LUXORIX GAMES
LenarДата: Понедельник, 25 Апреля 2016, 23:08 | Сообщение # 5610
был не раз
Сейчас нет на сайте
Дайте полезные скрипты
AnthemДата: Понедельник, 25 Апреля 2016, 23:59 | Сообщение # 5611
Д'Артаньян
Сейчас нет на сайте
Цитата Luxorix ()
Anthem, как на счет switch?

Возможно, чуть попроще, но все равно же 20 строчек займет


Текстовый контент для вашей игры (бесплатно)
Сценарист, геймдизайнер для Вашей игры
Fill_FreemanДата: Вторник, 26 Апреля 2016, 12:15 | Сообщение # 5612
почетный гость
Сейчас нет на сайте
Anthem, можешь попробовать покопать в сторону enum - https://docs.yoyogames.com/source....es.html

SholarДата: Воскресенье, 01 Мая 2016, 22:36 | Сообщение # 5613
Draw With Me
Сейчас нет на сайте
Есть способы контролировать и изменять яркость/контрастность игры?

https://vk.com/g_sholar
LertmindДата: Понедельник, 02 Мая 2016, 00:22 | Сообщение # 5614
заслуженный участник
Сейчас нет на сайте
Sholar, бесплатные шейдеры https://marketplace.yoyogames.com/assets/261/free-shaders и https://marketplace.yoyogames.com/assets/2483/brightness-shader.
mafon2Дата: Пятница, 06 Мая 2016, 16:59 | Сообщение # 5615
был не раз
Сейчас нет на сайте
Пишу алгоритм для Текучей воды.

Блок воды чекает объекты снизу, если пусто, то создает Блок воды снизу.

Блок воды чекает снизу, если занято, то чекает слева, если пусто, то создает блок воды слева.

Блок воды чекает снизу, если занято, то чекает справа, если пусто, то создает блок воды справа.

В степ поставил следующее:

Код

if (FLOW==0)
{
// Нижний чек
if (!place_meeting(x,y+16, Obj_block) || !place_meeting(x,y+16, Water_flowing))
{
instance_create(x, y+32, Water_flowing);
Water_block_count = Water_block_count + 1;
//FLOW = FLOW+1;
}
// Правый чек
else if (place_meeting(x,y+16, Obj_block) && (!place_meeting(x+16,y, Water_flowing) || !place_meeting(x+16,y, Obj_block)))
{
instance_create(x+32, y, Water_flowing);
Water_block_count = Water_block_count + 1;
//FLOW = FLOW+1;
}

// Левый чек
else if (place_meeting(x,y+16,objBlock) && (!place_meeting(x-16,y, Water_flowing) || !place_meeting(x-16,y, Obj_block)))
{
instance_create(x-32, y, Water_flowing);
Water_block_count = Water_block_count + 1;
//FLOW = FLOW+1;
}
}


------------

В общем, когда включен только нижний чеккинг, она течет вниз, но как надо растечься, то только вправо. Подозреваю, что дело в неправильно оформленном if'е или выбранном "степе". FLOW был введен, как попытка избежать перегруза, из-за которого программа виснет, создав 20 тысяч блоков, хотя видно штук 15. Да, точно, наверное, надо было в "крит". Но крит, в отличие от степа, жалуется на "инфинит луп" + вода теряет текучесть.

Бонусные очки, если подскажите, как замедлить процесс (задать скорость воды), чтобы текучесть не зависела от скорости комнаты.


Сообщение отредактировал mafon2 - Пятница, 06 Мая 2016, 18:24
Fill_FreemanДата: Пятница, 06 Мая 2016, 20:34 | Сообщение # 5616
почетный гость
Сейчас нет на сайте
потому что у тебя левый чек проверяется только если правый занят. Тебе надо их оформить в независимые if

if (!низ занят) течет вниз
else
{
if (!правый чек) течет вправо
if (!левый чек) течет влево
}




Сообщение отредактировал Fill_Freeman - Пятница, 06 Мая 2016, 20:36
mafon2Дата: Суббота, 07 Мая 2016, 00:47 | Сообщение # 5617
был не раз
Сейчас нет на сайте
Спасибо, да, без лишнего else, она течет в обе стороны, но все равно пока что гейммейкер производит бесконечное число водяных блоков, которые вешают "игру". Я замедлил скорость и проследил, что с каждым последующим блоком кол-во созданных блоков увеличивается на порядок. Что-то в роде: 3-15-150-300-1000-...

"FLOW" был поставлен, чтобы после того, как в его копилку упадет единица, он прекращал генерить воду. Сейчас понимаю, что с ним вода раз разлившись, уже не потечет вниз, если уничтожится блок кирпичей. В общем, это бесполезный костыль, который я уберу окончательно, не обращайте на него внимания.

Код

if (FLOW==0)
{
    // Нижний чек
    if (!place_meeting(x,y+16, Obj_block) || !place_meeting(x,y+16, Water_flowing))
    {
    instance_create(x, y+32, Water_flowing);
    Water_block_count = Water_block_count + 1;
    //FLOW = FLOW+1;
    }
        else
        // Чек по сторонам
        {
                // Правый чек
                if (place_meeting(x,y+16, Obj_block) && (!place_meeting(x+16,y, Water_flowing) || !place_meeting(x+16,y, Obj_block)))
                {
                instance_create(x+32, y, Water_flowing);
                Water_block_count = Water_block_count + 1;
                //FLOW = FLOW+1;
                }
                
                // Левый чек
                if (place_meeting(x,y+16, Obj_block) && (!place_meeting(x-16,y, Water_flowing) || !place_meeting(x-16,y, Obj_block)))
                {
                instance_create(x-32, y, Water_flowing);
                Water_block_count = Water_block_count + 1;
                //FLOW = FLOW+1;
                }
        }
// FLOW = FLOW+1;
}




Сообщение отредактировал mafon2 - Суббота, 07 Мая 2016, 00:52
Fill_FreemanДата: Суббота, 07 Мая 2016, 07:26 | Сообщение # 5618
почетный гость
Сейчас нет на сайте
мне кажется у тебя с условиями проблема. Вода течет сама в себя, поэтому такое огромное число инстансов.

if (нет кирпича) ИЛИ (нет воды) - в любом случае будет либо вода либо кирпич. а тебе надо чтобы не было ни воды ни кирпича, поэтому надо использовать И.

Код
if (!place_meeting(x,y+16, Obj_block) && !place_meeting(x,y+16, Water_flowing))


Тоже самое я бы использовал с чеками по сторонам. Зачем тебе проверять наличие кирпича снизу, если ты его уже проверил выше?

Код
if (!place_meeting(x+16,y, Water_flowing) && !place_meeting(x+16,y, Obj_block)) // -> создаем блок справа




Сообщение отредактировал Fill_Freeman - Суббота, 07 Мая 2016, 07:27
FedorgrifДата: Суббота, 07 Мая 2016, 13:46 | Сообщение # 5619
уже был
Сейчас нет на сайте
Нужно, чтобы при создании каждого нового объекта в его координатах появлялся текст из переменной. Я пытался, но максимум - это текст обновляется около самого первого объекта.
mafon2Дата: Суббота, 07 Мая 2016, 17:43 | Сообщение # 5620
был не раз
Сейчас нет на сайте
Цитата Fill_Freeman ()
if (нет кирпича) ИЛИ (нет воды) - в любом случае будет либо вода либо кирпич. а тебе надо чтобы не было ни воды ни кирпича, поэтому надо использовать И.


Черт, ты – гений! Спасибо большое. Я просто, никак не могу разобраться с и / или / последовательностями и т.п. Как бы это просто другим не казалось. Теперь все течет. Пока даже слишком хорошо. Опять, что-то напутал, но я сам разберусь.



Цитата
Нужно, чтобы при создании каждого нового объекта в его координатах появлялся текст из переменной. Я пытался, но максимум - это текст обновляется около самого первого объекта.


Я добавил ивент Draw к моим блокам-кирпичикам и написал: draw_text(x, y-30, "WC:" + string(Water_block_count)); Все выводится и обновляется.

UPD: Разобрался, красота:


Теперь у меня есть два типа воды: всезаполняющая и текучая.


Сообщение отредактировал mafon2 - Суббота, 07 Мая 2016, 18:29
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Вопрос - Ответ (Game Maker) (Будут пополняться)
Поиск:

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