alexprey alexprey

Вухух, я таки прошел первый ярус!

...
TheDarkestRed TheDarkestRed

Бой в чужой шкуре 🎮 🧟‍♂ 🤺

#screenshotsaturday #last_stare_interactive #thedarkestred #indiedev #unity #gamedeveloper #indie

Jusper Jusper

Razz,

с 24-й секунды прямо то, что надо. имхо я бы обрезал начало, его не будут все равно читать как мне кажется.

Jusper Jusper

Поддержи Индикатор чеканной монетой.

Razz Razz

Издатель завёз тизер к игре. По мне так супер-пупер вышло

alexprey alexprey

ruggaraxe, кст да, стелс режим тоже был затещен в новой демке за рогу, тема :)

alexprey alexprey

ruggaraxe,

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

ruggaraxe ruggaraxe

alexprey, да, это хлебные крошки :)

alexprey alexprey

ruggaraxe, хм, у меня что-то не сработало, попробую еще раз.
А и кст да, не понял прикола с откладываем монет на пол, типа хлебные крошки???))

ruggaraxe ruggaraxe

Jusper,

Да, это очень хотим сделать! :)

ruggaraxe ruggaraxe

alexprey, Спасибо за отличный фидбэк!
Будем улучшать игру, чтобы многие элементы игры стали удобней и очевидней.

alexprey alexprey

Ура! Я наконец-то разобрался как легко бить пауков (брать двуручку и двуручкой фигачить их)
В итоге удалось продвинуться намного вперед (до ямы на скриншоте в основном посте)

Jusper Jusper

Главный вопрос - поддержку контроллера завезете? :)

TheDarkestRed TheDarkestRed

Один меч хорошо, а два - полезнее 🎮 🧟‍♂ 🤺 🧟‍♀ 🤺 ✌🏻

...
kirsakshlil kirsakshlil

Решил полностью перемоделить персонажей. Вот начал потихонечку.

...
alexprey alexprey

Еще как-то криво отрабатывает прикрытие щитом после удара, делаю удар, потом зажимаю правую кнопку, он щитом не прикрывается после удара, получаю демаг

alexprey alexprey

Добрался я наконец-то!
На этот раз играем на нормальной станции на высоких настройках и почти без лагов, иногда случаются странные поддергивания при беге, еще фонарь колбасит.

Jusper Jusper

KO3bMA, какие люди! И тебя!

KO3bMA KO3bMA

Всех с Новым годом и Рождеством Христовым!

Логотип проекта Game Maker

10 советов и трюков GameMaker Studio 2. Часть 1.

10 советов и трюков GameMaker Studio 2. Часть 1.

Добро пожаловать в список из 10 трюков и советов по GameMaker Studio 2. Независимо от того, знакомы ли вы уже с этим движком или только начали его изучать, можно узнать что-то новое.

#1 Ссылка на конкретный экземпляр объекта

Функции создания экземпляров, такие как instance_create_layer и instance_create_depth - одни из самых основных функций, которые разработчики используют в Game Maker. Но не все знают, что они возвращают идентификатор созданного экземпляра, который можно сохранить в переменную для дальнейшего его использования.

var inst;     
inst = instance_create_depth(x, y, -10000, obj_Bullet);     
     
with (inst) {     
    speed = other.shoot_speed;     
    direction = other.image_angle;     
}    

#2 Макросы и перечисления

Macros и Enums не нуждаются в вызове для инициализации - достаточно скрипта, в котором хранятся ваши макросы и энумераторы, и они будут загружены в ваш проект.

#3 Средняя кнопка мыши

Для экономии времени вы можете щёлкать средней кнопкой мыши на ресурс или функцию в редакторе кода. GMS2 откроет соответствующий объект или, если это функция, то страницу со справкой.

#4 Тернарные операторы в GameMaker Studio 2

GMS2 поддерживает тернарные операторы, которые предоставляют элегантный подход к условным выражениям: <условие>? <условие истинно>: <условие ложно>

// обычный подход    
if (standingOnIce) {     
  friction = ice_friction;     
}     
else {     
  friction = default_friction;     
}     
     
// тернарная операция 
friction = (standingOnIce ? ice_friction : default_friction);   

#5 Сохранить результат выражения в переменной

Вместо использования оператора if вы можете заносить результат выражения сразу в переменную.

// обычный подход
if (abs(speed) > 0) {     
  moving = true;     
}     
else {     
  moving = false;     
}     
     
// занесение результата в переменную
moving = (abs(speed) > 0);    

#6 Дельта-синхронизация в GameMaker

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

var seconds_since_last_frame = (delta_time / 1000000);     
var distance_to_move_this_frame = (distance_per_second * seconds_since_last_frame);     
x += distance_to_move_this_frame;  

#7 Поворот объекта "лицом" к курсору мыши

Простой пример, как постепенно поворачивать объект к курсору

var targetDirection = point_direction(x, y, mouse_x, mouse_y);     
var angleDifference = angle_difference(image_angle, targetDirection);     
var angleIncrement = 10;     
     
image_angle -= (min(abs(angleDifference), angleIncrement) * sign(angleDifference));  

#8 Использование Clamp

Вместо использования операторов if для ограничения значения переменной, вы можете использовать Clamp, что гораздо удобней и умещается в одну строку.

// обычный подход
if (spd > maxspd) {     
  spd = maxspd;     
}     
else if (spd < 0) {     
  spd = 0;     
}     
     
// метод с Clamp  
spd = clamp(spd, 0, maxspd);    

#9 Мигание текста или спрайта

Простой способ для мигания спрайта или текста с заданным интервалом:

///@desc blink(c_white, c_black, 0.5);      
///@arg on_val      
///@arg off_val      
///@arg [rate]      
var on_val = argument[0];     
var off_val = argument[1];     
var rate = (argument_count > 2 ? (argument[2] * 1000) : 1000);     
     
if (current_time % (rate * 2) >= rate) return on_val;     
return off_val;  

#10 Шаблоны кода

В меню Preferences -> Objects вы можете создать шаблон, который будет использоваться по умолчанию для всех новых сценариев и событий. Это может сэкономить вам очень много времени.


Ссылка на вторую часть статьи

Ссылка на оригинал

Смотрите также:


Комментарии

Здесь еще никто не оставил комментарий

Справка