Результаты поиска
| |
YellowAfterlife | Дата: Среда, 08 Апреля 2015, 18:35 | Сообщение # 301 | Тема: Аркада и сохранение. |
Сейчас нет на сайте
| Как предельно простой способ, можно записывать очки игрока в конце игры/матча в стандартную таблицу рекордов, highscore_add("", score) и потом просто сравнивать наибольшее (первое место) значение if (highscore_value(1) >= 100) { }
|
|
| |
YellowAfterlife | Дата: Среда, 08 Апреля 2015, 18:31 | Сообщение # 302 | Тема: замена определенной части строки другой |
Сейчас нет на сайте
| Цитата utyfua ( ) я начал проект на gm 8.1... что посоветуете сделать? Цитата YellowAfterlife ( )
|
|
| |
YellowAfterlife | Дата: Среда, 08 Апреля 2015, 18:30 | Сообщение # 303 | Тема: Движущаяся полоса |
Сейчас нет на сайте
| По вкусу - можно или "Tiled Background" (замощенный фон) использовать, или "9-slice" (если нужны красивые края; только в Construct 2 вроде бы) - для обоих из них можно менять размер через "Size & Position - Set width".
|
|
| |
YellowAfterlife | Дата: Среда, 08 Апреля 2015, 18:24 | Сообщение # 304 | Тема: замена определенной части строки другой |
Сейчас нет на сайте
| Поддержки регулярных выражений по-умолчанию нет. Но бывают расширения для этого - для GameMaker: Studio | для старых версий.
|
|
| |
YellowAfterlife | Дата: Среда, 08 Апреля 2015, 08:21 | Сообщение # 305 | Тема: есть ли eval в gml? |
Сейчас нет на сайте
| В GameMaker 8.1 и ниже есть - execute_string. В GameMaker: Studio это убрали во время реогранизации архитектуры - структура программы стала хранится в байт-коде или скомпилированном коде соответственно, что в обоих вариантах не дает особого повода писать и цеплять к этому еще отдельный интерпретатор кода (что не будет на ровне по скорости).
|
|
| |
YellowAfterlife | Дата: Вторник, 07 Апреля 2015, 12:37 | Сообщение # 306 | Тема: Вопрос - Ответ (Game Maker) |
Сейчас нет на сайте
| Цитата mad_bako ( ) еще вопросик. А draw в событий mouse event работает? Функции рисования работают лишь в событии рисования, как можно заподозрить. Если нужно отображать что-то при наведении мыши то это можно сделать так: draw_self(); if (position_meeting(mouse_x, mouse_y, id)) { // если текущий объект находится под мышью draw_set_color(c_white) draw_text(224, 320, "Уровень Бендера: "+string(global.bender)) draw_text(224, 340, "Цена обучения: "+string(bender_cena)) draw_text(224, 360, "Для обучения Бендера нажмите на его изоброжение"); }
Сообщение отредактировал YellowAfterlife - Вторник, 07 Апреля 2015, 12:38 |
|
| |
YellowAfterlife | Дата: Вторник, 07 Апреля 2015, 07:46 | Сообщение # 307 | Тема: Вопрос - Ответ (Game Maker) |
Сейчас нет на сайте
| Цитата mad_bako ( ) Если написать на английском, то всё отображается. Подскажите что не так? GMS, я полагаю? Если так, то нужно в шрифт добавлять не 0-255, а отдельные диапазоны 32-127 (латиница и всякие символы) и 1040-1111 (кириллица).
|
|
| |
YellowAfterlife | Дата: Понедельник, 06 Апреля 2015, 11:28 | Сообщение # 308 | Тема: Помощь по Love2D |
Сейчас нет на сайте
| Цитата Ramilyanamana ( ) а еще подскажите, пожалуйста, как повернуть физический объект. угол вроде меняется, а сам объект не поворачивается Обычно с помощью Body:setAngle
|
|
| |
YellowAfterlife | Дата: Воскресенье, 05 Апреля 2015, 17:29 | Сообщение # 309 | Тема: Та самая точка поворота, и остального. |
Сейчас нет на сайте
| Обычно так: var ox, oy, od; ox = 20 // смещение от центра по X oy = 10 // смещение от центра по Y od = image_angle // угол поворота instance_create( x + lengthdir_x(ox, od) + lengthdir_x(oy, od - 90), y + lengthdir_y(ox, od) + lengthdir_y(oy, od - 90), obj_bullet)
|
|
| |
YellowAfterlife | Дата: Воскресенье, 05 Апреля 2015, 17:22 | Сообщение # 310 | Тема: 3D режим. |
Сейчас нет на сайте
| d3d_set_projection устанавливает камеру так, что она смотрит с точки, определенной аргументами 1-3 (xfrom, yfrom, zfrom) на точку, определенную аргументами 4-6 (xto, yto, zto). Аргументы 7-9 определяют "направление вверх" камеры, для многих случаев их можно установить в (0, 0, 1) (если игра происходит на плоскости XY, и Z это направление вверх\вниз от нее). sin/cos включают в себя преобразование угла из градусов в радианы, и используются для получения точки, смещенной от изначальной в направлении взгляда камеры.. Их можно заменить на lengthdir_ (или даже dcos/dsin, если в GMS), приводя код к следующему виду: d3d_set_projection(x, y, z, x + lengthdir_x(1, direction), y + lengthdir_y(1, direction), z, 0, 0, 1)
Сообщение отредактировал YellowAfterlife - Воскресенье, 05 Апреля 2015, 17:24 |
|
| |
YellowAfterlife | Дата: Суббота, 04 Апреля 2015, 18:09 | Сообщение # 311 | Тема: [2D] Bitesize Wars |
Сейчас нет на сайте
| Прошло некоторое время с моего последнего обновления тут...
Над чем велись работы в прошедший месяц: 1. "Сетевой движок" был значительно переписан для поддержки более чем двух игроков - в теории до 128, но на практике скорее всего где-то до 16, так как это синхронный мультиплеер (лагает один - ждут все) и между всеми игроками устанавливаются прямые подключения для минимизации задержек. 2. Поскольку установка прямых подключений без открытия портов на TCP это ужасающе хитрая (и зависящая от сетевых устройств) вещь, сетевая часть так же была переведена на UDP с простым слоем безопасности поверх него (проверяется статус доставки и целостность пакетов). 3. Отвязка игры от изначальной конструкции на двоих игроков. Так как все шло обычным ходом, и вдруг игроков может быть и не два, и игроками могут быть и не людьми (а пустыми слотами / ИИ), и индексы сетевых функций с номерами игроков могут и не совпадать (если они менялись местами перед началом игры). Ох. 4. Разработка непосредственного скриптового API для самой игры - сценарии в картах будут иметь возможность делать нехитрые вещи вроде создания и командования войсками, но и более изощренные вроде отключения интерфейса или перехвата событий мыши для их обработки самим сценарием. Вроде бы ничего и не готово, а уже полсотни функций в общей сложности.
Сегодня пробовали играть втроем с художником и еще одним человеком: В общем-то игра работает, но поиграть особо не получилось, так как у третьего игрока творилась какая-то чертовщина с интернетом. Еще художником были аккуратно измерены все расстояния на карте (чтобы было честно для всех игроков), но при этом оказалось, что башни стоят слишком близко друг к дружке и начинают вести перестрелку как только начинается матч.
|
|
| |
YellowAfterlife | Дата: Суббота, 04 Апреля 2015, 15:43 | Сообщение # 312 | Тема: Продам лицензию GameMaker: Studio Master Collection |
Сейчас нет на сайте
| Цитата Ragnorak ( ) У меня просто ошибка в программе, выяснил что это в винде, ошибку устранить не смог, а винду сносить не буду, по этому продаю http://prntscr.com/6peo83 Как тебе уже отвечали в ВК, в таких случаях пишут в тех. поддержку (если куплена вчера то могут вернуть деньги).
|
|
| |
YellowAfterlife | Дата: Четверг, 02 Апреля 2015, 18:07 | Сообщение # 313 | Тема: Получится ли сделать такую игру в GM? |
Сейчас нет на сайте
| Цитата PATCH1 ( ) даже с ровными руками писать на костыле GML - куда менее производительнее чем использовать стандартные функции написанные на том же Delphi. Цитата XDominator ( ) GMS переписан на С++ 1. "Runtime" для GMS переписан на С++, что помогает. 2. Если использовать YYC на GMS, GML код перегоняется в [очень странный] C++ код, что дает еще большую производительность. 3. Прямые руки в контексте системы нахождения путей очень много решают: К примеру, есть абсолютно непримечательная карта размером 16х16 клеток, содержащая какое-то сооружение: Сколько вершин графа (условно или непосредственно) построит классический алгоритм нахождения пути? 229: Конечно, поиск по двухмерному массиву логических значений несколько помогает скорости, но факт остается фактом - количество ячеек растет в геометрической прогрессии (ширина * высота), и поиск путей между точками на противоположных концах карты может быть весьма и весьма затратным. Сколько же требуется для работы? 14: (урезаны промежуточные точки - остаются лишь "поворотаы") А если совместить систему нахождения пути с "видимостью", то можно и вовсе сократить до 6 точек: В общем-то дело хитрости - или строить граф вручную или написать достаточно изощренный алгоритм отпимизации, то даже на старых версиях GM можно получить вполне приемлимую производительность.
|
|
| |
YellowAfterlife | Дата: Четверг, 02 Апреля 2015, 10:02 | Сообщение # 314 | Тема: Большая форма ввода переменной |
Сейчас нет на сайте
| Пример. Вкратце - обрабатывать keyboard_string для ввода в текущую строку, хранить остальные строки в массиве, обрабатывать переключения между ними другими кнопками.
|
|
| |
YellowAfterlife | Дата: Вторник, 31 Марта 2015, 14:52 | Сообщение # 315 | Тема: События в скриптах выполняются медленнее? |
Сейчас нет на сайте
| Сами события медленнее не выполняются, но вызов скрипта (и возврат из него) занимает момент времени, приблизительно сопоставимый с временем считывания нескольких переменных. На GMS меньше. На GMS с YYC совсем мало. В общем-то, делать скрипты, не делающие ничего кроме одного возврата переменной (или какой-то операции над ней), не желательно (для помощи с авто-завершением есть макросы), но и до "оптимизаций" с копированием-вставкой содержимого скриптов лучше не доходить. Всегда имеет смысл сравнить время выполнения для отдельно взятого случая.
|
|
| |
YellowAfterlife | Дата: Вторник, 31 Марта 2015, 11:03 | Сообщение # 316 | Тема: Вопрос - Ответ (Game Maker) |
Сейчас нет на сайте
| Цитата t111 ( ) Мучает один вопрос, почему не работает функция object set mask? Нужно присваивать новый индекс маски в mask_index, к примеру, mask_index = spr_player_mask а не через object_set_mask, что лишь меняет маску для новых созданных экземпляров.
|
|
| |
YellowAfterlife | Дата: Вторник, 31 Марта 2015, 04:00 | Сообщение # 317 | Тема: Ввод текста в GMS |
Сейчас нет на сайте
| Цитата Randall ( ) Не вводятся заглавные буквы от А до П в русской раскладке. Что не так?? Это какой-то мистический баг в GM:S (keyboard_string не видит эти символы, keyboard_lastchar видит). Я отправил его на багтрекер некоторое время назад, и к нему был приставлен ответственный человек, но баг еще не исправлен.
|
|
| |
YellowAfterlife | Дата: Вторник, 31 Марта 2015, 01:41 | Сообщение # 318 | Тема: Глобальный массив |
Сейчас нет на сайте
| Ругаться на что? Синтаксис не слишком хитрый, globalvar some_array; some_array[0] = 1 show_message(some_array[0]) Одна лишь заметка, что в отличии от var, для globalvar нельзя писать "var name = value".
|
|
| |
YellowAfterlife | Дата: Понедельник, 30 Марта 2015, 15:44 | Сообщение # 319 | Тема: Получится ли сделать такую игру в GM? |
Сейчас нет на сайте
| Прицеливание не слишком сложно реализовать. Вот даже пример: vis-iso-aim.gmk Если это еще не решено, советую использовать не изометрическую сетку (как на фоне примера), а обычную аксонометрическую (когда видна лишь передняя сторона стен) - это значительно упрощает многие аспекты игры.
Костюмы обычно делаются созданием "накладываемых" слоев графики, рисуемой сверх основного изображения.
В общем-то говоря, да, затратно из-за объемов графики. Многие игры сейчас эксперементируют с вариантами, когда наклон камеры делается еще более "сбоку" и используют лишь одну или две анимации (объект смотрит влево\вправо).
|
|
| |
YellowAfterlife | Дата: Понедельник, 30 Марта 2015, 01:04 | Сообщение # 320 | Тема: id объекта при клике мыши на него |
Сейчас нет на сайте
| Цитата hmpr ( ) так он вообще не видит такой переменной и ошибку выдает Установку угла нужно действительно вынести из блока, но добавить проверку на существование врага. Create Event: target = noone
Step Event: if (instance_exists(target)) { image_angle = point_direction(x, y, target.x, target.y) }
|
|
| |
|