Insomnia

Chessformer

Telepath Tactics

SomethingXD

Инди-подборка… уже двадцатая?!

Избранное пользователя

С гуями: var texture = ScreenCapture.CaptureScreenshotAsTexture();

Без интерфеса можно через рендер текстуру картинку захватить, так чуть больше строчек кода получится конечно. Или через тот же ScreenCapture и вырубать интерфейс за кадр до снятия скриншота.

Пользуясь случаем, хочу сказать, что есть еще литература и даже на русском (но не утверждаю, что ее полезно и обязательно читать, особенно новичкам)
Шаблоны игрового программирования

Возможно найдёшь что-нибудь в играх на Ludum Dare 38

Хочу как-нибудь воспользоваться тем, что у меня имеется локальный архив понравившихся игрушек и написать на Гамин подборку того, мимо чего тут прошли. Вот эта игра точно там будет. Постоянно нужно возвращаться, так ещё и концовок уйма.

дверь можно будет открыть не только ключом, но и взорвать

Ну, есть исключения всё же... Stacking например. Там много способов, найти их все - даже челендж.

Что это значит?

Какие папки заводить и как хранить ассеты. Конечно, никто не мешает делать так же как было и ГМС2.3 даже предлагает по умолчанию такую структуру.

rygPHjz

Я только начал делать проект, а без фильтров по типу ресурсов это выглядит как форменный пиздец. БЫло бы переключение фильтров быстрым действием(по шорткату или одной кнопки) - я бы по-другому на это всё смотрел.

Спорный плюс. Раньше можно было зайти в первую комнату и там посмотреть в Creation Code, либо в конкретный скрипт инициализации Всего. А теперь ищи-свищи по ВСЕМ скриптам проектам, что ты там где инициализировал и не пересеклись ли имена ещё между собой незапланированно.

Раньше тоже было спорно. Я, например часто комнаты дублирую, а в GMS2 ещё и наследую. Мне нахер не сдался там код, который должен вызываться один раз за всю игру, а именно - на старте. Кроме того лезть в creation code дико неудобно. Именно потому я его последний раз использовал лет 6 назад.

Такое было?!

Да, в GMS2.2 можно драг-н-дропом объекты из панели ресурсов переносить в список событий чтобы автоматом создать событие столкновения с ним. Можешь даже в GMS7dev это проверить.

Приведи пример, непонятно.

Я сам не очень понимаю пока чем это чревато. Могу привести цитату из обновления пока что

uLKV9ng

По логике other.myVar должно вроде прокатить, т.к. other содержит в себе структуру. Лично я всегда использовал второй вариант, т.к. считал что other - это что-то типа ссылки на объект и мне в любом случае нужно брать id чтобы не профакапиться.

Или self.id если тебе нравится использовать self.

С хуя ли это сюрприз? Справку читал?

HhCUTtT

self можно использовать только для адресации локальных переменных, т.е. реально
self.x = 10
Звучит как
(-1).x = 10

В то время как id инстанса - довольно большое число.

Если ты в левый объект передаёшь self то ты передаёшь эту -1 а не id инстанса. В твоём примере это car.human. И если ты будешь использовать эту переменную в контексте объекта car, то там будет -1 и указывать будет на свой контекст, а не на контекст конкретного инстанса как ты задумывал.

self - это пережиток прошлого, что и написано в справке. Так что просто забудь про него.

Может, удастся сделать ещё одну учётку?

Я тут нашёл туториал пошаговый, как привязать лицензию. Надо будет потом включил свой ноут и тоже глянуть, всё ли у меня в порядке)

В какой игре лучшая реализация инвентаря?

В Angband'е. :-)

Судя по написанному тут и тут, нужно выполнить следующие требования:

1) Win 10 активирована;

2) Лицензия Win 10 привязана к учётной записи Микрософта.

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

Блин геморная модель... Но всё-же диск реально по менять более-менее спокойно(разве что с верхней крышкой гемор)...

Кстати если внутрь полезешь, я всёж рекомендовал-бы полностью разобрать, и уже решить и проблему куллера и может даже термопасту сменить(самой дорогой может и не нужно, но и экономить сильно не стал бы хотя я так понял что проц у тебя вроде не сильно горяч...) главное охлад систему откручивать "нежно" и по очереди(там у винтиков номера написаны) и закручивай также... А за одно можно и вентиль обслужить (заменить(вроде ты писаол что у тебя какие-то проблемы с ним)) Если конечно решишься и уверен в своих силах... А то если и куллер сдохнет и термуха, можно или не работоспособную систему получить или проц спалить, и второй чип (фиг знает что это, контроллер что-ли, видюхи то в ноуте нет)... Но тут уж конечно от срока давности покупки зависит(и проблемы вентиля) и желания лезть в ноут ещё раз когда проблема о себе заявит)

А диск проще достать и или в сам магаз отнести, или померить и уже точно искать размер))

Собственно Dr. Web Live USB, на который я сослался, это тоже Линуксовый дистрибутив, и там читает NTFS.

https://free.drweb.ru/aid_admin/

Быстрее чем разбираться что там у Майкрософта.

если проблема с ноутом не в диске, то вынуть диск и юзать как внешний х)

Я пытался вкатиться в изометрию и получилось такое (pico8) https://rubel.itch.io/mr-meow-studio
Вообще, было желание сделать более серьёзный изометрический платформер, но в этой игре многие плевались от неудобных прыжков по платформам.

o_player > Step

if collision_line(x-15,y+20,x+15,y+20,o_floor,1,1)//если под героем пол
{
    if gravity<>0//если на героя действует гравитация
    {
        gravity=0//перестать увеличивать скорость падения
        vspeed=0//перестать падать
        sprite_index=s_stand//назначить спрайт стояния
        
        y=floor(y)//выровнять координату до целого числа
        while collision_line(x-15,y+20,x+15,y+20,o_floor,1,1)
            y-=1//вытаскивать из пола наверх пока не прекращается столкновение с полом
        
        y+=1//теперь поставить ровно на пол
        fly=0//флаг полёта выставить в 0
    }
}
else//иначе (если под героем нет пола)
    if gravity==0//если на героя не действует гравитация (то есть он стоит или бежит)
    && fly==0//и если не летит при этом
    {
        if !collision_line(x-15,y+20,x+15,y+20,o_floor,1,1)//если под героем нет пола (ВТФ, это просто повторная проверка?)
        {
            sprite_index=s_jump//выставить спрайт прыжка
            gravity=0.3//и выставить гравитацию
        }
    }

Но это скроллит только вправо. Вот в обе стороны:

view_xview[0] = (self.x div view_wview[0]) * view_wview[0]

(всё верно, одна строка ВМЕСТО двух)

А вот вертикально:

view_yview[0] = (self.y div view_hview[0]) * view_hview[0]

Забудь этот ужас, посмотри как устроен мой EX-802, который я когда-то написал на КОД за пару дней. Мало того что там нет этой дури с тайлами, так там ещё есть генерация. Считай, процедурный генератор данжей у тебя уже есть, можешь себе забирать.

А, мерцание зелёной линии? Это просто так называемый Z-fighting, когда на одной z-глубине (дистанции до камеры) рисуются 3д примитивы

Нашёл немного скриншотов, если кому интересно. Это уже с версии ГМС2.

shp8VIb

fKRVLJE

YGr2Pl6

А, так это вроде как встроенное поведение у диалога и должно быть?

кода вроде не было

https://www.dropbox.com/s/3o3h7sr9ji8t0du/Dialogue4-1.1.zip?dl=0 - EXE и файл скрипта (нужен)

https://www.dropbox.com/s/czvc4m9i52r8gdr/Dialogue4-1.1.gmk?dl=0 - исходник.

комментов по теме нет. Либо всем все понятно

Не, ну просто я на ГМ8.1 (7 лет назад) уже делал формы с вложенными элементами.

hqjDDaL

https://www.dropbox.com/s/lf7xl4das1vfsi8/GM%20GUI%201.0.exe?dl=0

Собственно и исходник вот раздам пожалуй:

https://www.dropbox.com/s/r978sknztz6qxxr/GM%20GUI%201.0.gmk?dl=0

Всё это делается изи. Есть событие DrawGUI где всё движение камеры уже учтено. Это не ебаные фреймворки на HTML5 где нужно вручную всё пересчитывать.

Сохранение делается через with, лёгкий набросок:

var f = file_text_open_read("........");
with o_saving_prototype {
    file_text_write_stringln(f,asset_name+"|"+string(x)+"|"+string(y));
}
file_text_close(f);

Загрузка примерно так же только нужно будет распарсить строку.
Для тех объектов что должны сохраняться нужно парентом указать o_saving_prototype
Переменная asset_name должна хранить название актуального объекта. Я бы не стал полагаться на название самих ассетов и сделал бы словарь соответствия строка-объект.

Чтобы не парсить строку можно воспользоваться структурами данных примерно так:

//Создаём словари для x и y
var map_x = ds_map_create();
var map_y = ds_map_create();

//Заполняем объектами
with o_saving_prototype {
    map_x[? asset_name] = x;
    map_y[? asset_name] = y;
}

//Записываем в файл обе структуры
var f = file_text_open_read("........");
file_text_write_stringln(f,ds_map_write(map_x));
file_text_write_stringln(f,ds_map_write(map_y));
file_text_close(f);

//Очищаем память
ds_map_destroy(map_x);
ds_map_destroy(map_y);

Способов много разных есть

Да. Вдогонку:

https://kolenka.net/posts/na-chto-sposoben-vash-dvizhok-gamak-derzhit-34000-obektov-na-59fps