У меня есть объект и он может иметь два спрайта, в одном случае без анимации, во втором с анимацией, где он фактически изменяет только "высоту" то есть там кадры чередуются таким образом 0-1-2-1-0-1-2-1 (цифра это как бы на сколько пикселей в кадре всё изображение нарисовано выше, чем в предыдущем кадре)
Мне нужно закрепить ещё спрайт без анимации рядом с объектом, то есть координаты отрисовки спрайта рядом с объектом должны соответствовать анимации спрайта объекта. Когда в анимации спрайта объекта весь спрайт поднимается на 1 пиксель, координата спрайта тоже должна быть координатаОтрисовки-1
При этом нельзя просто создать анимацию для спрайта, например, соответствующую анимации спрайта объекта (спрайт объекта может меняться, а другой спрайт всегда постоянный и должен отрисовываться в нужном месте, учитывая подъём-спуск изображения в анимации)
Вообще я находил одну такую штуку со свитчем и, в тоже время, думал о наличии задержки, но я не такой скилованный и не оч знал как свитч в принципе может работать в моём случае помимо простых.
Именно со сменой значений и была проблема, можно было ухитриться но это было не удобно, ну постоянно успевать отпускать обе смежные клавиши.
В общем я был не уверен, но теперь всё круто, управляться значение стало значительно мягче, спасибо за подробное объяснение!
Помогите, пожалуйста, разобраться. У меня есть переменная, скажем, n. Она может принимать значения от 1 до 8, значение зависит от нажатых клавиш, например, WASD, то есть, W, A, S, и D это одни 4 значения, а смежные сочетания типа WA и WD это другие 4 (как в движении в 8 возможных сторон, но мне эта заморочка не для движения).
Мне нужно, чтобы когда я отпускал клавиши, запоминалось значение, например, если я держал S и D, то когда я отпустил их обе (естественно не факт, что одновременно, у меня запомнилось бы значение (одно из этих 8 возможных) для SD), но при этом если я отпущу сначала D и буду держать только S то установилось значение, которое устанавливалось бы для S. А если я держу ADS, то выходит что я держу только S (потому что обе нажатые в данном случае - всё равно что ни одна из них не нажата).
Если я держал S и D, то текущее значение пока я их держу и уже потом будет равно соответствующему (сначала значение SD а потому той, которая останется нажатой), то есть если я отпущу одну из смежных то значение измениться, а когда вторую отпущу установится последнее соответствующее (опять таки как при движении в 8 возможных сторон)
Значения могут идти против часовой стрелки, начиная с D, или D, DW, W, WA и так далее (как image_angle от 0 до 360 (или снова 0))
Сообщение отредактировал StarLLaythe - Пятница, 28 Июня 2019, 20:57
Что будет являться более ёмким для GM'а, для игры?
Большое количество спрайтов, или меньшее количество спрайтов с большим количеством кадров (подспрайтов), это, например, если я все спрайты для рук персонажа закину в один спрайт, сначала стоя, потом анимацию бега, а потом спрайт падения, и буду выбирать диапазон для бега, и просто два других спрайта в других двух случаях, то как будет лучше? Понятно, что проще подспрайты юзать, как image_index, а для производительности это как будет?
Или оно не так сильно влияет? Может есть варианты ещё лучше?
Привет я тут настраивал камеру, нашёл в Инетике такой код
Код
x += (PLAYER.x - x) * 0.1 y += (PLAYER.y - y) * 0.1
PLAYER - игрок соответственно.
Данный кусочек должен двигать камеру за игроком чуть медленнее его скорости (как я понял)
Скорость игрока тоже довольно сильно может меняться (от нуля и до почти двух пикселей) Возможно, я выбрал ооочень маленькое разрешение для графики... меняется скорость сотыми пикселя.
Ну так вот, игрок передвигается очень плавно, камера буквально плавает, даже слишком гладко.
Но вот вид, который следит за камерой двигается по пикселям (камера двигается очень медленно но плавно, и как только она проходит один внутриигровой пиксель, вид сдвигается сразу на 1 пиксель целиком, что в итоге очень раздражает, когда он начинает дёргаться вблизи, на большой скорости этого вроде как нет)
Мне нужно, что бы вид передвигался не целыми пикселями, если это возможно в таких условиях.
Размер вида 215х130 (215 - ширина).
//Или я слишком придираюсь и так и должно быть?
Возможно я сам нашёл решение но пока рано говорить. Если всё сделаю то выложу.
Похоже стоит отталкиваться от
Код
camera_set_view_speed(по x, по y)
для GM 2.0 (а как переменные можно использовать что угодно, так можно детально настроить скорость)
Сообщение отредактировал StarLLaythe - Вторник, 26 Февраля 2019, 22:09
Всем привет, я решил продвинуться в следующем направлении.
Вот мой вопрос: как сделать так, чтобы объекты к которым подходит игрок, если они находятся "ближе" к игроку, а персонаж как бы за ними, становились прозрачными? Например как в CrossCode'е. Имею ввиду что этими объектами могут быть объекты вроде зданий, небольшие стенки, например, не попадают в этот список.
Кроме того, наверное, если это окружение, то будет не очень здорово делать его из отдельных объектов, но тогда как?
Шож, попробую. Надо будет поработать с draw_sprite вообще, но возможно переработка затянется, хотя вариант крайне годный.
Пока что не разобрался но анимации нет в таком случае.
При чём если я двинусь спрайт нереально ускоряет анимацию (по приколу сунул в номер image_index), вообще я спрайты для изменения персонажа ещё не отрисовывал, но сейчас масштаб, видимо, требует.
Есть мысль, как это поправить но пока пробовать, наверное, не буду.
Сообщение отредактировал StarLLaythe - Вторник, 18 Декабря 2018, 09:43
Просто дело в том, что я как бы продвинулся в разработке довольно сильно, особенно относительно своих первых наработок, но я всё не затрагивал в этом процессе, и не знаю что привязать к такой переменной)) (это если честно, ну я такие штуки уже делал, но что привязывать в качестве данных отражения я не знаю, где их взять то?)
Ну ладно я если сделаю по маске персонажа отдельный спрайт и поставлю как маску в настройках, то я заменю ему маску в принципе в любом случае и она будет отражаться ровно, если центр в середине?
Но вот что касательно своего скейла, я не совсем понял зачем...
Добавлено (17 Декабря 2018, 15:58) --------------------------------------------- Вообще не пойму, по сути я должен относительно центра и спрайт и маску отразить ровно, но нет, нашёл случайный способ решения:
Нужно проверить столкновение на расстоянии скорости +- 2 пикселя, но я думаю что костыли - это не оч хорошо, правда у меня некий дедлайн в среду так что оставлю пока вот так, но если решения найдутся то я костыль сменю))
Дело в том, что это происходит и с одним спрайтом, в покое причём. То есть я стою и кручусь в стороны, ну и спрайт дёргается, раз он равен маске, я как бы могу смотреть где она находится по нему, и она не много перемещается при смене x скейла, не важно что это за спрайт.
Спрайты оригинальные все одинаковые, маска в одних координатах у всех, центр тоже, и всё это соответствует рисунку, так как я скопировал спрайт покоя и перерисовал, настройки маски и центра сохранились.
Приветик, у меня возникла первая за игру проблемка, и очень не понятная. Вкратце, суть: У меня есть персонаж, персонаж, как и положено отражается влево и вправо, то есть image_xsclae = 1 или -1. Но вот только отражается он не ровно, я попробовал взять спрайт 9x30, не тот что был на персе, поставил центр на 4 пиксель (если считать первый нулевым то 4 - 5 или же середина), центр соответствует центру спрайта, рисунка и колижн модели(ну или маски), то есть всё вообще ровнее некуда.
//Все спрайты одинаковые сделанные с одно спрайта "стоя" (точнее он дублирован и каждый раз перерисован)
Как я понял, если идти например влево с image_xscale = 1 (глядя вправо), то я могу подойти "задом" вплотную к стене, как и положено. Но когда я подойду и развернусь, то я не разворачиваюсь не по центру, а немного криво и часть колижн маски оказывается дальше, внутри стены. Соответственно я не могу прыгать или, если падаю, глядя в сторону от стены и вплотную а потом поворачиваюсь - застряю.
Столкновение у меня проверяется на расстоянии скорости, у меня ещё есть ускорение и замедление (пока что крайне костыльно написанное), я проверял на устойчивой скорости, и убедился что сама скорость вроде как не влияет, и окончательно убедился когда проверил с другим спрайтом на месте, том самом 9x30, у которого колижн маска - всё изображение, в итоге она криво крутится вместе со спрайтом? В новом объекте с тестовым спрайтом вообще была написана только гравитация и перемещение и ничего более.
Сообщение отредактировал StarLLaythe - Понедельник, 17 Декабря 2018, 10:36