Jusper Jusper

Новые NPC в Slash Polygon.
А также новый тип оружия со своими анимациями - катана.

alexprey alexprey

TinyMiracleGame, динамичненько, понравилось различное взаимодействие с окружением

TinyMiracleGame TinyMiracleGame

Сделал трейлер для своей новой игры на мобилки "Robot Battle". Скоро появится в Google Play! (через некоторое время будет и в App Store)

IDALGAME IDALGAME

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

Razz Razz

Чавкающих тентаклей вам

Razz Razz

IDALGAME, блин, а круто смотрится

Jusper, да я как то всё в процессе бесконечного перепиливания. Следуя отзывам перепилил в "червя", потом ещё гифок накидаю

doctormanhattan doctormanhattan

Всем привет!
Сегодня мы хотели бы рассказать об одном из важных элементов игрового дизайна нашей игры Exoplanet: First Contact. В играх такого типа порой бывает трудно понять, где найти вещи, необходимые для успешного прохождения...

...
Jusper Jusper

Razz,

Новая экранизация слова "обрыгло"

win20082007 win20082007

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

...
TheDarkestRed TheDarkestRed

Обновлённые меню и интерфейс 🎮 👨‍🎨 🀄 👨‍💻
https://vk.com/the_darkestred

Jusper Jusper

Ой модельки красивые. Прямо слов нет. Стильно.
Очень здорово смотрятся.

Dreaman Dreaman

alexprey,

Согласен! И стреляет она круто. Враги классно разлетаютcя :)

Dreaman Dreaman

Ну это круто, ребят! Правда посмотрел пока только кусочек. Теперь надо найти время, чтобы посмотреть полностью )

GoloGames GoloGames

Jusper, вот тут описание всех ребят со ссылочками https://vk.com/gologamesgroup?w=wall-88091546_17669

Jusper Jusper

GoloGames,

Да это ж я так. Прикольно послушать всех было.

GoloGames GoloGames

Jusper, интервью записывались за месяц с лишним до Нового Года

Логотип проекта 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 вы можете создать шаблон, который будет использоваться по умолчанию для всех новых сценариев и событий. Это может сэкономить вам очень много времени.


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

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

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


Комментарии



Очень полезная информация!

Справка