Результаты поиска
| |
Reker | Дата: Четверг, 19 Июля 2018, 00:28 | Сообщение # 61 | Тема: Движение NPC(спрайты) |
почетный гость
Сейчас нет на сайте
| Цитата DivES ( ) А может быть это и не в step прописывать надо.. Да как не в степ? Ведь нужно постоянно проверять, в какую сторону движется. Да, я понял, что мы хотим сделать. Чтоб развеять твои возможные сомнения или, может быть, показать как я ошибаюсь. Естесна hspeed>0 означает, что вертикальная скорость больше 0, а следовательно он движется вертикально, то используем спрайт вверх. С другими так же. Надеюсь я правильно понял
|
|
| |
Reker | Дата: Четверг, 19 Июля 2018, 00:18 | Сообщение # 62 | Тема: Движение NPC(спрайты) |
почетный гость
Сейчас нет на сайте
| Цитата DivES ( ) как я писал выше? Да, попробовал, вообще не реагируетДобавлено (19 Июля 2018, 00:18) --------------------------------------------- Казалось бы! Такая простая вещь! Анимация для объекта. Почти в каждой игре есть, но вот ответ так трудно найти. Хехе, вот начал заниматься всем этим с декабря и как же мне это всё нравиться.
|
|
| |
Reker | Дата: Среда, 18 Июля 2018, 23:57 | Сообщение # 63 | Тема: Движение NPC(спрайты) |
почетный гость
Сейчас нет на сайте
| В геймейкере можно включить физику, тип будешь толкать обьекты автоматичести и т.д. Мне сложно объяснить понятнее, тк я только поверхностно понимаю это. Включенная физика определяет твой дальнейший код. Пример. Движение к игроку
Код move_toward_point(obj_player.x, obj_player.y, 1) //двигается к кординатам ху игрока со скоростью 1
Но если использовать физику
Код phy_position_x += sign(obj_player.x - x); phy_position_y += sign(obj_player.y - y);
Добавлено (18 Июля 2018, 23:57) --------------------------------------------- камера как в Undertale
|
|
| |
Reker | Дата: Среда, 18 Июля 2018, 23:47 | Сообщение # 64 | Тема: Движение NPC(спрайты) |
почетный гость
Сейчас нет на сайте
| Цитата DivES ( ) Пока нет, но ещё пытаюсь, что нибудь провернуть. Я использую физику и сейчас пробую такКод phy_position_x += phy_hspeed; phy_position_y += phy_vspeed; phy_position_x += sign(obj_player.x - x); phy_position_y += sign(obj_player.y - y);
if (phy_hspeed>0) { sprite_index=spr_right} if (phy_hspeed<0) { sprite_index=spr_left} if (phy_vspeed<0) { sprite_index=spr_up} if (phy_vspeed>0) { sprite_index=spr_down}
пока не работает, но руки всё ещё не упали. Держу в курсеДобавлено (18 Июля 2018, 23:47) --------------------------------------------- Тк нету Phy_hspeed и phy_vspeed, то создал переменные и прировнял их к нулю
|
|
| |
Reker | Дата: Среда, 18 Июля 2018, 22:50 | Сообщение # 65 | Тема: Движение NPC(спрайты) |
почетный гость
Сейчас нет на сайте
| И да, ходят они плавно по этому пути, но даже если путь сделать строгим это ничего не меняет Добавлено (18 Июля 2018, 22:50) ---------------------------------------------
Цитата DivES ( ) Как можно сделать это? я занимаюсь разработкой игры только с конца прошлого года и многого не знаю, но может image_angel, хотя она изменяет только направление спрайта. Наверное point_direction, сейчас попробую.
|
|
| |
Reker | Дата: Среда, 18 Июля 2018, 22:46 | Сообщение # 66 | Тема: Движение NPC(спрайты) |
почетный гость
Сейчас нет на сайте
| Цитата DivES ( ) очевидно, если он использует пути, спрайт всегда будет выставлен "так, как он есть" Есть ещё второй НПС и он не по пути ходить, а просто следует за персонажем и он тоже не хочет юзать другую анимацию Код phy_position_x += sign(obj_player.x - x); phy_position_y += sign(obj_player.y - y);
if (direction >=45 < 135) { sprite_index=spr_up; }
if (direction >=315 < 45) { sprite_index=spr_right; }
if (direction >=225 < 315) { sprite_index=spr_down; }
if (direction >=135 < 225 ) { sprite_index=spr_left; }
вот код который он использует.
Добавлено (18 Июля 2018, 22:46) ---------------------------------------------
Цитата Raven84 ( ) NPC ходят как? Чисто строго в четырех направлениях: юг, север, запад, восток? Т.е. строго вниз, строго вверх, вправо и влево под углами в 90гр все? Или они плавно меняют свой угол на поворотах? Код if (direction >=45 < 135) { sprite_index=spr_up; }
if (direction >=315 < 45) { sprite_index=spr_right; }
if (direction >=225 < 315) { sprite_index=spr_down; }
if (direction >=135 < 225 ) { sprite_index=spr_left; } path_start(path_1, 1, 0, 0);
Я ещё смотрел одного разработчика, но он использовал систему с макросами, а по скольку он на иглише был я её не совсем понял, других вариантов найти не могу, но всё ещё пытаюсь. Сколько не смотрю, люди показывают лишь как враг следует за игроком, но смены анимации нет.
Сообщение отредактировал Reker - Среда, 18 Июля 2018, 22:47 |
|
| |
Reker | Дата: Среда, 18 Июля 2018, 15:14 | Сообщение # 67 | Тема: Движение NPC(спрайты) |
почетный гость
Сейчас нет на сайте
| У игрока спрайты нормально работают. Мне нужно для НПС которых я создал. Чтоб при движении оных в разные стороны менялись спрайты. Например я задал путь для нпс и надо чтобы он менял спрайты, когда меняет направление или следует за тобой и в зависимости в какую сторону он следует за тобой меняется спрайт. Использую физику
|
|
| |
Reker | Дата: Среда, 18 Июля 2018, 12:42 | Сообщение # 68 | Тема: Движение NPC(спрайты) |
почетный гость
Сейчас нет на сайте
| Эх. Не работает. Мож кто знает, как сделать смену спрайтов при движении в разные стороны у НПС?
|
|
| |
Reker | Дата: Вторник, 17 Июля 2018, 03:59 | Сообщение # 69 | Тема: Движение NPC(спрайты) |
почетный гость
Сейчас нет на сайте
| Сделал путь для нпс и в step написалКод if (direction==90) { sprite_index=spr_up; }
if (direction==0) { sprite_index=spr_right; }
if (direction==270) { sprite_index=spr_down; }
if (direction==180) { sprite_index=spr_left; }
но идёт воспроизводит НПС анимацию spr_right и всё.
Сообщение отредактировал Reker - Четверг, 19 Июля 2018, 15:23 |
|
| |
Reker | Дата: Суббота, 30 Июня 2018, 03:49 | Сообщение # 70 | Тема: Тайл над объектом |
почетный гость
Сейчас нет на сайте
| Ух. Спасибо больше.
|
|
| |
Reker | Дата: Суббота, 30 Июня 2018, 01:53 | Сообщение # 71 | Тема: Тайл над объектом |
почетный гость
Сейчас нет на сайте
| Хочу чтобы игрок проходил под этими камушками, они у меня как тайл. Не понял как загружать пикчи, оставлю ссылку http://s1.uploadpics.ru/images/Z1QbW3d5qX.png
Сообщение отредактировал Reker - Суббота, 30 Июня 2018, 01:54 |
|
| |
Reker | Дата: Суббота, 30 Июня 2018, 01:12 | Сообщение # 72 | Тема: Тайл над объектом |
почетный гость
Сейчас нет на сайте
| фона. Чтобы тайл был над объектом, допустим, чтоб объект проходил под мостом, не над ним.
|
|
| |
Reker | Дата: Суббота, 30 Июня 2018, 00:41 | Сообщение # 73 | Тема: Тайл над объектом |
почетный гость
Сейчас нет на сайте
| Не могу сделать тайл над объектом. Глубину кручу-верчу, но ничего не работает. Гм2
Сообщение отредактировал Reker - Суббота, 30 Июня 2018, 08:00 |
|
| |
Reker | Дата: Пятница, 30 Марта 2018, 13:40 | Сообщение # 74 | Тема: Рандомное действие(решено) |
почетный гость
Сейчас нет на сайте
| Пасебки всем Добавлено (30 Марта 2018, 13:40) --------------------------------------------- там ещё не всё порешал с этим, если не смогу решить, задам ещё вопросик, простите уж
Сообщение отредактировал Reker - Вторник, 27 Марта 2018, 08:44 |
|
| |
Reker | Дата: Четверг, 22 Марта 2018, 20:47 | Сообщение # 75 | Тема: Рандомное действие(решено) |
почетный гость
Сейчас нет на сайте
| Цитата vampir0305 ( ) Ну а самому подумать никак?
та я глупое животное. Хотя это как то неуважительно по отношению к другим животным. А так спасибо большое, что уделил мне время. Я ценю твоё потраченное на меня время.
|
|
| |
Reker | Дата: Четверг, 22 Марта 2018, 19:46 | Сообщение # 76 | Тема: Рандомное действие(решено) |
почетный гость
Сейчас нет на сайте
| Цитата vampir0305 ( ) rand = choose(1, 2, 3);
switch(rand) { case 1: { //действие break; }
case 2: { //действие break; }
case 3: { //действие break; } }
а как сделать так, чтобы он один раз выбрал и делал только одно действие. С этим кодом он просто в конвульсиях выбирает цели
|
|
| |
Reker | Дата: Среда, 21 Марта 2018, 17:26 | Сообщение # 77 | Тема: Рандомное действие(решено) |
почетный гость
Сейчас нет на сайте
| Надо, чтобы он выбирал рандомно одно из этих условий, как сделать, не знаю
Код if instance_exists(obj_enemy_skelet) { if point_distance(x, y, obj_enemy_skelet.x, obj_enemy_skelet.y) > sp { dir = point_direction(x, y, obj_enemy_skelet.x, obj_enemy_skelet.y); phy_speed_x = lengthdir_x(sp,dir) phy_speed_y = lengthdir_y(sp,dir) } }
if instance_exists(obj_crystal_demon) { if point_distance(x, y, obj_crystal_demon.x, obj_crystal_demon.y) > sp { dir = point_direction(x, y, obj_crystal_demon.x, obj_crystal_demon.y); phy_speed_x = lengthdir_x(sp,dir) phy_speed_y = lengthdir_y(sp,dir) } }
if instance_exists(obj_enemy_robot) { if point_distance(x, y, obj_enemy_robot.x, obj_enemy_robot.y) > sp { dir = point_direction(x, y, obj_enemy_robot.x, obj_enemy_robot.y); phy_speed_x = lengthdir_x(sp,dir) phy_speed_y = lengthdir_y(sp,dir) } }
Сообщение отредактировал Reker - Четверг, 22 Марта 2018, 20:50 |
|
| |
Reker | Дата: Четверг, 15 Марта 2018, 05:55 | Сообщение # 78 | Тема: Уничтожение после анимации.(решено) |
почетный гость
Сейчас нет на сайте
| Если игрок приблизился к объекту, то объект начал бы анимацию, создал объект и уничтожился, но анимация не останавливается или объект сразу уничтожается
Код if point_distance(x, y, obj_hero.x, obj_hero.y) < 50 { sprite_index = spr_enemy_shadow_1; instance_create_depth(obj_enemy_shadow.x, obj_enemy_shadow.y, 0, obj_shadow_1) instance_destroy(); }
Сообщение отредактировал Reker - Четверг, 15 Марта 2018, 18:08 |
|
| |
Reker | Дата: Вторник, 13 Февраля 2018, 08:43 | Сообщение # 79 | Тема: Оч странная хрень.(решено, но решения тут нет) |
почетный гость
Сейчас нет на сайте
| Попытался сделать, чтобы снаряды которые вылетают, летели на игрока с опережением, но под определённым углом игра крашится. Если убрать опережение и заставить просто лететь, то всё нормально. Странно Код
Код if instance_exists(obj_hero) { if point_distance(x, y, obj_hero.x, obj_hero.y) < 150 { var obj; obj = instance_nearest(x, y, obj_hero); if obj != noone { if (shooting_ready) { var bull; bull = instance_create_depth(x, y, 0, obj_crystal_bullet); with (bull) { /* if (keyboard_check(ord("D"))) { var dir = point_direction(x, y, obj.x + 32, obj.y + 15); } if (keyboard_check(ord("A"))) { dir = point_direction(x, y, obj.x + 15, obj.y + 32); // Крашит при определённом угле if (keyboard_check(ord("W"))) { dir = point_direction(x, y, obj.x + 16, obj.y + -6); } if (keyboard_check(ord("S"))) { dir = point_direction(x, y, obj.x + 15, obj.y + 39); } if (obj_hero.hsp = 0 and obj_hero.vsp = 0) { dir = point_direction(x, y, obj.x, obj.y); } */
dir = point_direction(x, y, obj.x, obj.y); //не крашит, но не летил с опережением
phy_speed_x = lengthdir_x(7,dir) phy_speed_y = lengthdir_y(7,dir)
} alarm[0] = room_speed ; // задержка перед выстрелами shooting_ready = 0; } } } }
Сообщение отредактировал Reker - Суббота, 17 Февраля 2018, 17:58 |
|
| |
Reker | Дата: Воскресенье, 11 Февраля 2018, 13:57 | Сообщение # 80 | Тема: Движение к объекту(Решено) |
почетный гость
Сейчас нет на сайте
| Зделал я значит, турель и юзаю код var obj; obj = instance_nearest(x, y, obj_hero); if obj != noone { var bull; bull = instance_create_depth(x, y, 0, obj_crystal_bullet); with (bull) { direction = point_direction(x,y,obj.x,obj.y) speed = 1 } }
Но как понимаю, из-за того, что я юзаю физику, это не работает. Тобишь пуля просто остаётся в турели. move_towart_point тоже не работает. Как мне заставить пулю лететь к игроку?
Добавлено (11 Февраля 2018, 13:57) --------------------------------------------- Решение var obj; obj = instance_nearest(x, y, obj_hero); if obj != noone { var bull; bull = instance_create_depth(x, y, 0, obj_crystal_bullet); with (bull) { dir = point_direction(x,y,obj.x,obj.y) phy_speed_x = lengthdir_x(2,dir) phy_speed_y = lengthdir_y(2,dir) } }
Сообщение отредактировал Reker - Воскресенье, 11 Февраля 2018, 13:58 |
|
| |
|