Суббота, 17 Апреля 2021, 12:44

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » YellowAfterlife [424]
Результаты поиска
YellowAfterlifeДата: Суббота, 28 Ноября 2015, 21:16 | Сообщение # 121 | Тема: Unity Networking and Multiplayer
Сейчас нет на сайте
Цитата Alfe ()
Если я переведу документацию раньше первоисточников это же хорошо )

Документацию должны переводить люди, хорошо знакомые с терминологией. Иначе получаться "розетки" как у вас или "духи" (вместо sprite) как в переводе документации по GameMaker.

Так же, переводят обычно уроки, а не саму документацию. Но, вот уж досада, когда Unity Technologies делают видеоурок по той или иной вещи, они делают и субтитры, и платят знающим своё дело людям за локализацию.


YellowAfterlifeДата: Суббота, 28 Ноября 2015, 19:25 | Сообщение # 122 | Тема: Falco: MyWot.
Сейчас нет на сайте
Спойлеры: Недавно зарегистрированные пользователи не имеют почти никакой "силы голоса". Имели ли какой-либо эффект схожие проделки 2014 года?

YellowAfterlifeДата: Суббота, 28 Ноября 2015, 16:19 | Сообщение # 123 | Тема: Как сделать анимацию гибели врага?
Сейчас нет на сайте
Цитата jayreck ()
а зачем нам лишний объект смерти если достаточно просто спрайт сменить ему sprite_index=enemy_dead_spr

Потому что иначе придется во все события объекта добавлять проверку на то, что он уже мертв, и не должен бегать\атаковать\...?
Один дополнительный объект на всех врагов - малая стоимость.


YellowAfterlifeДата: Пятница, 27 Ноября 2015, 19:55 | Сообщение # 124 | Тема: Java.Проверить изображение на пустоту?
Сейчас нет на сайте
Смотря на каком API. Но, общая идея в том, что пройти по всем пикселям, чтобы выяснить. одинаковы ли они. Обычно есть какой-то метод, возвращающий цвет пикселя на указанных координатах.
У BufferedImage это getRGB(x, y), что позволяет
Код

public static boolean imageIsEmpty(BufferedImage img) {
int w = img.getWidth();
int h = img.getHeight();
int p = img.getRGB(0, 0); // цвет пискеля в верхнем левом углу
for (int y = 0; y < h; y++)
for (int x = 0; x < w; x++) {
// если пиксель не совпадает с верхним левым то изображение не пустое.
if (img.getRGB(x, y) != p) return false;
}
return true;
}

ред.: приведенный выше метод тоже подходит, с пометкой про то что он проверяет на то что изображение действительно пустое (RGBA 0, 0, 0, 0) а не просто залито одним цветом.




Сообщение отредактировал YellowAfterlife - Пятница, 27 Ноября 2015, 19:57
YellowAfterlifeДата: Пятница, 27 Ноября 2015, 18:04 | Сообщение # 125 | Тема: Две темы.
Сейчас нет на сайте
FaucetNetworking синхронный (программа во время отправки\считывания данных приостанавливается), встроенные функции асинхронные (программе выдается список из принятых за прошлый кадр пакетов; отправляемые пакеты строятся в очередь и отправляются тоже все за раз). FN работает лишь на Windows, встроенные функции работают на всех платформах кроме HTML5.

Если знаешь и Java, и GML, то приложение скорее всего проще будет написать на Java, так как тебе в нем наверняка не нужна запаковка атласов текстур, готовые функции для проверки столкновений, и прочее.

Цитата Fill_Freeman ()
или написать свое.

Сомнительная идея. На написание и отладку сетевых библиотек уходят месяца. Иначе получаются всякие 39DLL, которые случайным образом крахаются на входящих пакетах, а автор с 2005 года правок не вносил.


YellowAfterlifeДата: Четверг, 26 Ноября 2015, 18:50 | Сообщение # 126 | Тема: Обработка вводимых значений
Сейчас нет на сайте
Добавляешь в новый или существующий MonoBehaviour функцию, что принимает один параметр-строку и ничего не возвращает,
Код
public void TextSubmitted(string text) {
    Debug.Log(text); // отправляет текст в консоль
}

Потом добавляешь полю ввода это поведение.
Потом подвязываешь функцию из поведения на завершение редактирования текста:

(клик на плюсик в правом нижнем углу, выбираешь в левом нижнем углу этот же компонент, выбираешь в правом верхнем углу название функции).
Срабатывает после нажатия Enter при редактировании текста.
Где-то в официальных видеоуроках весь процесс показывался.


YellowAfterlifeДата: Четверг, 26 Ноября 2015, 15:38 | Сообщение # 127 | Тема: Как сделать лого рядом с сайтом в поисковиках?
Сейчас нет на сайте
Вообще такие вещи делаются посредством OpenGraph. Но, плохие новости - Yandex отображает картинки лишь для выборочных сайтов; Google отображает картинки на свое усмотрение. Но заполненные теги лишними не будут.

P.S.: Про "Yandex тормозной" - Yandex проиндексировал главную страницу моего сайта 3-4 года назад (в момент регистрации домена) и с тех пор ни разу автоматическую ре-индексацию не проводил.




Сообщение отредактировал YellowAfterlife - Четверг, 26 Ноября 2015, 15:41
YellowAfterlifeДата: Четверг, 26 Ноября 2015, 15:30 | Сообщение # 128 | Тема: Можно в название игры использовать слово maincraft ?
Сейчас нет на сайте
Цитата Anthem ()
Если у кого-то будут какие-то претензии, ты об этом узнаешь и сможешь поменять название

Правда, если игра будет на каком-нибудь google play/appstore, то узнаешь об этом с DMCA запроса удаления игры к чертям, который системой обрабатывается до его попадания в твои руки.

По теме - название "Minecraft" является зарегистированной торговой маркой, что сейчас принадлежит Microsoft.
Назвать же игру "[любое другое незанятое слово]Craft" никто не мешает, чем люди очень активно и пользуются - к примеру, в Steam как минимум 14 игр с такой схемой названия. Плюс "Storymode: a game about crafting", разработчики которой явно пытались влезть в результаты поиска по "Minecraft story mode" (официальная серия игр, создаваемых Telltale).




Сообщение отредактировал YellowAfterlife - Четверг, 26 Ноября 2015, 15:31
YellowAfterlifeДата: Четверг, 26 Ноября 2015, 15:18 | Сообщение # 129 | Тема: Фиксированный фон как сделать?
Сейчас нет на сайте
В стандартной ситуации (движение персонажа происходит в шаге и\или исполльзуются стандартная настройка следования вида за объектом в комнате) достаточно добавить в end step
background_x[0] = view_xview[0];
background_y[0] = view_yview[0];

Если используется иной номер фона и\или вида то поменять индексы на другие значения.
Сюда же, если умножать view_ на какую-то костанту (к примеру, 0.5), можно получить параллакс эффект.


YellowAfterlifeДата: Вторник, 24 Ноября 2015, 17:09 | Сообщение # 130 | Тема: Game maker: RTS
Сейчас нет на сайте
Пример выделения юнитов.
Туман войны: ввести в поиск "gamemaker fog of war example". Их много (пример).
Можно ещё попробовать ввести в поиск "gamemaker rts example", но, если ты задаешь вопросы о буквально каждой части, то шансы превратить даже готовый пример в игру [в ближайшее время] не очень высоки.


YellowAfterlifeДата: Вторник, 24 Ноября 2015, 17:03 | Сообщение # 131 | Тема: Приспособление для управления сенсорными играми
Сейчас нет на сайте
Цитата Fejk2015 ()
Можно ссыочку на сие чудо

Это PG-9023. По названию можно найти в различных интернет-магазинчиках.

Про субъект темы - это не ново, hyperkin продают подобную штуку уже долгое время, и собираются отдельно выпустить чехол с кнопками, позволяющий превратить iPhone в аналог gameboy.

Можно ещё найти десятки Android устройств с аппаратными кнопками, к которым не нужно ничего прицеплять для игры.


YellowAfterlifeДата: Понедельник, 23 Ноября 2015, 16:13 | Сообщение # 132 | Тема: Вопрос - Ответ (Game Maker)
Сейчас нет на сайте
Цитата PALADIN ()
Куда вписывать названия своих спрайтов(например: s_player1, s_player2... Прошу прощения за глупые вопросы.

Ну... spr_walk_ это и есть названия спрайтов, по твоему же рисунку (spr_walk_deg0 смотрит направо, spr_walk_deg22_5 смотрит на 22.5 градусов против часовой стрелки от правой позиции, и так далее). Если что, вместо "// ..." нужно таким же образом заполнить остальные спрайты для всех углов. И для stand_spr тоже.


YellowAfterlifeДата: Воскресенье, 22 Ноября 2015, 22:25 | Сообщение # 133 | Тема: Вопрос - Ответ (Game Maker)
Сейчас нет на сайте
Цитата PALADIN ()
Не знаю как привязать к своим спрайтам. как можно привязать анимации по таким направлениям?

http://s1.uploadpics.ru/images/ZyXQbSYotl.bmp


Сделать массив с изображениями на каждые 90/4 = 22.5 градусов,
Код
walk_spr[0] = spr_walk_deg0;
walk_spr[1] = spr_walk_deg22_5;
walk_spr[2] = spr_walk_deg45;
walk_spr[3] = spr_walk_deg67_5;
// ...
walk_spr[15] = spr_walk_deg337_5;
// (то же самое для stand_spr и что ещё)

потом, в шаге,
Код

var d = round(direction / 22.5) mod 16; // перевод направления в индекс
if (d < 0) d += 16; // на случай если направление получилось меньше 0
if (speed > 0) {
sprite_index = walk_spr[d];
} else sprite_index = stand_spr[d];

P.S.: советую запастись терпением, так как рисовать по 9+ анимаций для всех объектов в игре довольно долго.


YellowAfterlifeДата: Воскресенье, 22 Ноября 2015, 22:11 | Сообщение # 134 | Тема: Поиск фонов для 2D платформера в стиле Dendy и Sega
Сейчас нет на сайте
Если бы господа-советчики сами воспользовались поиском на предлагаемых ими сайтах, они бы заметили, что ничего похожего на них нет.
Если это маленький личный проект и легальность процесса получения ресурсов имеет мало значения (я имею в виду, spriters-resource и так содержит исключительно выдранную из игр графику), можно взять какие-нибудь инструменты отладки и дамнуть похожий фон из существующей игры.
Иначе собрать полный перечень условий (размеры, стиль, палитра) и попробовать найти художника для задачи. Возможно, это не прожжет дырку в кармане.


YellowAfterlifeДата: Воскресенье, 22 Ноября 2015, 21:45 | Сообщение # 135 | Тема: Можно ли согнуть спрайт как во флеше Skew/Shear?
Сейчас нет на сайте
Насколько мне известно, Unity всё ещё не дает "прямого доступа" к матрицам игровых объектов. Но, с помощью некоторых ухищрений, можно добиться точной симуляции skew\shear с помощью последовательного применения вращений и растяжений. В Unity это будет достигаться несколькими "обёрточными" GameObject для применения каждой из операций.

YellowAfterlifeДата: Суббота, 21 Ноября 2015, 23:23 | Сообщение # 136 | Тема: Как разрезать sprite sheet на равные куски?
Сейчас нет на сайте
Цитата Necrolich ()
Qvant, Спасибо, а можно пояснить как вы это сделали?

1. Скачать GameMaker: Studio (бесплатная версия с официального сайта подходит).
2. Создать\открыть проект.
3. Создать sprite (кнопка панели с "пакменом" или через ПКМ на папке Sprites в дереве ресурсов)
4. Нажать Edit Sprite
5. В открывшемся окне выбрать меню "File - Create from strip".
6. Выбрать свое изображение.
7. В открывшемся окне настроить интересующие параметры. Для этого тайлсета image width = 16, image height = 16, horizontal separation = 1, vertical separation = 1. horizontal\vertical pixel offset подставить для каждой секции - автор изображения немного неровно расставил тайлы.
8. Нажать ОК для разбиения на тайлы; закрыть с сохранением окно редактирования спрайта; сохранить проект.
9. Открыть папку проекта через проводник (или меню в GM:S "Help - Open project in Explorer").
10. Зайти в /sprites/images и забрать свои пронумерованные PNG файлы.


YellowAfterlifeДата: Суббота, 21 Ноября 2015, 23:08 | Сообщение # 137 | Тема: Вопрос - Ответ (Game Maker)
Сейчас нет на сайте
Цитата arthur33 ()
Доброго времени суток.
При работе с GM: Studio возникла проблема с несуществующей переменной (уже не существующей) variable_local_exists и сразу же возник вопрос.
Каким образом возможно осуществить проверку на наличие переменной у объекта?
Допустим, если при создании инвентаря, я проверяю, есть ли у предмета переменная, ограничивающая кол-во возможных копий его в инвентаре.

Как уже подсказал OpenGOO, давать переменным начальные значения.
Для этого неплохо подходит добавленное в GMS значение undefined:
// в базовом объекте-предмете:
maxcount = undefined;
// в дочернем объекте, для ограничения:
maxcount = 1;
// при проверках:
if (is_undefined(item.maxcount)) {
    // нет ограничения
} else {
    // есть ограничение
}

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




Сообщение отредактировал YellowAfterlife - Суббота, 21 Ноября 2015, 23:09
YellowAfterlifeДата: Суббота, 21 Ноября 2015, 22:57 | Сообщение # 138 | Тема: Выпонение определенного кода в зависимости от платформы
Сейчас нет на сайте
Обычно так:
Код
if (os_browser != browser_not_a_browser) {
    // HTML5 таргет
} else switch (os_type) {
    case os_windows: /* Windows */ break;
    case os_android: /* Android */ break;
    // ...
    default: // прочее
}


YellowAfterlifeДата: Пятница, 20 Ноября 2015, 09:46 | Сообщение # 139 | Тема: Выбор движка и направления в создании игры.
Сейчас нет на сайте
Браузерная игра имеет несколько иные шансы на обретение популярности, чем скачиваемая, преимущественно из-за снижения порога вхождения (т.к. не нужно ничего скачивать, чтобы опробовать).
Но, в то же время, это так же предполагает оптимизацию игры по размеру, чтобы пользователь никуда не ушел, пока игра загружается.
Вне зависимости от используемых способов, браузерные игры всегда будут работать немного медленнее, чем скачиваемые.
Дополнительными подводными камнями выступают различия доступных сетевых протоколов для обычных и браузерных игр.
Если это трехмерная игра, то, скорее всего, путем наименьшего сопротивления было бы написание её на Unity3d - это даст пригодную скачиваемую версию, и можно будет отдельно собрать веб-версию в целях демонстрации\ознакомления (и заниматься оптимизацией игры для работы в браузере лишь если она обретет достаточную популярность чтобы это оправдать).




Сообщение отредактировал YellowAfterlife - Пятница, 20 Ноября 2015, 09:49
YellowAfterlifeДата: Пятница, 20 Ноября 2015, 01:53 | Сообщение # 140 | Тема: SpriteFont 3D
Сейчас нет на сайте
Сделать поведение-обертку, в котором хранится текущее значение и список gameobject'ов-цифр.
Когда значение меняется (поставить сеттер для переменной?), удалить текущие объекты, и создать новые вместо них. i-ую цифру можно узнать хитрым последовательным делением и взятием модуля или простым предварительным переводом значения в строку с последующим перебором цифр.


Форум игроделов » Записи участника » YellowAfterlife [424]
Поиск:

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