Суббота, 25 Июня 2022, 00:53

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Форум игроделов » Записи участника » Overdrave [47]
Результаты поиска
OverdraveДата: Вторник, 14 Апреля 2015, 15:10 | Сообщение # 1 | Тема: Ещё один вопрос по уровням сложности.
частый гость
Сейчас нет на сайте
Легче присваивать соответствующие числа - легче при записи кода.
Эх, помню, как сам делал такое в скролл-шутере. В зависимости от уровня сложности изменялся тип врагов, траектория их полёта, место и количество, в котором они спавнились, их скорость, точность, количество пуль (даже их цвет и траектория!), бэкграунд, количество хп, поведение и сложность босса и прочее. Всё реализовывалось через переменную diff, но не так, как здесь описано, а формулами в Create, типа
Код
maxhp=4+2*diff

или
Код
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.
Форум игроделов » Записи участника » Overdrave [47]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:

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