Потому что draw_sprite не учитывает image_blend. Делай draw_sprite_ext(sprite_index, image_index, x, y, image_xscale, image_yscale, image_angle, image_blend, image_alpha); Или draw_self() если это GameMaker: Studio.
VS Code это просто перепакованный atom.io - в нем нет никаких хитростей. Если уже брать VS то нужно брать обычный (бесплатный Community Edition, например) - в него входят инструменты для разработки веб приложений и с автозавершением у него лучше. WebStorm тоже весьма хитер, но стоит денег после первого месяца. Если правильно помню, еще можно подстроить Sublime Text для поиска информации в указанных файлах помимо файлов проекта.
Доступный функционал приблизительно одинаковый как для C# так и для JavaScript UnityScript. JS/US зачастую считают более простым, так как в нем очень редко приходится указывать типы переменных/параметров/возвращаемых значений, но компилятором эти проверки и преобразования всё равно проводятся, и изредка можно попасть в западню, если присваивать в одну и ту же переменную значения несовместимых типов.
Если напрямую присваивать phy_rotation = -point_direction(x,y,room_width/2, room_height/2), это что-то меняет? Подозреваю, что, возможно, на HTML5 изменения image_angle у физических объектов могут просто игнорироваться сразу.
Как сделать движущиеся стены (вернее, столкновение игрока с ними)?
Движущиеся стены обрабатываются так же как и обычные, плюс: Перед движением стена проверяет, может ли она сдвинуться в принципе; Для каждого двигаемого объекта перед стеной (проверяется обычно простым наличием движимой стены со стороны ее движения) делается попытка сдвига его на желаемое расстояние. Если сдвинуть нельзя, объект раздавливается или стена поворачивает в другую сторону. При нужде делается схожая проверка для объектов "сверху" стены но они не раздавливаются если стена не движется вверх. После сдвигается сама стена. Пример с подобным: http://yal.cc/get/xm/simple/dd-elevators.gmk
Сообщение отредактировал YellowAfterlife - Среда, 05 Августа 2015, 01:11
Преобразовать звуки в формат WAV - в старых версиях GameMaker'а звуки в формате MP3 проигрываются через компонент встроенного в системе плеера, в связи с чем запуск нового звука перекрывает старый.
Если вне выполнения игры, в редакторе есть опция "create from strip".
Во время выполнения игры можно делать sprite_create_from_surface/sprite_add_from_surface, предварительно нарисовав искомое изображение на выделенный под это дело surface.
Ошибка кажется немного мистической, но для начала ее источник можно локализовать - выставить каждый параметр в скрипте на отдельную строку, или в отдельную переменную - тогда отладчик укажет на отдельно взятую строку с бедами. Код не выглядит поломанным, но могу сделать предположение - с некоторых пор instance_destroy() исключает экземпляр из списка мгновенно, и по ID к нему больше обратиться нельзя. То есть: instance_destroy(); show_debug_message(self.x); // ок show_debug_message(self.id.x); // ошибка
понял в чём беда ХД просто в форе в скрипте использовал тоже название переменно что и выше лол (при том уже второй раз с этим мучаюсь)...
Для избежания таких бед ведь "var" и предназначен Более, что в GameMaker: Studio уже можно писать "var name = value", что означает лишь ввод дополнительных 4 символов для полной безопасности. Отлаживать код без десятков случайных переменных в каждом экземпляре так же удобнее.
Шаг навстречу точки со скольжением вдоль указанного типа объектов. Скользит лишь "прямо" по осям так как скольжение и так реализуется проблематично.
/// step_towards_gliding(x, y, speed, object) vartx, ty, ms, oi; tx = argument0; // target X ty = argument1; // target Y ms = argument2; // movement speed (pixels) oi = argument3; // object to avoid // write down the original coordinates and difference: vardx, dy, ox, oy; ox = x; oy = y; dx = tx - ox; dy = ty - oy; // if the distance is above the movement speed, // normalize the "difference" variables: vardd; dd = dx * dx + dy * dy; if (dd > ms * ms) { dd = ms / sqrt(dd); dx *= dd; dy *= dd; } // find the new coordinates: varnx, ny; nx = ox + dx; ny = oy + dy; // an easy case?: if (!place_meeting(nx, ny, oi)) { x = nx; y = ny; returntrue; } // okay, let's try stepping towards it: varax, ay, sx, sy; ax = abs(dx); sx = sign(dx); ay = abs(dy); sy = sign(dy); vari; nx = round(ox); ny = round(oy); if (ax > ay) { while (ax || ay) { if (ax && !place_meeting(nx + sx, ny, oi)) nx += sx; ax -= 1; if (ay && !place_meeting(nx, ny + sy, oi)) ny += sy; ay -= 1; } } else { while (ax || ay) { if (ay && !place_meeting(nx, ny + sy, oi)) ny += sy; ay -= 1; if (ax && !place_meeting(nx + sx, ny, oi)) nx += sx; ax -= 1; } } x = nx; y = ny; returntrue;
В зависимости от ситуации, может быть проще извратиться с box2d.
так новая проблема! можно какнибудь вылечить мёртвое зависание при запуске четверного фора на 10 типо for(a=10;a<10;a++){ for(b=10;b<10;b++){ for(c=10;c<10;c++){ for(d=10;d<10;d++){
} } } }
виснет даже если внутри пусто...(
А можно непосредственный случай использования кода? Потому что в приведенном примере даже первый цикл не запуститься (отсчет от 10 до 10 исключительно). Мое предположение - в одном из циклов ты делаешь обратный отсчет, но забыл поменять "++" на "--", вроде for (vari = 10; i > 0; i++) { }
Кто такой «Акционер Boomstarter»? «Акционер Boomstarter» — владелец именного сертификата «Акция Boomstarter», данный cтатус виртуальный, существует только внутри интернет-сообщества Boomstarter расположенного в сети интернет по адресу boomstarter.ru и не имеет отношения к реальным акционерам с точки зрения закона.
То есть на деле "акционеры" никаких прав не имеют.
Цитата
каждая акция ПАО «Краудфандинг» будет соответствовать 0,00005% от Уставного капитала общества.
Иными словами, 1 / 2 000 000 долю некого уставного капитала. То есть Бумстартер считает что их компания оценивается приблизительно в 2 миллиарда рублей.
Цитата
Будет ли владелец «Акции Boomstarter» получать дивиденды?
«Акция Boomstarter» не является ценной бумагой и не даёт её владельцу права на получение какой-либо прибыли от деятельности общества, но после того как владелец «Акции Boomstarter», согласно условиям опциона, приобретёт акции ПАО «Краудфандинг», у него появляется право на получение дивидендов в случае принятия решения о распределении прибыли между акционерами ПАО «Краудфандинг» в соотвествии с законодательством РФ об акционерных обществах.
И денег "акционеры" получать тоже не будут, кроме как "в случае" (видимо, банкротства).
Цитата
Возможно ли продать «Акцию Boomstarter»?
«Акция Boomstarter» является именным сертификатом и может принадлежать исключительно только тому лицу, кто её приобрёл; продать, подарить или передать её каким-либо иным способом третьим лицам невозможно. Однако, владелец «Акции Boomstarter», после приобретения на условиях опциона акций ПАО «Краудфандинг», становится полноправным акционером ПАО «Краудфандинг» и имеет право распоряжаться принадлежащими ему акциями по своему усмотрению в соответствии с законодательством России.
И делать с "акциями" тоже ничего нельзя (кроме, видимо, их сожжения). Полагаю, под мошенничество это не попадает, но этичным явно не является. Попытки продажи людям переоцененного сервиса посредством ввода их в заблуждение, и все такое.
доброго времени суток а есть что нибудь в гм с помощью чего можно узнать имена всех файлов которые находятся в папке?
Функции file_find_ позволяют перебирать файлы и\или папки в указанной папке. varname, dir; dir = "Some"; for (name = file_find_first(dir + "/*.*", 0); name != ""; name = file_find_next()) { show_debug_message(name); } file_find_close();
Сообщение отредактировал YellowAfterlife - Суббота, 01 Августа 2015, 10:51
YellowAfterlife, нет изменить маску во время самой игры.
physics_fixture_add_point и относящиеся. В справке есть примеры кода.
ЦитатаMaRSiAniN ()
Как уничтожить несколько экземпляров объекта кодом?
Удалить каждый из них по отдельности, with (id1) instance_destroy(); with (id2) instance_destroy(); Как вариант, можно сделать script вроде /// instance_destroy_ext(instance) with (argument0) instance_destroy(); и потом вызывать как instance_destroy_ext(id1); instance_destroy_ext(id2); Или запихнуть интересующие экземпляры в массив и пройти по нему, уничтожая их.
есть еще вопрос вот я на физический объект посылаю импульс в движение как сделать на проверку что ипульс уже закончил свое воздействие. Использую physics_apply_impulse
Можно следить за самой физической скоростью (phy_speed_x\y).
ЦитатаTransced ()
и еще вопрос как изменить физическую маску столкновений
Окно настройки маски столкновений вызывается по нажатию кнопки "Modify Collision Shape" в секции настроек физических переменных объекта.
ЦитатаRs11 ()
люди подскажите гм может как нибудь узнать количество свободной памяти на диске?
Существует DLL-ка для этого. Для записи файлов есть отдельный трюк, что сейчас пользуется во многих программах (включая Steam) - создать пустой файл указанного размера. Если операция прошла успешно, после содержимое заменяется на "настоящее". Это так же избавляет от потенциальных проблем в случае исчерпания пространства на диске другим ПО во время записи.
Сообщение отредактировал YellowAfterlife - Четверг, 30 Июля 2015, 20:59