Среда, 27 Ноября 2024, 08:22

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
YellowAfterlifeДата: Суббота, 27 Июня 2015, 13:40 | Сообщение # 241 | Тема: Вопрос - Ответ (Game Maker)
Сейчас нет на сайте
Цитата minepecraft ()
Хелп!Как сделать так,чтобы если строитель занят,то от какой-то переменной отнималась 1 единица,а когда он становился опять свободным-прибавлялось,я уже пытался сделать так:
Когда мы задаем работу рабочему-отнимаем 1 от global.workers
Когда он свободен-прибавляем 1
Но нужно сделать так,чтобы он прибавил 1 ОДИН раз а не пятьсот,ведь ясно,что пока он свободен будет капать рабочих до бесконечности,а пока он занят,рабочие будут уходить в минус!


Create Event:
isFree = true; // свободен ли
wasFree = true;
global.workers += 1;


Step Event:
if (isFree != wasFree) {
    if (isFree) { // освободился
        global.workers += 1
    } else {
        global.workers -= 1
    }
    wasFree = isFree;
}


Destroy Event:
if (isFree) global.workers -= 1;

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


YellowAfterlifeДата: Четверг, 25 Июня 2015, 09:33 | Сообщение # 242 | Тема: Куда заливать игры с Construct 2?
Сейчас нет на сайте
На Google Drive всё ещё можно заливать игры - нужно лишь открыть доступ у папки, найти её ID (спрятан в части URL где-то в бесконечно изменяемых ими диалогах), и сделать адрес формата
Код
https://googledrive.com/host/ID

Я делал целую статью с картинками по этому поводу, но мой сайт сейчас временно не работает, а в архивной версии только текст.
Пример.

В зависимости от целей, ещё может пригодится itch.io, gamejolt, kongregate, или newgrounds. Все из перечисленных поддерживают загрузку HTML5 игр. На itch.io рекламы нет и можно разрешить людям поддерживать разработку деньгами. На остальных есть реклама и разработчику выплачивается процент.


YellowAfterlifeДата: Вторник, 23 Июня 2015, 10:49 | Сообщение # 243 | Тема: 3д Экщн с огромной картой и бесконечным кол-вом игроков
Сейчас нет на сайте
Цитата mcdimon ()
Быть может для этого можно создать МОД гта под наш город

Можно, люди ведь такими вещами занимаются в свободное от работы время. Поищите статьи\уроки\инструменты по этому поводу.

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

Создавать отдельную игру дольше (и дороже).


YellowAfterlifeДата: Воскресенье, 14 Июня 2015, 22:44 | Сообщение # 244 | Тема: GameMaker' Visualizer
Сейчас нет на сайте
Цитата TLT ()
Раньше юзал как-то The ultimate D&D to GML converter. Но там, вроде, приходилось в ручную вводить кнопочные структуры.

Существует некоторое количество программ для преобразования DnD в GML, но, насколько я знаю, во всех из них был ручной ввод.
Вероятно, причиной этому является тот факт, что все существующие форматы представления DnD (object information / GMK / GMX) имеют свои причуды и требует некоторого количества усилий для их полноценного разбора.


YellowAfterlifeДата: Воскресенье, 14 Июня 2015, 22:25 | Сообщение # 245 | Тема: Снижение нагрузки ЦП.
Сейчас нет на сайте
Создать список, занести значения, перемешать список, достать первые 8 значений:
var list;
list = ds_list_create()
for (var i = 0; i < 16; i += 1) ds_list_add(list, i)
ds_list_shuffle(list)
n_1 = ds_list_find_value(list, 0)
n_2 = ds_list_find_value(list, 1)
n_3 = ds_list_find_value(list, 2)
n_4 = ds_list_find_value(list, 3)
n_5 = ds_list_find_value(list, 4)
n_6 = ds_list_find_value(list, 5)
n_7 = ds_list_find_value(list, 6)
n_8 = ds_list_find_value(list, 7)
n_1 = ds_list_find_value(list, 0)
ds_list_destroy(list)

Но проблема правда вряд ли в этой части - даже для 8-ого значения шанс того что оно совпадет с каким-либо из предыдущих будет 1/2.


YellowAfterlifeДата: Суббота, 13 Июня 2015, 19:57 | Сообщение # 246 | Тема: GameMaker' Visualizer
Сейчас нет на сайте
Цитата TLT ()
С особеностями GMS работает или с GML от GM8?

Поддерживает и GM8 и GMS.
Кнопочки у обоих преимущественно одинаковые. Файл с описанием действий для их распознания дает неплохую картину происходящего -- несколько кнопок убрали, несколько добавили, в нескольких поменяли параметры.
GMS-специфичный синтаксис и функции тоже поддерживаются, пример:
var array = undefined;
var grid = ds_grid_create(1, 1);
array[0] = 1;
grid[#0, 0] = array;
show_debug_message(array_get(grid[#0, 0], 0)); // 1
array[@0] = 2;
show_debug_message(array_get(grid[#0, 0], 0)); // 2


YellowAfterlifeДата: Пятница, 12 Июня 2015, 23:14 | Сообщение # 247 | Тема: Конструктор игр на планшете...
Сейчас нет на сайте
Цитата Excelsiorer ()
Flow, А для подобного вида работы требуется лишь подключиться к любой беспроводной сети, и можно хоть из другого города этим заниматься, если компьютер включен?

Да. Расстояние лишь определяет время между действием и изменением на экране (пока действие дойдет до компьютера и назад вернется обновление области экрана), но при наборе кода это не очень сильно мешает, если задержка невелика.

Если пока ещё ведется выбор устройства, упоминание планшетов на Win8[.1] это дельный совет - у меня на столе рядом с компьютером расположен Asus Vivotab Smart, и GMS на нем работает вполне нормально.
Ещё выбор устройства на базе Windows позволит использовать его в качестве дополнительного монитора на основном компьютере с помощью Mouse Without Borders или Synergy.
Одно лишь примечание - желательно приобрести какую-нибудь bluetooth клавиатуру, так как счастья в наборе кода на сенсорной клавиатуре очень мало.


YellowAfterlifeДата: Пятница, 12 Июня 2015, 23:02 | Сообщение # 248 | Тема: GameMaker' Visualizer
Сейчас нет на сайте
Название: GameMaker' Visualizer
Жанр: Программа/утилита
Платформы: Веб
Автор: YellowAfterlife (VK | Twitter)
Ссылка: yellowafterlife.itch.io/gmvisualizer
Описание:
GameMaker' Visualizer это веб-программа с двумя основными функциями:
1. Подсветка DnD/GML: Программа может взять кусок кода или отрывок "object information", подсветить код/выражения/DnD иконки в них, и вывести HTML (для сайтов/блогов) или BB (для форумов) код.
2. Перевод DnD в GML: Если дать программе ранее упомянутый фрагмент "object information", она может перевести его в эквивалентный GML код. Процесс преобразования довольно точный и учитывает причуды DnD (к примеру, особенности обработки "applies to" для разных типов действий).

Скриншоты:
Генерация BB кода:

Генерация HTML кода:

Перевод DnD в GML:

GIF-ка с вышеперечисленными:


О случаях использования:


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




Сообщение отредактировал YellowAfterlife - Пятница, 12 Июня 2015, 23:03
YellowAfterlifeДата: Вторник, 09 Июня 2015, 09:27 | Сообщение # 249 | Тема: Ввод текста
Сейчас нет на сайте
Данная проблема - баг (ссылка на рапорт), который слишком уж неспешно исправляют.
Ещё риведенный код можно немного упростить с помощью "else if"
draw_set_font(font0) //заранее выбрать шрифт и вбить в него русский алфавит
draw_text(10,10,string(str)) //рисуем строку

if keyboard_check_pressed(vk_anykey) //нажатие клавиши
{
    if keyboard_check_pressed(vk_backspace) //бэкспейс
    {
        if (string_length(str) > 0) //в строке есть символы
        {
            str=string_delete(str,string_length(str),1) //удаляем последний символ
        }
    }
    else if keyboard_check_pressed(vk_delete)
    {
       str=string_delete(str,1,1) //удаляем первую букву
    }
    else if !keyboard_check_pressed(vk_shift)
    {
        if (string_length(str) < 30) // максимум символов в строке
        { 
            key=keyboard_lastchar //нажатая клавиша
            str += key //добавление буквы в строку
        }
    }
}

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




Сообщение отредактировал YellowAfterlife - Вторник, 09 Июня 2015, 09:28
YellowAfterlifeДата: Воскресенье, 07 Июня 2015, 11:32 | Сообщение # 250 | Тема: [GMS] Рисование опр. части спрайта
Сейчас нет на сайте
В общем случае:

http://yal.cc/get/15-06/xm/draw_sprite_cutup.gmk
/// draw_sprite_cutup(sprite, subimg, x, y, cut)
// cut ranges from 0 (entire sprite visible) to 1 (entire sprite hidden)
var sprite, height, cut;
sprite = argument0
height = sprite_get_height(sprite)
cut = round(max(0, min(argument4, 1)) * height)
draw_sprite_part(sprite, argument1, 0, cut, sprite_get_width(sprite), height - cut, argument2, argument3)


YellowAfterlifeДата: Воскресенье, 07 Июня 2015, 10:33 | Сообщение # 251 | Тема: [GMS] Разница device_mouse_check_button и mouse_check_button
Сейчас нет на сайте
device_mouse_check_button позволяет указать номер "мыши" (касания) что необходимо если хочется сделать мультитач (например, для "джойстиков" в углах экрана). mouse_check_button(b) работает как device_mouse_check_button(0, b).

YellowAfterlifeДата: Пятница, 05 Июня 2015, 14:29 | Сообщение # 252 | Тема: Тайловые узоры
Сейчас нет на сайте
Если искать в google images по запросу "swirl plant pattern texture" или "swirl flower pattern texture", можно найти много похожего. Упор на наличие в запросе "pattern" (узор). Можно и "seamless pattern" вместо "pattern texture".

YellowAfterlifeДата: Четверг, 28 Мая 2015, 20:09 | Сообщение # 253 | Тема: ini создается, записывается, не читается.
Сейчас нет на сайте
Вариант 1: Записывать индекс комнаты:
// сохранение:
ini_open("some.ini")
ini_write_real("room", "index", room)
ini_close()
// загрузка:
ini_open("some.ini")
if (ini_key_exists("room", "index")) {
room_goto(ini_read_real("room", "index", -1))
} else {
// INI нет вовсе или номер комнаты в нем не записан.
}
ini_close()


Вариант 2: Записывать имя комнаты и правильно его считывать:
// сохранение:
ini_open("some.ini")
ini_write_string("room", "name", room_get_name(room))
ini_close()
// загрузка:
ini_open("some.ini")
if (ini_key_exists("room", "name")) {
room_goto(asset_get_index(ini_read_string("room", "name", "")))
} else {
// INI нет вовсе или имя комнаты в нем не записано.
}
ini_close()

(если версия 8.1 или ниже то заменить asset_get_index скриптом отсюда)




Сообщение отредактировал YellowAfterlife - Четверг, 28 Мая 2015, 20:09
YellowAfterlifeДата: Воскресенье, 24 Мая 2015, 18:24 | Сообщение # 254 | Тема: Выбор юнита
Сейчас нет на сайте
Цитата Miseri ()
Спасибо за совет...
А по поводу разбирательства с кликом и движением... А как это будет выглядеть допустим на Андроиде? Ведь по сути там нет правой и левой кнопки мыши.

По умолчанию, два быстрых касания считаются GMS за клик правой кнопки мыши.
В зависимости от игры, для мобильных платформ можно поменять функции ЛКМ/ПКМ местами, если двигать юниты игроку придется чаще, чем их выбирать.

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


YellowAfterlifeДата: Воскресенье, 24 Мая 2015, 17:21 | Сообщение # 255 | Тема: Выбор юнита
Сейчас нет на сайте
Создание вспомогательного объекта (контроллера):
global.unit_selected = -1
Событие глобального нажатия левой кнопки мыши для этого объекта:
global.unit_selected = -1
with (obj_unit) {
    if (position_meeting(mouse_x, mouse_y, id)) {
        global.unit_selected = id
    }
}

События юнита, где нужна проверка на "выбранность":
if (global.unit_selected == id) {
    // сейчас выбран данный юнит, можно реагировать на ввод пользователя.
}

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


YellowAfterlifeДата: Среда, 13 Мая 2015, 16:14 | Сообщение # 256 | Тема: Dropbox старая папка Public
Сейчас нет на сайте
В какой-то момент включение публичной папки убрали, и теперь ее можно получить лишь в составе платной подписки.
Я писал запись о использовании Google Drive для прямых ссылок. GD регулярно переставляет кнопки по интерфейсу но функционал остается на месте.


YellowAfterlifeДата: Среда, 13 Мая 2015, 13:16 | Сообщение # 257 | Тема: as3+nape как сделать колесо круглым? :)
Сейчас нет на сайте
Круглые объекты делают через nape.shape.Circle а не полигонами. Тут есть пример (в 40+ строках создается круглый объект).

YellowAfterlifeДата: Среда, 13 Мая 2015, 13:08 | Сообщение # 258 | Тема: API для "двухстраничного" интерфейса
Сейчас нет на сайте
Цитата Gudleifr ()
(Например, в HTML фреймы обмениваются информацией в целом, один не может адресовать конкретный фрагмент другого)

Не совсем. В JS разрешается управлять содержимым iframe в документе если он находится на том же домене, в том числе и адресовать document/window iframe'а. Следовательно, при загрузке iframe можно просто присвоить ссылку на "внешний" документ в одну из переменных, и из iframe можно будет через эту переменную работать с содержащим его документом. А далее - дело техники - разработать набор функций, что позволят достаточно удобно находить нужный элемент в том или ином фрейме.
Чтобы не разбрасываться пустыми словами, сделал пример, в котором ссылка в каждом из двух фреймов меняет содержимое отдельного элемента в другом.


YellowAfterlifeДата: Воскресенье, 10 Мая 2015, 23:17 | Сообщение # 259 | Тема: Конструктор\движок 2D, работающий в linux
Сейчас нет на сайте
Цитата vadim74a ()
Разве у него есть экспорт под Android?

Есть поддерживаемый сообществом порт для Android.


YellowAfterlifeДата: Воскресенье, 10 Мая 2015, 17:44 | Сообщение # 260 | Тема: Сурфейс под деревом
Сейчас нет на сайте
Цитата MrSlap ()
Тогда я поигрался с глубиной, и теперь дерево растёт выше темноты ночной! Это плохо.

А чем это плохо? Разве дерево (по крайней мере, его ветви) не должно быть полностью черным и над всеми объектами, поскольку свет до его вершины его кроны никак достать не может?

Уточнение: Я имею в виду, что дерево не может быть "ярким"/"освещенным" в любом случае, поскольку свет на него сверху попадать не может. Следовательно, можно оставить его над всеми объектами, и просто затемнить с помощью какого-нибудь image_blend.




Сообщение отредактировал YellowAfterlife - Воскресенье, 10 Мая 2015, 17:54
Поиск:

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