GML - не проходя через часть кода
Это код Trigger Warp:
if (needEnter) {
if (keyboard_check(vk_enter)) {
audio_play_sound(door_open,0,0);
room_goto(targetRoom);
obj_player.x = targetX;
obj_player.y = targetY;
obj_player.image_index = playerSide
}
else {
if (!instance_exists(obj_msgballon)) {
ballon = instance_create_layer(obj_player.x, obj_player.bbox_top, "hud", obj_msgballon);
ballon.ballon_msg = msg_openable_door;
}
playerIsIn = true
}
}
else {
room_goto(targetRoom);
obj_player.x = targetX;
obj_player.y = targetY;
}
Приведенный выше код обычно вызывает появление экземпляра obj_msgballon... но что-то вроде этого не происходит;
if (keyboard_check(vk_enter)) {
if instance_exists(obj_msgballon) {
if (obj_msgballon.image_yscale > 1) {
if cooldown < 1 {
instance_destroy(obj_msgballon)
ballon = instance_create_layer(obj_player.x, obj_player.bbox_top, "hud", obj_msgballon)
ballon.isTimmed = true;
ballon.ballon_msg = msg_locked_door;
cooldown = 15;
}
}
cooldown--;
}
else {
ballon = instance_create_layer(obj_player.x, obj_player.bbox_top, "hud", obj_msgballon)
ballon.isTimmed = true;
ballon.ballon_msg = msg_locked_door;
}
if (!audio_is_playing(locked_door_snd)) {
audio_play_sound(locked_door_snd,0,0);
}
}
Даже если я делаю что-то подобное, это не работает;
ballon = instance_create_layer(obj_player.x, obj_player.bbox_top, "hud", obj_msgballon);
ballon.ballon_msg = msg_openable_door;
Я просто не могу выяснить проблему... может я что-то упустил?
Изменить: здесь это код obj_msgballon;
ШАГ:
if (p) {
sprite_index = ballon_msg;
p = false;
}
if (!isTimmed) {
if image_yscale < 1 {
image_yscale += 0.3
}
x = obj_player.x
y = obj_player.bbox_top - 15
} else {
if image_yscale < 1 {
image_yscale += 0.3
}
x = obj_player.x
y = obj_player.bbox_top - 15
if cooldown < 1 {
instance_destroy();
}
cooldown--;
}
СОЗДАЙТЕ:
image_yscale = 0
p = true;
cooldown = 40;
isTimmed = false;
ballon_msg = pointer_null;