Вопрос - Ответ (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
|
|
| | |
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 |
|
| |
|