Результаты поиска
| |
AHTOXA82 | Дата: Вторник, 05 Ноября 2013, 06:52 | Сообщение # 21 | Тема: Цветные полоски в режиме отладки. |
частый гость
Сейчас нет на сайте
| А если беграунд очень большой, ну скажем 4000x4000 имеет смысл его разрезать на части? И вот еще. В вашем примере беграунд был 854*480. Допустим мы выставили пакет 1024*1024, т.е. больший по размерам чем беграунд. Это нам гарантирует, что беграунд не будет уменьшен? Не получится ли так, что например на текстурном пакете студия разместит несколько спрайтов, а потом вздумает туда же запихнуть наш беграунд, и поскольку места для него уже не останется, ей придется его сжать в 2 или более раз?
|
|
| |
AHTOXA82 | Дата: Понедельник, 04 Ноября 2013, 22:00 | Сообщение # 22 | Тема: Цветные полоски в режиме отладки. |
частый гость
Сейчас нет на сайте
| Благодарствую за столь подробный ответ. Более-менее разобрался. Последний вопрос. Какой размер пакета посоветуете выставить для оптимального проигрывания на андроиде? Я так понимаю, и очень маленький плохо и очень большой плохо.
|
|
| |
AHTOXA82 | Дата: Воскресенье, 03 Ноября 2013, 07:39 | Сообщение # 23 | Тема: Цветные полоски в режиме отладки. |
частый гость
Сейчас нет на сайте
| Ого! Сколько важнейшей информации я сейчас узнал, это важнее даже чем цвета отладчика. Поставил бы сто плюсов, если бы мог. Однако, вопросов стало еще больше.
1) В моем примере после фпс две цифры (4) и (6). Я правильно понимаю, что 4 -то значит с четырех страниц (текстурных пакетов) считываются спрайты, а 6 - это значит, что 6 предметов (назовем их так) отрисовываются с событии драв (это могут быть фигуры, спрайты, сурфейсы)?
2) Если у меня 10 текстурных пакетов, а задействовано в данный момент 3 (т.е. спрайты, находящиеся на остальных 7 пакетах не используются в данный момент в комнате), то первая цифра будет 3?
3) Почему в пустой комнате эти цифры не равны нулям (они обе равны единицам). Я еще с грехом пополам могу понять почему первая не равна нулю (ну, вроде как текстурные страницы все равно загружаются в видеопамять, даже если они пустые), но вот что там отрисовывается в пустой-то комнате, непонятно.
4) Возникает логичный вопрос. Предположим в глобальных настройках игры мы поставили размер текстурного пакета 256x256, разместили все наши спрайты на 4-х пакетах, и у нас во время игры задействовано все 4 таких пакета. В другом случае мы поставили размер пакета 512x512, что по площади (а значит и по количеству пикселей) в 4 раза больше чем в предыдущем примере. Мы разместили все наши спрайты на одном пакете и во время игры задействован он один. Одинакова ли будет загрузка процессора?
5) В справке гмс написано, что студия нерационально использует текстурные пакеты и их надо самому создавать. А как вручную разместить спрайты на текстурных пакетах? И еще тут же. Когда я нажимаю глобальные настройки игры -> виндовс -> графика -> текстурные пакеты (посмотреть) у меня вылезает ОДИН текстурный пакет (или это не текстурный пакет?) со всеми моими спрайтами. Почему тогда в режиме отладки первая цифра равна 4?
6) И последний вопрос. В справке написано, что текстурные пакеты загружаются фонами, тайлами и спрайтами. Но вот я проверил, если выключить отрисовку сурфейса, то почему-то количество пакетов уменьшается. В справке забыли написать что сурфейсы тоже отрисовываются на пакетах или я что-то путаю? Интересно, что при попытке увеличить размер сурфейса (я его сильно увеличил) количество задействованных пакетов не поменялось.
|
|
| |
AHTOXA82 | Дата: Воскресенье, 03 Ноября 2013, 04:15 | Сообщение # 24 | Тема: Цветные полоски в режиме отладки. |
частый гость
Сейчас нет на сайте
| Цитата Overbotex ( ) Полагаю первая цифра означает, сколько было обращений к текстурным пакетам в течение одного степа. А вторая сколько собранных полотен (или регионов) было отправлено в видеопамять. Тут не совсем понятно, что такое текстурные пакеты и что такое полотна? Не могли бы вы привести примеры, которые увеличивали бы первую цифру и вторую.
И еще вопрос, если можно. На моем скриншоте видно, что там отсутствует белая полоса (которая означает сколько памяти еще можно задействовать, чтобы фпс не просел). Я сейчас вспоминаю, что эту полосы я видел всего раз или два. Причем не на компьютере, а на планшете, который гораздо слабее. Почему так происходит, почему на достаточно мощном компе нет белой полосы? Вариант что он загружен по максимуму не подходит. В моем примере (тот, что на картинке во втором посте) скорость комнаты была 60, значит шаг длится ровно до белой отметки. Там еще куча свободного места.
|
|
| |
AHTOXA82 | Дата: Суббота, 02 Ноября 2013, 21:08 | Сообщение # 25 | Тема: Цветные полоски в режиме отладки. |
частый гость
Сейчас нет на сайте
| Благодарю за ответ. Только вот эти цвета работают на студии 1.2? Просто я видел описание отладчика в справке, так там только про три цвета говориться. Еще вопрос - что означают цифры в скобках после значения фпс? см. Ну и логичный вопрос - если у меня в игре, например событие клавиатуры очень загружено, а событие шага нет, сэкономлю ли я на нагрузке процессора, если закину событие клавиатуры в событие шага? По логике нет, но мало ли. Не просто же так создатели гмс сделали столько много разных цветов. У меня например в программах часто событие нажатия кнопки стоит в шаге, может не стоит этого делать, а выводить отдельно в событие клавиатуры?
|
|
| |
AHTOXA82 | Дата: Пятница, 01 Ноября 2013, 20:47 | Сообщение # 26 | Тема: Цветные полоски в режиме отладки. |
частый гость
Сейчас нет на сайте
| Здравствуйте. Хотел спросить, что означают цветные линии в верхнем левом углу режима отладки в GMS? В справке прочитал, что вроде как красная - это время на обработку шага, желтая - время на отрисовку всего в комнату, а белая как-то связана с видеокартой. Т.е. основная идея понятна, чем длиннее полоски, тем сильнее загружен комп. Но хотелось бы поподробней узнать. Если можно, приведите по 2-3 примера, которые будут сильно нагружать каждый цвет.
|
|
| |
AHTOXA82 | Дата: Вторник, 16 Апреля 2013, 21:03 | Сообщение # 27 | Тема: размер окна в режиме отладки |
частый гость
Сейчас нет на сайте
| Цитата (Luxorix) А если нужно менять переменные на ходу А как менять переменные на ходу?
|
|
| |
AHTOXA82 | Дата: Суббота, 13 Апреля 2013, 21:54 | Сообщение # 28 | Тема: размер окна в режиме отладки |
частый гость
Сейчас нет на сайте
| Здаравствуйте. В Game Maker ужасно неудобная работа в режиме отладки. Проблема в том, что окно игры и окно отладчика активируются по очереди. Т.е. когда активно окно отладки игра останавливается, а когда работает игра, вводить данные в отладчик невозможно. В восьмой версии с этим еще можно был как-то мириться, но вот в Game Maker Studio размер окна отладки занимает 60% площади экрана монитора и работать стало совсем невозможно. Окно можно уменьшить, но пока я это делаю игра уже немного продвинется вперед, а если сбросить комнату на начало, то размер окна отладчика возвращается на исходный (большой). Может быть непонятно объяснил, прилагаю скрин http://zalil.ru/34436132. Подскажите кто знает, как уменьшить размер окна отладчика под тот, который мне нужен.
|
|
| |
AHTOXA82 | Дата: Воскресенье, 24 Марта 2013, 22:08 | Сообщение # 29 | Тема: Отрисовка траектории |
частый гость
Сейчас нет на сайте
| Удивительно, но до сих пор не было таких вопросов. Как нарисовать траекторию баллистического движения тела? Вроде все просто кажется, а когда начинаешь соваться получается не очень весело. Суть такая, у меня из пушки вылетает ядро (камень, стрела, мяч… все что угодно). Надо нарисовать траекторию движения этого тела, причем сделать это двумя способами: 1) Отрисовка траектории на лету (т.е. ядро летит, а за ним остается след) 2) Отрисовка траектории до выстрела (т.е. я направил пушку под определенным углом, задал скорость и уже пунктиром высвечивается будущая траектория) Т.е. нужно именно рисовать/отображать траекторию, а не писать код чтобы ядро так двигалось. Один вариант я все-таки придумал, это использовать частицы. Таким образом можно реализовать первый пункт. Недостаток этого варианта в том, что частицы жрут много памяти. Кроме того, частицы появляются через равные промежутки времени, и когда ядро летит быстро расстояние между точками траектории становиться больше (см. рис). Выглядит это некрасиво. Экспериментировал с формой частиц стало еще хуже. При реализации первого пункта проблема заключается в следующем. Написать код для траектории вроде несложно: draw_line(o_jadro.xprevious,o_jadro.yprevious,o_jadro.x,o_jadro.y) И засунуть его в степ. Т.е. он будет в каждом шаге отрисовывать маленькую черточку, из которых потом будет складываться большая линия. Проблема в том, что когда программа рисует вторую черту первая стирается! Т.е. мой вопрос фактически звучит так: как заставить фигуры, нарисованные в предыдущем шаге стираться не автоматически, а когда я этого захочу? Что касается второго пункта (это где надо заранее знать, как будет двигаться объект), то тут вообще у меня версий нет. Я хорошо знаю физику и математику, знаю баллистику, знаю как будет двигаться ядро и от чего зависит его полет. Но как все это нарисовать?! В гейм мейкер нет функции отрисовки математических функций. Здесь нельзя нарисовать параболу или гиперболу. Как же быть? Не работал ранее с путями, хотел как-то присобачить функцию draw_path(path,x,y,absolute) Первый пункт с ней сделать не получится точно, поскольку тут надо заранее знать траекторию. А второй можно еще подумать. Также не работал с сурфейсами (вообще не очень пока понимаю что это такое) может они как-то помогут? Хотя из того, что понял из справки не особо они помогут. Вот такие проблемы у меня. Подсказываейте. не разобрался как картинки вставлять: http://zalil.ru/34377741
Сообщение отредактировал AHTOXA82 - Воскресенье, 24 Марта 2013, 22:13 |
|
| |
AHTOXA82 | Дата: Воскресенье, 03 Марта 2013, 03:54 | Сообщение # 30 | Тема: Как заставить генератор работать при рестарте |
частый гость
Сейчас нет на сайте
| Блин, ну вот все перепробовал казалось уже, а оказывается вон оно как все решалось. Спасибо Farcuat. Ошибка моя заключалась в том, что я не удалял тип частиц. На самом деле, в приведенном тобой коде можно даже систему не удалять только тип, все работает. А я наоборот пытался удалять генераторы, системы, очищал их и т.д. Но все же, объясните мне что происходит-то? Почему надо тип удалять, что он вообще делает этот тип, зачем он нужен? Я сейчас уже вообще ничерта не понимаю. Чем отличается тип частиц, система и генератор? Как я думал. Тип задает спрайт, форму, размер, начальные кинематические параметры частиц. Т.е. это по идее менять не нужно, если в моей игре частицы будут оставаться теми же. Система нужна для того, чтобы в ней эти частицы создавались. Т.е. это как-бы среда для образования частиц. Генератор создает частицы. На самом деле я не понимаю разницы между генератором и системой. Создавать частицы можно и без генератора, есть функция
part_particles_create(ind,x,y,parttype,number)
которая похожа на
part_emitter_burst(ps,ind,parttype,number)
Расскажите, пожалуйста, кто хорошо в этом разбирается.
|
|
| |
AHTOXA82 | Дата: Суббота, 02 Марта 2013, 20:59 | Сообщение # 31 | Тема: Как заставить генератор работать при рестарте |
частый гость
Сейчас нет на сайте
| Пять дней не могу разобраться с частицами, будь они не ладны. Ситуация вроде простая. Мне нужно чтобы: 1) генератор частиц был привязан к некому объекту (т.е. двигался вместе с ним); 2) генератор, при наступлении определенного события, начинал генерировать частицы при переходе в другую комнату. С первой проблемой я справился, но вот со второй не знаю что делать. Чтобы вопрос мой был более контретным разберем пример. Создаю два объекта: 1)object0 движущийся объект из которого будут вылетать частицы (в моем примере это бомба); 2) object3 объект - контроллер, который мы делаем постоянным(у меня это шахматная фигура) В событии создания контроллера прописываю:
sist = part_system_create() //создать систему частиц tip =part_type_create() //тут задаем тип (в общем-то неважно что здесь будет) part_type_shape(tip,pt_shape_pixel) part_type_size(tip,0.5,1,0,0) part_type_color_rgb(tip,158,158,120,120,20,20) part_type_blend(tip,0) part_type_life(tip,10,30) part_type_speed(tip,1,2,0,0) part_type_direction(tip,90,90,0,0)
gen = part_emitter_create(sist)//задаем генератор
Т.е. мы создали систему в которой будут создаваться частицы, задали этим частицам тип и создали генератор. Это, напомню все в событии создания объекта-контроллера. Теперь в собитии шага подвижного объета прописываем:
hspeed=1 //чтобы объект двигался
part_emitter_region(object3.sist,object3.tip,x,x+32,y,y,ps_shape_rectangle,ps_distr_linear) //самая проблемная функия. Здесь задается положение и форма площади, в которой будут генерироваться частицы part_emitter_burst(object3.sist,object3.gen,object3.tip,1) //тут определяется частицы какого типа будут генерироваться и в каком количестве
Этот метод описан на одном форуме, и все постоянно ссылаются на него. Суть в том, что в одном объекте мы создаем систему и генератор, а во втром задаем что этот генератор должен генерировать и в каком количестве.
В чем собственно вопрос? Если запустить игру в режиме редактирования, то при нажании рестатра частицы перестают генерироваться. Вопрос - почему? Проблема, собственно, заключается в том что то же самое происходит при переходе в другую комнату, несмотря на то, что объект-контроллер у меня постоянный.
Исходник: http://zalil.ru/34311095
|
|
| |
AHTOXA82 | Дата: Суббота, 23 Февраля 2013, 05:51 | Сообщение # 32 | Тема: Мои вопросы по созданию коммерческих игр. |
частый гость
Сейчас нет на сайте
| Вот сейчас прочитал и подумал про четвертый пункт: Цитата (Dragon6) 4.Если у меня крякнутая ОС, то я могу делать коммерческие проекты? Тут речь идет о крякнутой Windows, я правильно понял? А разве можно вообще как-нибудь узнать, сделана игра на лицензионной ОС или нет? Я вот делаю игру на Гейм Мейкер, но ОС у меня конечно крякнутая, это можно определить по исходникам?
|
|
| |
AHTOXA82 | Дата: Среда, 20 Февраля 2013, 18:22 | Сообщение # 33 | Тема: Помогите разобраться с циклом for |
частый гость
Сейчас нет на сайте
| Да, Xeno17, действительно. Большое спасибо. Я не слишком разбираюсь в гм, так что для меня это было новостью. Странно, я думал что событие выполняется для объекта, в котором это событие совершается, а оказывается для экземпляров. Интересно, это правило выполняется для всех событий? Т.е. не только для события клавиатуры, но и события шага например тоже?
Сообщение отредактировал AHTOXA82 - Среда, 20 Февраля 2013, 18:31 |
|
| |
AHTOXA82 | Дата: Вторник, 19 Февраля 2013, 21:38 | Сообщение # 34 | Тема: Помогите разобраться с циклом for |
частый гость
Сейчас нет на сайте
| Преветствую. Помогите разобраться с таким вот примером. в событии клавиатуры пишу код: for (n1=1; n1<=instance_number(object0); n1+=1) { if (instance_find(object0,n1-1)).y < 240 { (instance_find(object0,n1-1)).y += 20 } } По идее он должен работать так: 1) присваиваем n1=1; 2) проверяем, меньше ли n1 общего количества экземпляров объекта object0; 3) выполняем тело цикла, а именно: в случае, если координата y экземпляра с номером n1-1 меньше 240, мы опускаем этот экземляр по вертикали на 20 пикселей, а если координата больше или равна 240, то ничего не делаем; 4) потом прибавляем к n1 единицу, проверяем неравенство и все повторяем. Как я думаю, результат должен быть таким: все экземпляры выше уровня 240 должны сдвинуться на 20 пикселей вниз, а все экземляры ниже, должны остаться на месте. По факту происходит не так. Все экземляры выше уровня 240 опускаются до тех пор, пока их координата по вертикали не будет больше 240 ( т.е. пока не перестанет выполняться условие (instance_find(object0,n1-1)).y < 240) Почему так происходит?
Залил иходник сюда http://zalil.ru/34276708
Сообщение отредактировал AHTOXA82 - Вторник, 19 Февраля 2013, 21:54 |
|
| |
|