А теперь представь, что придется думать не только про еду, но и про воду.
В этом-то и вся соль!
Quote (Robin-Locksley)
Это раздражает, потому как и еды в таком месте не достать, а место в рюкзаке ценнее набить патронами или артефактами чем тоннами еды.
Эм, ну я когда иду в шахту в Minecraft'e, беру с собой 5 кусков мяса и мне с головой хватает. Да и за питьевую воду тоже много думать не нужно будет. Например, выкопал небольшую яму, вылил в нее воду с помощью ведер, и потом только кружки наполняй оттуда, и все. Отмечу, что источник воды, с которого персонаж наполняет кружку, не уничтожается. После питья кружка также не уничтожается, а становится пустой для дальнейшего наполнения. Еще стоит учитывать тот факт, что Minecraft и S.T.A.L.K.E.R совсем разные игры.
Крафт чая: Кружка с водой + Сахар(1) + Чай(1) = Кружка чая
А есть выход попроще, с использованием динамически расширяемых дата-структур, что во первых экономит кучу ресурсов, а во вторых реализовывается очень просто. И генерировать такой мир можно случайным образом прямо во время игры, что как я понимаю и является основной фишкой майнкрафта. Может стоит поэкспериментировать?
Следующее обновление будет напичкано многими вкусностями, среди которых - система жидкостей (вода). Если смогу реализовать - будет, иначе - нет. Также, планирую ввести индикатор жажды, т.е. помимо еды теперь нужно будет заботиться и о питье. Будут добавлены кружки. Планирую добавить чай. Своеобразный аналог питьевой воды. Найти можно будет на поверхности. Добавлю все инструменты, сундук и верстак, а также верну оригинальную графику.
Robin-Locksley, да, пример впечатляет! Также, должно быть не видно мест, в которых нет блоков. И прошу сделать удаление и создание блоков. Ну и можно прокомментировать код, если, конечно, не лень.
P.S: И лень было расставлять столько много блоков по комнате вручную?! :)
В моем проекте мир состоит примерно из 10-ти тысяч объектов. Спрайтов в освещении не применял, менял лишь значение Alpha спрайта объекта. Т.к. использую деактивацию экземпляров за пределами вида, код освещения выполняется только в видимых объектах, коих в пределах вида немного. Тормозит все равно. Код из события Draw объекта, который является родителем всех блоков:
Code
a = place_free(x + 1, y) || place_free(x - 1, y) || place_free(x, y - 1) || place_free(x, y + 1); if instance_exists(objPlayer) { if distance_to_object(objPlayer) > 50 && collision_line(x, y, objPlayer.x, objPlayer.y, objBlockPar, 1, 1) { if !a { alpha = 0; draw_sprite_ext(sprite_index, -1, x, y, 1, 1, 0, make_color_rgb(alpha, alpha, alpha), 1); } } }
Рисуешь иконку предмета и его спрайт, который будет рисоваться у персонажа в руках. В скрипте invItemSet добавляешь параметры предмета, взяв пример с других. Создаешь объект, которому в Create прописываешь invItemSet('Название предмета. Должно быть такое, какое ты написал в скрипте.' ,1 ,id);. Задаешь ему родителя objDropPar. Блок добавляется почти по такому же принципу, как и предмет. Только в Create переменной item присваиваешь название объекта предмета, который выпадет при уничтожении блока. Вроде ничего не упустил. Уроки по GM Minecraft 2D на GM — Мои проекты — Blood Harvest [2D] — Original Blood Harvest [2D]: Remastered Edition Adventure Craft [2D] — Sandbox Space Shock [2D] — Scroll Shooter Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.