How can I add the transition after the dialogue?

Reddoka

Member
I've known the script of the transition between rooms like the instruction: Slidetrans (TRANS_MODE.GOTO, target). So how can I add it right after the dialogue???
Help me pleaseeeee! Thanks ~ OwO
 

Reddoka

Member
Try posting some code showing what you are doing, so we can offer you advice to help.
Here's the code I've done:

GML:
//oText (object)
x1 = RESOLUTION_W/2;
y1 = RESOLUTION_H-175;
x2 = RESOLUTION_W/2;
y2 = RESOLUTION_H-105;

x1Target = 0;
x2Target = RESOLUTION_W;

lerpProgress = 0;
textProgress = 0;


lerpProgress += (1 - lerpProgress) / 50;
textProgress += global.textSpeed;

x1 = lerp(x1,x1Target,lerpProgress);
x2 = lerp(x2,x2Target,lerpProgress);

if (mouse_check_button_pressed(mb_left) or keyboard_check_pressed(vk_space))
    {
        var _messageLength = string_length(message);
        if (textProgress >= _messageLength)
        {
            instance_destroy();
            if (instance_exists(oTextQ))
            {
                with (oTextQ) ticket--
            }
        }
        else
        {
            if (textProgress > 2)
            {
                textProgress = _messageLength;
            }
        }
    }

if instance_number(oTextQ) = 0
    {
        Slidetrans(TRANS_MODE.GOTO, room2);
    }
    
    
//oTextQ (object)
ticket = instance_number(oTextQ);


if (ticket == 0)
{
    instance_change(oText, true);
}


//oTrans (object)
w = display_get_gui_width();
h = display_get_gui_height();
h_half = h * 0.5;

enum TRANS_MODE
{
    OFF,
    NEXT,
    GOTO,
    RESTART,
    INTRO
}

mode = TRANS_MODE.INTRO;
percent = 0.5;
target = room;


if (mode != TRANS_MODE.OFF)
{
    if (mode == TRANS_MODE.INTRO)
    {
        percent = max(0, percent - max((percent/10),0.005));
    }
    else
    {
        percent = min(1.2, percent + max(((1.2 - percent)/10),0.005));
    }
    if (percent == 1.2) or (percent == 0)
    {
        switch (mode)
        {
            case TRANS_MODE.INTRO:
            {
                mode = TRANS_MODE.OFF;
                break;
            }
            case TRANS_MODE.NEXT:
            {
                mode = TRANS_MODE.INTRO;
                room_goto_next();
                break;
            }
            case TRANS_MODE.GOTO:
            {
                mode = TRANS_MODE.INTRO;
                room_goto(target);
                break;
            }
            case TRANS_MODE.RESTART:
            {
                room_restart();
                break;
            }
        }
    }
}


//Newtextbox (script)
var _obj
if (instance_exists(oText)) _obj = oTextQ; else _obj = oText;
with (instance_create_layer(0,0,"Instances_1",_obj))
{
    message = argument[0];
    if (instance_exists(other)) originInstance = other.id else originInstance = noone;
    if (argument_count > 1) background = argument[1]; else background = 1;
}


//Slidetrans (script)
with (oTrans)
{
    mode = argument[0];
    if (argument_count > 1) target = argument[1];
}
It's work, but can't with the other rooms.
I know I have to change "room2" to "target" in this:

GML:
if instance_number(oTextQ) = 0
    {
        Slidetrans(TRANS_MODE.GOTO, room2);
    }
but I don't know what's next.

Sorry for missing and really thanks for your helppp~
 
Top