Среда, 14 Апреля 2021, 02:20

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Записи участника » Hittagi [7]
Результаты поиска
HittagiДата: Пятница, 26 Февраля 2021, 16:04 | Сообщение # 1 | Тема: Помогите доделать звуки исходящие от объекта GMS2
был не раз
Сейчас нет на сайте
Звук исходит от объекта , но неправильно, если объект слева - звук справа и тд, помогите доработать это
В событии step объекта от которого исходит звук:
Код
if (distance_to_object(obj_character) > dist_for_sound)
{    
    audio_pause_sound(rk);
}
else
{
    audio_resume_sound(rk);
}

В событии create объекта от которого исходит звук:
Код
rk =audio_play_sound_at(s_enemy_light_idle, x,y, 1, 0, 0, 1, true, 1);

В step событии слушателя
Код
audio_listener_position(x,y,0);

Добавлено (26 Февраля 2021, 16:42)
---------------------------------------------
Пофиксил

HittagiДата: Понедельник, 22 Февраля 2021, 14:52 | Сообщение # 2 | Тема: Звуки в GMS 2
был не раз
Сейчас нет на сайте
Сделал чтобы звук исходил от объекта при условии - если дистанция до персонажа <= цифре и если дистанция > цифры , то звук исходящий от объекта выключается. Проблема вот в чем, если этих объектов(от которых исходит звук) несколько и они на разном расстоянии от персонажа , то условие выполняется по отношению сразу всех объектов к персонажу и звук моментально выключается. Выходит soundid не является уникальным для каждого объекта? Как фиксить ? чего я не понимаю ?

Код
if (distance_to_object(obj_character) <= dist_for_sound && audiocd <= 0)
{
    audiocd = 300;
    audio_play_sound_at(s_enemy_light_idle, x, y, 0, 400, 600, 1, true, 1);    
}

if (distance_to_object(obj_character) > dist_for_sound)
{
    audiocd =0;
    audio_pause_sound(s_enemy_light_idle);
}

Добавлено (25 Февраля 2021, 17:09)
---------------------------------------------
пофиксил

Сообщение отредактировал Hittagi - Четверг, 25 Февраля 2021, 11:52
HittagiДата: Пятница, 19 Февраля 2021, 19:34 | Сообщение # 3 | Тема: GMS 2 помогите прописать моба
был не раз
Сейчас нет на сайте
Анимация атаки обрывается на случайном кадре если меняется переменная state , в принципе понятно почему.Я подхожу , условие if ((state == states.attack)) выполняется,анимация начинается, я отхожу раньше чем закончилась анимация, переменная state меняется и анимация прерывается, помогите сделать так , чтобы анимация закончилась и только после этого менялся state.Код ниже
step event :
Код

if (state == states.idle && sprite_index != spr_skeleton_attack2)
{
counter += 1;
if (counter >= room_speed *3)
{
var change = choose(0,1);
switch(change)
{
case 0: state = states.wander;
case 1: counter = 0; break;
}
}
if (collision_circle(x,y,100,obj_character,false,false))
{
state = states.alert;
}
sprite_index = spr_skeleton_idle;
}
else
{
if (state == states.wander && sprite_index != spr_skeleton_attack2)
{
counter += 1;
x += moveX;
y += moveY;

if (counter >= room_speed *3)
{
var change = choose (0,1);
switch (change)
{
case 0: state = states.idle;
case 1:
my_dir = irandom_range(0,359);
moveX = lengthdir_x(spd, my_dir);
moveY = lengthdir_y(spd, my_dir);
counter = 0;

}
}
if (collision_circle(x,y,100,obj_character,false,false))
{
state = states.alert;
}
sprite_index = spr_skeleton_walk;
image_xscale = sign(moveX);
}
else
{
if (state == states.alert && sprite_index != spr_skeleton_attack2)
{
my_dir = point_direction(x,y,obj_character.x,obj_character.y);
moveX = lengthdir_x(spd, my_dir);
moveY = lengthdir_y(spd, my_dir);
x += moveX;
y += moveY;
if (!collision_circle(x,y,100,obj_character,false,false))
{
state = states.idle;
}
if (collision_circle(x,y,32,obj_character,false,false))
{
state = states.attack;
}
if (collision_circle(x,y,32,obj_wall,false,false))
{
moveX -= 1;
}
sprite_index = spr_skeleton_walk;
image_xscale = sign(moveX);
}
else
{
if ((state == states.attack))
{
if (firecd < 0)
{
sprite_index = spr_skeleton_attack2;
speed = 0;
instance_create_layer(x, y, "Instances",obj_hitbox_enemy);
global.timer1 = 4;
global.hit_true1 = true;
}
else
{
state = states.alert;
}
}
}
}
}
global.timer1 = global.timer1 -1;
if (global.timer1 <= 0 )
{
global.timer1 = 0;
}
firecd = firecd - 1;

create:
Код
enum states
{
idle,
wander,
alert,
attack
}
state = states.idle;
counter = 0;
spd = 0.9;
my_dir = irandom_range(0,359);
moveX = lengthdir_x(spd, my_dir);
moveY = lengthdir_y(spd, my_dir);
my_slash = noone;
firecd = 0;
global.hit_true1 = false;
global.timer1 = 0;
global.hit1 = 0;

animation end:
Код
if (sprite_index == spr_skeleton_attack2)
{
firecd = 300;
sprite_index = spr_skeleton_idle;
image_index = 0;
}
if (sprite_index == spr_skeleton_death)
{
image_index = 12;
}
if (sprite_index == spr_skeleton_walk)
{
image_index = 0;
}

if (sprite_index == spr_skeleton_idle)
{
image_index = 0;
}

другиe думаю не пригодятся


Сообщение отредактировал Hittagi - Пятница, 19 Февраля 2021, 19:37
HittagiДата: Четверг, 11 Февраля 2021, 21:57 | Сообщение # 4 | Тема: gms2 против меня
был не раз
Сейчас нет на сайте
Цитата faridunibodullo ()
direction = point_direction(x,y ,obj_cursor1.x,obj_cursor1.y);
speed = spd;
if(distance_to_object(obj_cursor1))>0
{
spd = (distance_to_object(obj_cursor1)/2)
}
else
{
spd = 0;
x = obj_cursor1.x;
y = obj_cursor1.y;
}


Все ок , спасибо )
HittagiДата: Четверг, 11 Февраля 2021, 15:15 | Сообщение # 5 | Тема: gms2 против меня
был не раз
Сейчас нет на сайте
Парни, не могу понять ,объект - "obj_cursor1" движется строго за мышкой x = mouse_x; y = mouse_y; , все как у людей.
Так же есть второй объект "obj_cursor2", который плавно передвигается за первым объектом при коде в step event ниже:

direction = point_direction(x,y ,obj_cursor1.x,obj_cursor1.y);
speed = spd;
if (distance_to_object(obj_cursor1) > dist)
{
spd = 11;

if (distance_to_object(obj_cursor1) > dist1)
{
spd = 16;

if (distance_to_object(obj_cursor1) > dist2)
{
spd = 20;
}
else
{
spd = 16;
}
}
else
{
spd = 11;
}
}
else
{
spd = 6;
}

и create:

spd= 6;
dist = 100;
dist1 = 200;
dist2 = 300;

Все вроде логично , но когда "obj_cursor2" достигает своей цели , спрайт начинает некорректно отображаться, как будто двоится. Самое главное , заскринить это я не могу, на скрине ничего не видно (на трансляции в дискорде тоже кстати).
Скорее всего я чего то не понимаю ,помогите дураку.

Добавлено (11 Февраля 2021, 17:27)
---------------------------------------------
https://sun9-37.userapi.com/impf/RoXiGZtOeKXH7f2zVreaS_on--utchvdTLNVHA/NHcC__nRLAo.jpg?size=233x179&quality=96&proxy=1&sign=49655462d2a7922907ca5f0da2558fd2&type=album

вот скрин , круг по середине - obj_cursor1 , окружность - obj_cursor2
(как уже говорил , на скрине все ок)

HittagiДата: Воскресенье, 07 Февраля 2021, 13:16 | Сообщение # 6 | Тема: Проблемы при компиляции в GMS2
был не раз
Сейчас нет на сайте
Цитата MagicHero ()
Глубина обьектов меньше чем комнаты? иначе они будут рисоваться за бекграундом. Если в обьектах используется что либо в событии draw то надо прописывать draw_self();


с глубиной все норм было , проблема в техническом плане была , переустановил винду и все норм работает , спс
HittagiДата: Пятница, 05 Февраля 2021, 15:58 | Сообщение # 7 | Тема: Проблемы при компиляции в GMS2
был не раз
Сейчас нет на сайте
Добавляю объекты в комнату , нажимаю F5 и объектов не видно. Visible на объектах стоит , на слоях тоже. Зато если меняю цвет бекграунду ,это заметно, но объектов все так же нет. В старых проектах такая же проблема , нужна помощь
Форум игроделов » Записи участника » Hittagi [7]
  • Страница 1 из 1
  • 1
Поиск:

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