Суббота, 16 Ноября 2024, 14:47

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
Вопрос - Ответ (Game Maker)
stalker5889Дата: Среда, 20 Февраля 2013, 16:23 | Сообщение # 3801
Свободный игродел
Сейчас нет на сайте
Shevron_7, пиши x = mouse_x y = mouse_y в draw а не степ. Только при этом тебе придётся ещё и отрисовать героя ибо он пропадёт (пиши draw_sprite)

GameMixДата: Среда, 20 Февраля 2013, 19:31 | Сообщение # 3802
старожил
Сейчас нет на сайте
Цитата (Anthem)
И почему в Step нельзя написать например: if count=0 show_message() and room_goto_next(); ?

Потому, что нужно знать хотя бы синтаксис GML, прежде чем писать на нём условия. Записав правильно, получишь нужный результат:
Код
if count=0
{
show_message();
room_goto_next();
}


Steel Standoff - 2D аркада.
Мои статьи
ailiДата: Среда, 20 Февраля 2013, 19:54 | Сообщение # 3803
частый гость
Сейчас нет на сайте
как остановить объект запущенный в степе функцией move_towards_point?

aili.com.ua
AnthemДата: Среда, 20 Февраля 2013, 21:00 | Сообщение # 3804
Д'Артаньян
Сейчас нет на сайте
Он сам остановиться дойдя до точки, к которой ты его послал, либо например обнули скорость

Текстовый контент для вашей игры (бесплатно)
Сценарист, геймдизайнер для Вашей игры
UnZipДата: Среда, 20 Февраля 2013, 22:38 | Сообщение # 3805
почетный гость
Сейчас нет на сайте
Ув. Господа такая проблема.
Когда отрисовываю спрайт, не могу пустить анимку.
Т.е. у меня отрисовываються сразу несколько спрайтов,но так как главный только один и у него в данный момент индекс = 0, то и у остальных спрайтов индекс = 0


ailiДата: Четверг, 21 Февраля 2013, 00:51 | Сообщение # 3806
частый гость
Сейчас нет на сайте
Цитата (Anthem)
Он сам остановиться дойдя до точки, к которой ты его послал, либо например обнули скорость


сам не останавливается
и обнуление скорости не помогает

Степ такой:

Код
if flag_to_move
move_towards_point(cover_x,cover_y,5);

if (cover_x == self.x)
flag_to_move=0;


В итоге объект доходит до точки и судорожно дергается там


aili.com.ua

Сообщение отредактировал aili - Четверг, 21 Февраля 2013, 13:47
AnthemДата: Пятница, 22 Февраля 2013, 00:15 | Сообщение # 3807
Д'Артаньян
Сейчас нет на сайте
aili, честно говоря, я слабо разбираюсь в GML, но в твоем коде явно что-то не так. Может быть тебе подойдет что-то вроде этого:
Код
if (flag_to_move=1) {move_towards_point(cover_x,cover_y,5)} else {speed=0};  
if (cover_x==self.x) {flag_to_move=0};

Я так понимаю, это для управления юнитом в стратегии?


Текстовый контент для вашей игры (бесплатно)
Сценарист, геймдизайнер для Вашей игры
FarcuatДата: Пятница, 22 Февраля 2013, 10:36 | Сообщение # 3808
частый гость
Сейчас нет на сайте
В критерии остановки if(distance_to_point(cover_x, cover_y) < 5). Или что угодно со значками <>. А с таким оператором == будет перепрыгивать.
ailiДата: Суббота, 23 Февраля 2013, 01:51 | Сообщение # 3809
частый гость
Сейчас нет на сайте
Цитата (Farcuat)
В критерии остановки if(distance_to_point(cover_x, cover_y) < 5). Или что угодно со значками <>. А с таким оператором == будет перепрыгивать.


работает, спасибо


aili.com.ua
Shevron_7Дата: Понедельник, 25 Февраля 2013, 20:18 | Сообщение # 3810
маньяк-бомбист
Сейчас нет на сайте
Цитата
Shevron_7, пиши x = mouse_x y = mouse_y в draw а не степ. Только при этом тебе придётся ещё и отрисовать героя ибо он пропадёт (пиши draw_sprite)
не в этом причина и проблема.


TEST =>
Мои игры:
Kill your brain
Space Conflict
Zombie Day
Bounce PC
Extra ball 2012

Это спасибо в карман не положишь, а в репутацию можно. +1
_ToBe_Дата: Суббота, 02 Марта 2013, 20:19 | Сообщение # 3811
постоянный участник
Сейчас нет на сайте
Всем привет!!!
У меня вопрос... Есть такой вот код перемещения объекта стрелочками
фотка с кодом... (sp - это переменная равна 4)
Но по непонятной мне причине, объект не движется по диагонали вправо+вниз... Из-за чего это может быть?

П.С. По всем остальным диагоналям он двигается чётко


Сообщение отредактировал _ToBe_ - Суббота, 02 Марта 2013, 20:28
GameMixДата: Воскресенье, 03 Марта 2013, 06:39 | Сообщение # 3812
старожил
Сейчас нет на сайте
_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;


Steel Standoff - 2D аркада.
Мои статьи
_ToBe_Дата: Воскресенье, 03 Марта 2013, 13:53 | Сообщение # 3813
постоянный участник
Сейчас нет на сайте
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
marsepДата: Воскресенье, 03 Марта 2013, 21:16 | Сообщение # 3814
участник
Сейчас нет на сайте
Всем привет!
Как сделать, чтобы анимация начилась в обратную сторону, т.е. с последнего кадра к первому? И как можно задать объекту позицию курсора (object.x = mouse_x;object.y = mouse_y;), а то что-то не получается... Заранее спасибо!
LuxorixДата: Понедельник, 04 Марта 2013, 13:38 | Сообщение # 3815
постоянный участник
Сейчас нет на сайте
Цитата (marsep)
Как сделать, чтобы анимация начилась в обратную сторону, т.е. с последнего кадра к первому?

Установи image_speed отрицательное значение.

Цитата (marsep)
И как можно задать объекту позицию курсора (object.x = mouse_x;object.y = mouse_y;)

Сам и ответил на свой вопрос. Пропиши object.x = mouse_x;object.y = mouse_y; в STEP объекта. Если ты делаешь курсор, то лучше рисуй в координатах мыши нужный спрайт.


LUXORIX GAMES
_ToBe_Дата: Вторник, 05 Марта 2013, 16:27 | Сообщение # 3816
постоянный участник
Сейчас нет на сайте
У меня в "Step" прописан код выполняющий создание объекта на Левую Кнопку Мыши... Почему он создаёт не 1 объект а несколько сразу?
Код
if mouse_check_button_pressed(mb_left)
{
       instance_create(random(room_width), random(room_height), obj_cookie)
}


Причём заметил что он создаёт объектов в 2 раза больше, чем есть в комнате... Т.е. если в комнате 2 объекта, то при нажатии мыши, он сделает ещё 4 =D

Методом научного тыка понял в чём косяк:

Проблема:
Я код писал в самом объекте, и он создавал столько же объектов сколько было на сцене

Решение:
Сделать новый объект
Сделать его не видемым
Добавить его в комнату и уже в нём писать код, что я выше указал


Сообщение отредактировал _ToBe_ - Вторник, 05 Марта 2013, 16:58
LuxorixДата: Вторник, 05 Марта 2013, 17:04 | Сообщение # 3817
постоянный участник
Сейчас нет на сайте
_ToBe_, с кодом все верно. obj_cookie у тебя реагирует на нажатие, а видимо не должен, ищи ошибку в нем. И проверь родителей объектов.

LUXORIX GAMES
marsepДата: Вторник, 05 Марта 2013, 18:33 | Сообщение # 3818
участник
Сейчас нет на сайте
Всем привет! Нужна помощь в реализации анимации поворота турели...


Заранее спасибо за помощь...
LuxorixДата: Вторник, 05 Марта 2013, 20:29 | Сообщение # 3819
постоянный участник
Сейчас нет на сайте
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
marsepДата: Вторник, 05 Марта 2013, 23:55 | Сообщение # 3820
участник
Сейчас нет на сайте
Luxorix, лишний объект создавать не буду, спасибо, не подумал... Можно и 120, но помоему это сильно повлияет на производительность, 60 кадров это вроде не мало, да и зачем, если отразить возможно и лишнию потерю производительности можно не создавать...
Поиск:

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