0

这是一个触发扭曲代码:

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_msgballoon)) {
            balloon = instance_create_layer(obj_player.x, obj_player.bbox_top, "hud", obj_msgballoon);
            balloon.balloon_msg = msg_openable_door;
        }
        playerIsIn = true
    }
}
else {
    room_goto(targetRoom);
    obj_player.x = targetX;
    obj_player.y = targetY;
}

上面的代码通常会触发 obj_msgballoon 实例的生成......但这样的事情不会:

if (keyboard_check(vk_enter)) {
    if instance_exists(obj_msgballoon) {
        if (obj_msgballoon.image_yscale > 1) {
            if cooldown < 1 {
                instance_destroy(obj_msgballoon)    
                balloon = instance_create_layer(obj_player.x, obj_player.bbox_top, "hud", obj_msgballoon)
                balloon.isTimed = true;
                balloon.balloon_msg = msg_locked_door;
                cooldown = 15;
            }
        }
        cooldown--;
    } 
    else {
     balloon = instance_create_layer(obj_player.x, obj_player.bbox_top, "hud", obj_msgballoon)  
     balloon.isTimed = true;
     balloon.balloon_msg = msg_locked_door;
    }
    if (!audio_is_playing(locked_door_snd)) {
        audio_play_sound(locked_door_snd,0,0);
    }
} 

即使我做这样的事情它也不起作用:

balloon = instance_create_layer(obj_player.x, obj_player.bbox_top, "hud", obj_msgballoon);
balloon.balloon_msg = msg_openable_door;

我就是找不到问题……也许我错过了什么?

编辑:这是 obj_msgballoon 的代码;

步:

if (p) {
    sprite_index = ballon_msg;  
    p = false;
}

if (!isTimed) {
    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;
isTimed = false;
balloon_msg = pointer_null;
4

0 回答 0