Суббота, 23 Ноября 2024, 21:33

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Результаты поиска
YellowAfterlifeДата: Понедельник, 23 Марта 2015, 21:02 | Сообщение # 341 | Тема: Изменение размера спрайта
Сейчас нет на сайте
Цитата XDominator ()
Уверен, что collision_line это тот же collision_point, просто уже загнанный в цикл, а значит что фактически при таком подходе код не ускорится, а замедлится до 2х раз при максимально возможном расстоянии, т.к. это самое расстояние будет прокручиваться 2 раза вместо 1-го. Хотя без замеров времени выполнения line и point не буду утверждать это на 100%

collision_line это не collision_point в цикле. Будь это так, разве не должно было бы время выполнения функции расти с увеличением расстояния между точками, в конечном счете вызывая сбои в работе игры из-за превышения допустимых норм? Но этого не происходит. collision_line требует одинакового времени выполнения вне зависимости от того, является ли длина отрезка 100 пикселей, или 100 миллионов пикселей.
Стандартные принципы реализации такой функции подразумевают следующее:
Цитата
Для каждого экземпляра подходящего вида:
Если bounding box экземпляра пересекает прямоугольник, в который вписана линия (4 числовых проверки):
Если bounding box экземпляра пересекает линию (более затратно):
Если флаг precise == false, у экземпляра не "точная" маска столкновений, или линия пересекает пиксельную маску (наиболее затратно):
Прервать цикл, вернуть ID экземпляра

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


YellowAfterlifeДата: Понедельник, 23 Марта 2015, 20:33 | Сообщение # 342 | Тема: Construct 3 – каким он будет?
Сейчас нет на сайте
Цитата IvanKorobko ()
Зато конечным пользователям глубоко по барабану со скриптингом была сделана игра или без...

Вон к примеру от Ketchapp 2 игрушки в топах мобильных повисли: Bounce и Phases, так они вообще на Buildbox сделаны, где всё основано исключительно на пресетах встроенных...

Какое отношение имеет данное утверждение к проходящему здесь обсуждению?

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

Но в интересах разработчика не выбирать инструмент, разработка на котором в какой-то момент может застопорится из-за того что какой-то функционал игры сделать не получается, и выбор стоит между поиском специалистов по совокуплениям с SDK/API инструмента (которых зачастую днем с огнем не сыщешь) и переносом игры на другой движок (что порой означает отсрочку выхода игры на месяца со всеми выходящими последствиями).

И если на момент вспомнить, что мы не говорим о компании, что практически является сферическим золотым конем в вакууме, для большинства маленьких команд является неприемлемой мерой если на 5 игр разработчику пришлось изучать 3 разных движка.

Для каких-то игр код не обязателен (можно даже поспорить, что для большего количества, чем принято полагать), для других фактически необходим, и более чем логично выбирать инструменты так, чтобы они покрывали весь спектр желаемых типов игр.


YellowAfterlifeДата: Понедельник, 23 Марта 2015, 03:12 | Сообщение # 343 | Тема: настольная серия D20 и D&D
Сейчас нет на сайте
Цитата Linka ()
Как, через Скайп смотреть? Тогда уж лучше вариацию для ПК какую-нибудь найти, наверное.

Есть еще, к примеру, Tabletop Simulator, в который можно импортировать карточки/модели объектов/прочее для сборки виртуального варианта интересующей настольной игры и последующей игры в нее по сети. Люди занимательные вещи с ним делают.


YellowAfterlifeДата: Понедельник, 23 Марта 2015, 03:03 | Сообщение # 344 | Тема: BasiEgaXorz - какой в нём Бейсик используется?
Сейчас нет на сайте
А какой ЯП знаете?
Есть еще компилятор C (на самом деле даже не один) для Sega.

Синтаксис в BEX более-менее стандартный BASIC-овский, с обычными для компиляции под микроконтроллеры ограничениями (никаких классов, статичные переменные). Существует страница с списком всех операторов и функций (осторожно: вырвиглазые цвета).
На GCUP'овской странице о программе есть ссылка на форум программы, где есть некоторое количество примеров кода.

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




Сообщение отредактировал YellowAfterlife - Понедельник, 23 Марта 2015, 03:04
YellowAfterlifeДата: Понедельник, 23 Марта 2015, 02:34 | Сообщение # 345 | Тема: Save
Сейчас нет на сайте
Проще всего использовать "INI object", что позволяет читать и записывать файлы с содержимым вида
Код
[game]
bam=8

чтобы записать файл в папку игры, путь нужно указывать как
Код
apppath & "game.ini"

насколько я помню.

Если файл не должен быть легко редактируемым пользователем, в "Hash object" так же есть функции сохранения/загрузки, что на выходе дают относительно "зашифрованный" файл.




Сообщение отредактировал YellowAfterlife - Понедельник, 23 Марта 2015, 02:34
YellowAfterlifeДата: Понедельник, 23 Марта 2015, 02:25 | Сообщение # 346 | Тема: Construct 3 – каким он будет?
Сейчас нет на сайте
Еще когда Construct 2 проходил Greenlight, я спрашивал про скриптинг, и разработчики ответили "хочешь код - используй JavaScript SDK". И все равно что SDK неудобный до ужаса (я писал плагин, реализующий GameJolt API), не позволяет без ухищрений вызывать код стоящий за стандартными блоками в редакторе (хочешь рисование - пиши отдельные две реализации для Context2d и WebGL) и не имеет особых средств для контакта с остальной игрой.
Было бы круто если бы какой-то язык программирования всё-таки добавили, но что-то мне подсказывает, что ответом останется "Используйте SDK".


YellowAfterlifeДата: Суббота, 21 Марта 2015, 16:37 | Сообщение # 347 | Тема: Вопрос - Ответ (Game Maker)
Сейчас нет на сайте
Цитата Luxorix ()
У меня уже мозг плывет. Попробовал сделать так:

В чем проблема этого кода. Когда враг уничтожен то с клеток не снимается блокировка. Если появляется новый активный враг, то клетки вокруг него блокируется, а все остальные на карте разблокируются. Есть у кого-нибудь пример нормальной работы с сетками или чтобы перебирались объекты нормально. В этом примере вроде бы проблема в том, что после удаления объекта он не удаляется из массива, а как его удалить я не знаю.
Это очень странный код. Насколько часто он выполняется и из клеток ли вовсе?
Приведенное в нем "lock = 1 else lock = 0" подозревается в поломке выполнения при наличии более чем одного врага на карте.
По меньшей мере стоит делать

Ну или даже так (зачем перебирать все объекты?):


YellowAfterlifeДата: Четверг, 19 Марта 2015, 22:08 | Сообщение # 348 | Тема: MegaKerma
Сейчас нет на сайте
MegaKerma рассчитан на создание логических игр. Посмотрите Silent Walk FPS Creator того же автора.

YellowAfterlifeДата: Четверг, 19 Марта 2015, 01:08 | Сообщение # 349 | Тема: Изменение размера спрайта
Сейчас нет на сайте
В зависимости от поворота изображения, менять image_xscale или image_yscale.
Чтобы растянуть до столкновения можно использовать цикл, к примеру
Код
var sd;
sd = 0.25 // изменение масштаба за шаг цикла
image_yscale = 1
repeat (200) { // максимальная длина лазера. спасает от зависания если препятствий на пути нет.
     image_yscale += sd
     if (place_meeting(x, y, obj_solid)) {
         // если на что-то наткнулись то отменяем последнее расширение
         image_yscale -= sd
         break
     }
}
Можно и иными способами проверять, это уже зависит от случая использования.


YellowAfterlifeДата: Вторник, 17 Марта 2015, 06:51 | Сообщение # 350 | Тема: [2D] Aricards
Сейчас нет на сайте
Название игры: Aricards
Жанр: 2D карточная игра
Платформы: PC - Windows.
Средство разработки: GameMaker: Studio
Разработчики: YellowAfterlife (код), Aristokrat952 (графика)

Aricards это маленькая карточная игра для двух человек.

Она рассчитана на быструю игру и имеет легкий уклон на анализ или угадывание действий оппонента.

Можно использовать набор правил и играть с обычными игральными картами, или скачать игру и играть по сети.

Правила игры:

Скриншоты:


Ссылки на скачивание: [itch.io]




Сообщение отредактировал YellowAfterlife - Вторник, 17 Марта 2015, 06:53
YellowAfterlifeДата: Воскресенье, 15 Марта 2015, 21:11 | Сообщение # 351 | Тема: Вопрос по инвентарю в Game Maker
Сейчас нет на сайте
Цитата vampir0305 ()
Ещё возник вопрос как поменять местоположение инвентаря?
В событии draw пробовал, но не получилось.

Шаг:
Draw:
В общем-то добавлять нужные x/y при рисовании, и отнимать их при определении слота.


YellowAfterlifeДата: Воскресенье, 15 Марта 2015, 12:42 | Сообщение # 352 | Тема: Перевод нужного текста в цифры
Сейчас нет на сайте
В любую цифру? Если так, то почему бы не воспользоваться ord() и chr(), что возвращают код символа и преобразовывают код обратно в символ-строку соответственно.

YellowAfterlifeДата: Пятница, 13 Марта 2015, 15:38 | Сообщение # 353 | Тема: Можно ли открыть комнату, не закрывая предыдущей?
Сейчас нет на сайте
Цитата PAULVIT ()
Это не совсем то, что мне нужно.

А для каких целей это нужно? Можно удвоить кадровую частоту (room_speed) в обоих комнатах и переключаться между ними каждый шаг (рисуя их одну сверху другой или пропуская рисование ненужной), но обычно до такого не должно доходить.


YellowAfterlifeДата: Четверг, 12 Марта 2015, 15:52 | Сообщение # 354 | Тема: Сохранение состояния комнаты при переходе в другую комнату.
Сейчас нет на сайте
Кажется, это вопрос по "Game Maker", а не по "Raycasting Game Maker".
Предполагая, что я прав, в комнате на вкладке настроек есть галочка "persistent" (в русской версии - "постоянная"). Если галочка поставлена, состояние комнаты будет сохранятся при выходе из нее. Чтобы размещать игрока на нужной позиции при хождении между комнатами, его объект можно так же сделать постоянным (галочка в окне редактирования объекта), и изменять расположение в начале комнаты (англ. "Room Start").


YellowAfterlifeДата: Среда, 11 Марта 2015, 18:16 | Сообщение # 355 | Тема: Телефонная клавиатура
Сейчас нет на сайте
Встроенной команды нет. Можно написать нативное расширение. Или купить существующее (пример). Или сделать виртуальную клавиатуру средствами рисования и слежения за касаниями на экране.

YellowAfterlifeДата: Вторник, 10 Марта 2015, 22:58 | Сообщение # 356 | Тема: Монетизация десктопной игры
Сейчас нет на сайте
Я видел, в некоторых играх внутри лаунчера (а порой и для каких-то операций в самой игре) используется "фрейм" браузера, в котором в свою очередь [рядом с интерфейсом] вполне легально сидит блок рекламы. Конечно, это не идеальное решение, но хоть что-то.

YellowAfterlifeДата: Понедельник, 09 Марта 2015, 17:42 | Сообщение # 357 | Тема: Столкновение со стеной в платформере
Сейчас нет на сайте
Можно сделать "отскок" при ударе об потолок,
Код
if speed_y > 0 {  
      move_contact_solid(270,-1);  
      speed_y = 0;  
} else {  
      move_contact_solid(90,-1);  
      speed_y = -speed_y * 0.5; // 0.5 - фактор смены скорости
}

Цитата PAULVIT ()
Кстати, кто-нибудь уже делал платформеры на гамаке? Вообще стоит ли или попробовать другой конструктор?
Точная статистика неизвестна, но есть основания полагать, что умеренное количество игр на GameMaker'е - платформеры. Этому способствует набор стандартных функций (place_free/place_meeting/..), что позволяют довольно легко создавать и изменять поведение объектов в зависимости от окружения.


YellowAfterlifeДата: Понедельник, 09 Марта 2015, 12:27 | Сообщение # 358 | Тема: Из строки в константу
Сейчас нет на сайте
Пример с упомянутыми data structure для GM <= 8.1
Для GMS же все действительно просто:
Код
var unit1='obj_hero';   
instance_create(0,0,asset_get_index(unit1))

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




Сообщение отредактировал YellowAfterlife - Понедельник, 09 Марта 2015, 12:27
YellowAfterlifeДата: Понедельник, 09 Марта 2015, 12:19 | Сообщение # 359 | Тема: Числа вместо букв
Сейчас нет на сайте
Console.WriteLine оправдано считает char числовым типом, и выводит коды символов (сказать более, перед выводом он складывает указанные три кода символов). Этому есть несколько решений:
1. Можно воспользоваться тем фактом, что { String + char } в C# возвращает строку с добавленным в конец символом.

Поскольку одинаковые операторы обрабатываются слева направо, { "" + ch1 + ch2 + ch3 } обрабатывается как { ((("" + ch1) + ch2) + ch3) }, то есть добавляет все три символа в новую пустую строку.
2. Можно использовать тип, в "строчности" которого Console.WriteLine уверен. Массив char-ов таковым является:

Это решение так же более удобно, если позже понадобится дописывание кода для преобразования введенных пользователем строк.




Сообщение отредактировал YellowAfterlife - Понедельник, 09 Марта 2015, 12:20
YellowAfterlifeДата: Воскресенье, 08 Марта 2015, 13:24 | Сообщение # 360 | Тема: Решаем задачи по Construct Classic [вопрос-ответ]
Сейчас нет на сайте
Цитата last2424 ()
Ребят, есть такая проблема. Сделал анимацию уничтожения. Не могу уничтожить объект через сравнение кадров.
Есть ли какие ещё способы уничтожения после проигрывании анимаций(анимация зависает после проигрыша если что)?

Для спрайтов есть событие "Animations - On Finished", что выполняется по завершению анимации.


Поиск:

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