Пятница, 26 Апреля 2024, 12:53

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Форум игроделов » Записи участника » Reker [85]
Результаты поиска
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
Форум игроделов » Записи участника » Reker [85]
  • Страница 4 из 5
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
Поиск:

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