Результаты поиска
| |
Overdrave | Дата: Вторник, 14 Апреля 2015, 15:10 | Сообщение # 1 | Тема: Ещё один вопрос по уровням сложности. |
частый гость
Сейчас нет на сайте
| Легче присваивать соответствующие числа - легче при записи кода. Эх, помню, как сам делал такое в скролл-шутере. В зависимости от уровня сложности изменялся тип врагов, траектория их полёта, место и количество, в котором они спавнились, их скорость, точность, количество пуль (даже их цвет и траектория!), бэкграунд, количество хп, поведение и сложность босса и прочее. Всё реализовывалось через переменную diff, но не так, как здесь описано, а формулами в Create, типа или Код for (i=1;i<=2+diff;i++) with(instance_create(x,y,e_bullet)) { speed=7+diff-i*1.5 ... }
|
|
| |
Overdrave | Дата: Понедельник, 09 Марта 2015, 10:14 | Сообщение # 2 | Тема: Из строки в константу |
частый гость
Сейчас нет на сайте
| Не понимаю, как может использовать "именно такой" способ. Может, лучше всё распишешь в подробностях, для чего тебе это так надо, а мы все вместе подумаем?
|
|
| |
Overdrave | Дата: Воскресенье, 08 Марта 2015, 22:52 | Сообщение # 3 | Тема: Плавное исчезновение букв |
частый гость
Сейчас нет на сайте
| В паскале переменная строчного типа может представляться как массив символьного типа. Не знаю, так ли это в Гамаке, но мало ли... Если так, то, думаю, надо будет через draw прорисовывать каждую букву по отдельности (через циклы, конечно, если вы не мазохист), ввести две переменные (для номера буквы, которая исчезает в данный момент и альфа исчезающей буквы), а во время исчезновения уменьшать вторую переменную (отвечающую за альфу исчезающей буквы), и, когда она будет равна нулю, увеличивать первую переменную (номер исчезающей буквы) на единицу.
|
|
| |
Overdrave | Дата: Воскресенье, 01 Марта 2015, 20:15 | Сообщение # 4 | Тема: Помогите со звуком при перезарядке! |
частый гость
Сейчас нет на сайте
| А нельзя ли просто запускать звук вместе с выстрелом? Т.е. запихнуть его в тот же блок. Как я понял, у тебя проигрывание звука зависит только от нажатия левой кнопкой мыши, а должно зависеть от тех же условий, что и событие выстрела, т.е. звук должен проигрываться раз в пять секунд.
|
|
| |
Overdrave | Дата: Пятница, 20 Февраля 2015, 23:47 | Сообщение # 5 | Тема: проблема с направлением оружия |
частый гость
Сейчас нет на сайте
| 1)Поставь центр спрайта в точку соединения рукояти и ствола 2)Высчитывай x и y таким образом (перед этим лучше создавать объект оружия строго там, где оно должно стоять): Код x=[старый x, куда раньше "крепилась" рукоять]+lengthdir_x([длина рукояти],point_direction(x,y,mouse_x,mouse_y)+90) y=[старый y, куда раньше "крепилась" рукоять]+lengthdir_y([длина рукояти],point_direction(x,y,mouse_x,mouse_y)+90)
Сообщение отредактировал Overdrave - Суббота, 21 Февраля 2015, 08:06 |
|
| |
Overdrave | Дата: Вторник, 03 Февраля 2015, 13:11 | Сообщение # 6 | Тема: Комбинация клавиш и событие?! |
частый гость
Сейчас нет на сайте
| Просто задай в степе какого-либо постоянно существующего объекта условия комбинации. Используй keyboard_check(клавиша). Если надо, чтобы в комбинации использовались клавиши букв, то в скобках надо вводить, например, ord('A').
Пример: Код if keyboard_check(vk_shift) and keyboard_check(ord('D')) show message('Вы нажали кнопку D и Shift одновременно. Вопрос: зачем? =\')
P.S: Справка с указателем - действительно клёвая вещь. Используй почаще. P.S.S: И да, я не знаю, есть ли это в GM8, но аналоги должны быть точно.
|
|
| |
Overdrave | Дата: Воскресенье, 16 Ноября 2014, 19:43 | Сообщение # 7 | Тема: Вопрос по активации и деактивации инстантов. |
частый гость
Сейчас нет на сайте
| Циклы для слабаков? |D У меня в игре объект (gui_chest), содержащий айтемы объекта сундука (chest) и представляющий из себя сетку 5х6 из объектов o_case, записанных в массив, создавался с комнатой и был невидим. Любые действия с объектом (gui_chest) имели проверку на видимость (т.е. с этим объектом нельзя было взаимодействовать, пока он невидим) При "открытии" сундука (т.е. когда персонаж подходил к сундуку (chest) и нажимал Enter) этот объект (gui_chest) "заполнялся" айтемами из сундука и становился видимым. Объект сундука синхронизировался с объектом "показа" сундука (gui_chest), т.е.когда игрок вытаскивал что-либо из сундука, то соответствующие изменения происходили и в сундуке (chest). При закрытии сундука "связь" обрывалась, а объект отображения (gui_chest) снова становился невидимым.
Если собираешься сохранять свой способ с активацией/деактивацией, то почему бы просто не деактивировать все эти объекты вручную сразу после их активации?
|
|
| |
Overdrave | Дата: Воскресенье, 16 Ноября 2014, 13:06 | Сообщение # 8 | Тема: Скролл |
частый гость
Сейчас нет на сайте
| 1)Есть объект инвентаря, который отрисовывает сурфейс. 2)У инвентаря есть некая переменная scroll 3)Есть объект-ползунок, при передвижении которого меняется переменная scroll (могу расписать подробнее) 4)Есть объекты сетки инвентаря, которые отрисовываются только на сурфейс и положение которых зависит от переменной scroll 5)Эти объекты сетки инвентаря не кликабельны, если они вне зоны сурфейсаДобавлено (16.11.2014, 13:06) --------------------------------------------- https://dl.dropboxusercontent.com/u/86890183/scroll_demo.gmx.rar Сделал небольшой косой примерчик. Да, он очень косой и требует доработки.
|
|
| |
Overdrave | Дата: Воскресенье, 20 Июля 2014, 23:06 | Сообщение # 9 | Тема: Тайлы, вода, фпс. |
частый гость
Сейчас нет на сайте
| XDominator, прикол в том, что в тестируемой комнате всего три объекта: временный объект для вбивания глобальных переменных, персонаж и вот этот самый объект для отрисовки воды (весь его код я уже скинул. В create и step лишь части в две строчки для анимации). Кстати, сейчас попробовал поменять строкиКод for (i=view_xview;i<=view_xview+view_wview;i+=32) { for (j=view_yview;j<=view_yview+view_hview;j+=32) ... Что очень хорошо сказалось на производительности. Казалось бы, дело в шляпе, ан нет, когда выходишь к большому водоёму всё равно начинаются проседания (впрочем, всего лишь до 30 фпс, хотя это 50% от общей скорости игры)
===================================================================================== UPD: Проблема, вроде, решилась, причём настолько глупым способом... Похоже, вся нагрузка была из-за того, что циклу приходилось возвращать слишком много значений тайлов, так что строку Код if tile_layer_find(100, i+1, j+1)=-1 я попросту вырезал, тем самым позволив воде рисоваться всегда, но под тайлами, на слой ниже. Лаги, вроде, исчезли. XDominator, напомни мне через 6 дней, чтобы я тебе плюсик поставил, а то пока сайт не даёт |D
Сообщение отредактировал Overdrave - Понедельник, 21 Июля 2014, 11:06 |
|
| |
Overdrave | Дата: Воскресенье, 20 Июля 2014, 22:44 | Сообщение # 10 | Тема: Тайлы, вода, фпс. |
частый гость
Сейчас нет на сайте
| XDominator, хорошо, попробую |D И всё-таки, от чего могут быть проседания фпс? Проверка тайлов идёт лишь в пределах видимого (отрисовка, соответсвенно, тоже), но при их [тайлов] общем увеличении начинает лагать сильнее, причём меньше лагает в левой части карты и по нарастанию в сторону воды. Хотя если тайлов мало, то одна лишь вода ВОВСЕ не сбивает фпс (держатся стабильные 60 фпс). Это всё очень странно...
|
|
| |
Overdrave | Дата: Воскресенье, 20 Июля 2014, 22:14 | Сообщение # 11 | Тема: Тайлы, вода, фпс. |
частый гость
Сейчас нет на сайте
| XDominator, я думал об этом, но тогда ведь этот сурфейс и его содержимое будет двигаться вместе с персонажем (другое дело - обновлять сурфейс и его содержимое, но так, опять-таки, лучше не станет), а если делать его размером с комнату ничего хорошего не выйдет. И что значит "всю воду не развернуть в 1 спрайт, размером в 2-3 отрисовки"?
Я ещё забыл уточнить, что пытался делать тайлы, находящиеся слишком далеко от меня, невидимыми, но лучше не стало (впрочем, я не уверен, что это вообще работало).
|
|
| |
Overdrave | Дата: Воскресенье, 20 Июля 2014, 19:46 | Сообщение # 12 | Тема: Тайлы, вода, фпс. |
частый гость
Сейчас нет на сайте
| Есть комната размером 6400 на 4800 пикселей (да, довольно большая, но так надо) Вся нижняя половина заполнена тайлами травы (на 100-ой глубине, разумеется). Есть объект, проверяющий через цикл, есть ли в определённых местах тайл. Если нет, то рисует спрайт воды. Этот цикл у него работает в определённом диапазоне (в зависимости от местоположения камеры), т.е. в другом конце карты спрайты воды не отрисовываются (по крайней мере, не должны).
Тесты дали такие результаты (комнаты такого же огроменного размера): 1)Комната без каких-либо тайлов, с объектом создания воды. ФПС: 60 2)Комната с заполненным тайлами видом (т.е. воды вовсе не видно, зелёная травка на весь экран), с объектом создания воды. ФПС: 60 3)На половину заполнена тайлами, с объектом создания воды. ФПС: 15-55 в разных кусках карты (по убыванию фпс: слева-снизу на право-вверх), что очень странно. 4)На половину заполнена тайлами, БЕЗ объекта создания воды. ФПС: 60 (!!!)
Код в Draw объекта, который рисует воду: Код for (i=view_xview-128;i<=view_xview+view_wview+128;i+=32) { for (j=view_yview-128;j<=view_yview+view_hview+128;j+=32) { if tile_layer_find(100, i+1, j+1)=-1 { switch(anim div 1) { case 1: draw_sprite_part(sprite_index, image_index, 32*1, 64, 32, 32, i div 32 * 32, j div 32 * 32); break; case 2: draw_sprite_part(sprite_index, image_index, 32*4, 64, 32, 32, i div 32 * 32, j div 32 * 32);break; case 3: draw_sprite_part(sprite_index, image_index, 32*7, 64, 32, 32, i div 32 * 32, j div 32 * 32);break; case 4: draw_sprite_part(sprite_index, image_index, 32*10, 64, 32, 32, i div 32 * 32, j div 32 * 32);break; }} } } Как можете заметить, берутся куски спрайта (тайлсет, загруженный как спрайт)
Вопрос: как избавиться от проседания фпс (анимированную воду нужно оставить)?
|
|
| |
Overdrave | Дата: Понедельник, 07 Июля 2014, 23:01 | Сообщение # 13 | Тема: Анимация тайлов |
частый гость
Сейчас нет на сайте
| HaGe, тогда такой вопрос: Сильно ли нагружает систему процесс прорисовки спрайта (в отличии от тайла)? Я знаю, что ГМС ведёт себя не очень, когда ему приходится растягивать изображения (например, используя image_xscale=-1 или image_yscale=4). Ещё, верно ли утверждение, что чем больше объект (его маска), тем больше его "нагрузка на систему", если его visible=false? Звучит, как по мне, глупо, но мало-ли? И в довершение, есть ли оператор, проверяющий наличие тайла в точке?
|
|
| |
Overdrave | Дата: Среда, 02 Июля 2014, 12:57 | Сообщение # 14 | Тема: Анимация тайлов |
частый гость
Сейчас нет на сайте
| Стало нужным сделать обыкновенную анимированную воду через тайлы. Была идея сделать через бэкграунды, но я её пока отложил.
Не могли бы вы показать, как это сделать на примере этого тайлсета?
|
|
| |
Overdrave | Дата: Вторник, 24 Июня 2014, 15:41 | Сообщение # 15 | Тема: Привязывание к персонажу |
частый гость
Сейчас нет на сайте
| XDominator, Если записывать привязку не в степ, а в энд степ, отставания не будет. А человеку, который не знает, как банальную привязку делать, про draw пока говорить чуть-чуть рановато.
|
|
| |
Overdrave | Дата: Понедельник, 23 Июня 2014, 13:32 | Сообщение # 16 | Тема: Привязывание к персонажу |
частый гость
Сейчас нет на сайте
| И осторожнее с самим объектом игрока! Если ты удаляешь игрока через instance_destroy() (например, в случае его смерти), то пистолет также следует удалять, иначе он попытается считывать несуществующие координаты (как итог - крах).
|
|
| |
Overdrave | Дата: Воскресенье, 22 Июня 2014, 12:18 | Сообщение # 17 | Тема: Art Money и Game Maker |
частый гость
Сейчас нет на сайте
| Цитата Danilichk ( ) Мне нужно взломать мою игру, а не могу Для чего может понадобиться взломать свою игру? Если для дебага (ну, проверить значение переменной), то есть возможность запуска игры в режиме, собственно, дебага.
|
|
| |
Overdrave | Дата: Пятница, 20 Июня 2014, 18:59 | Сообщение # 18 | Тема: Движение блока в свободное пространство |
частый гость
Сейчас нет на сайте
| Картинку перезалей. Не знаю, как у других, а у меня не отображается.
|
|
| |
Overdrave | Дата: Пятница, 20 Июня 2014, 09:49 | Сообщение # 19 | Тема: Некоторые проблемы в Game maker (стрельба, инвентарь) |
частый гость
Сейчас нет на сайте
| С оружием лишь одна версия - русские буквы не принимает. Я когда диалоги НПСам прописывал русскими буквами в переменную, у меня выводило только знаки препинания. Попробуй заменить "Пистолет" на "Pistol".
С инвентарем, похоже, тоже самое.
Задам знающим людям вопрос: как и вообще возможно ли вбивать русские буквы в переменные?
|
|
| |
Overdrave | Дата: Среда, 18 Июня 2014, 10:27 | Сообщение # 20 | Тема: Трение в gms. |
частый гость
Сейчас нет на сайте
| XDominator, прошу прощения, не знаю, как у вас в ГМ 8, но в ГМС ведь скорость - это отдельная величина, означающая изменение координат за один шаг в определенном направлении. Когда скорость равна, например, 10, hspeed и vspeed могут оставаться нулевыми, т.е. на эти величины изменение speed никакого влияния не несет. Получается, что friction влияет именно на speed.
|
|
| |
|