Ув. Господа такая проблема. Когда отрисовываю спрайт, не могу пустить анимку. Т.е. у меня отрисовываються сразу несколько спрайтов,но так как главный только один и у него в данный момент индекс = 0, то и у остальных спрайтов индекс = 0
Всем привет!!! У меня вопрос... Есть такой вот код перемещения объекта стрелочками фотка с кодом... (sp - это переменная равна 4) Но по непонятной мне причине, объект не движется по диагонали вправо+вниз... Из-за чего это может быть?
П.С. По всем остальным диагоналям он двигается чётко
Сообщение отредактировал _ToBe_ - Суббота, 02 Марта 2013, 20:28
_ToBe_, неправильно код написал. Меньше else и лишних действий надо было ставить:
Код
if keyboard_check(vk_up) y -= sp*2 else if keyboard_check(vk_down) y += sp*2; if keyboard_check(vk_left) x -= sp*2 else if keyboard_check(vk_right) x += sp*2;
GameMix cпасибо за помощь... сделал как ты написал, но проблема осталась... всёравно вправо+вниз по диагонали не двигается... а что если поставить на другие клавиши? может дело в клавиатурных стрелках?
UPD: Да, проблема решилас переставив управление на "WASD"
Код
if keyboard_check(ord("W")) y -= sp*2; if keyboard_check(ord("S")) y += sp*2; if keyboard_check(ord("A")) x -= sp*2; if keyboard_check(ord("D")) x += sp*2;
UPD#2: Проблема была именно с моей клавиатурой... Проверил на другом компьютере, всё двигается на стрелочках нормально
Сообщение отредактировал _ToBe_ - Понедельник, 04 Марта 2013, 00:03
Всем привет! Как сделать, чтобы анимация начилась в обратную сторону, т.е. с последнего кадра к первому? И как можно задать объекту позицию курсора (object.x = mouse_x;object.y = mouse_y;), а то что-то не получается... Заранее спасибо!
Как сделать, чтобы анимация начилась в обратную сторону, т.е. с последнего кадра к первому?
Установи image_speed отрицательное значение.
Цитата (marsep)
И как можно задать объекту позицию курсора (object.x = mouse_x;object.y = mouse_y;)
Сам и ответил на свой вопрос. Пропиши object.x = mouse_x;object.y = mouse_y; в STEP объекта. Если ты делаешь курсор, то лучше рисуй в координатах мыши нужный спрайт. LUXORIX GAMES
Всем привет! Нужна помощь в реализации анимации поворота турели...
Имеется объект (1) в точке А (например, турель) и при запуске игры создается еще один объект (2) в этой же точке - этот объект всегда следит за курсором, т.е. он поворачивает в сторону курсора. турель дорлжна поворачивать только на 180 градусов, у спрайта 1 объекта имеется 60 кадров, где графически показывается поворот. Нужно сделать так чтобы кадр анимации объекта 1 изменялся в зависимости от положения курсора... для первых 90 градусов это сделать не трудно (image_index = object2.angle*60/90, примерно так), но нужно сделать, чтобы анимация отражалась по горизонтали если положение курсора между В и С точками и при этом индекс анимации считывался не с 1 по 60, а наооборот. Таким образом турель будет визуально следить за курсором на 180 градусов (турель находится вверху, а курсор внизу... верхние 180 градусов не нужны). Проблема заключается только в положении курсора между В и С точками, где кадры отражаются по горизонтали, но идут не в том направлении. Идея в том, чтобы сделать вид в игре сверху, но и сбоку (что-то между этим...), где нельзя просто поворачивать спрайт к нужному объекту, а нужно делать анимацию, т.к. при каждом повороте турели ее вид меняется. Надеюсь хоть что-то смог объяснить...
marsep, как вариант предлагаю в редакторе спрайта добавить еще кадры где турель повернута с В до С. Это сделать очень просто. В разделе анимация редактора спрайта есть функции отразить по горизонтали и добавить кадры и т.д. Тогда у тебя в спрайте будет не 60 кадров а 120, по полтора градуса на кадр. И не надо будет выдумывать лишнего. Только для чего у тебя второй объект не понятно? image_index = object2.angle*60/90 судя по этому коду его используешь чтобы угол вычислять. Не проще сразу писать image_index=point_direction(турель.x,турель.y,mouse_x,mouse_y)*60/90 LUXORIX GAMES
Сообщение отредактировал Luxorix - Вторник, 05 Марта 2013, 20:33
Luxorix, лишний объект создавать не буду, спасибо, не подумал... Можно и 120, но помоему это сильно повлияет на производительность, 60 кадров это вроде не мало, да и зачем, если отразить возможно и лишнию потерю производительности можно не создавать...