Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

Ajuda com Engine

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
cledson252010
Novato
Novato
Reações: 0
Mensagens: 11
Localização: Manaus

Ajuda com Engine

Mensagem por cledson252010 » Ter Nov 15, 2016 8:17 pm

Gostaria que alguém me ajudasse com uma engine de movimentação de plataforma com as seguintes características:
O personagem se move normalmente e colide com objetos sólidos e com plataformas.
Se puderem ajudar estarei grato.

Avatar do usuário
Dust
Membro
Membro
Reações: 0
Mensagens: 109
Localização: Santa Catarina

Re: Ajuda com Engine

Mensagem por Dust » Ter Nov 15, 2016 9:27 pm

Creio que não seja preciso uma engine para criar uma pequena engine como está.
O que você precisa mesmo é de um pouco de leitura, apenas leia e aprenda um pouco, pois isso é uma coisa muito simples.
viewtopic.php?f=9&t=144
http://gmbr.forumeiros.com/t18692-lista-de-tutoriais
http://gmbr.forumeiros.com/t29325-lista ... is-parte-2
http://gmbr.forumeiros.com/f22-escolha-da-staff
http://gmbr.forumeiros.com/f31-tutoriais-aprovados
Os links acima possuem uma grande variedade de tutoriais, recomendo que você leia os tutoriais de Alex FC em ordem, não leia com pressa, apenas estude

Avatar do usuário
cledson252010
Novato
Novato
Reações: 0
Mensagens: 11
Localização: Manaus

Re: Ajuda com Engine

Mensagem por cledson252010 » Qua Nov 16, 2016 9:35 am

Colisões simples eu sei fazer, só estou com um probleminha chato com a minha. Eu não sabia da existência desses tutoriais. Vou lê-los e estudá-los. Vlw....

Edit:
Eu estou com dúvida num código que escrevi, onde o personagem salta e atravessa uma plataforma. O problema é que ele salta direto para posição de colisão e não sei resolver isso.
O código é esse:

Código: Selecionar todos

/// ----------------Movimentação Vertical---------------------------
jump = place_empty(x,y+1) || place_meeting(x,y,objNoSolid);

// Verifica se está suspenso no ar
switch(jump){

    case true:
        var Solid = !place_free(x,y+verticalSpeed);
        var obj = instance_place(x,y+abs(verticalSpeed),objNoSolid);
        var noSolid = place_meeting(x,y+abs(verticalSpeed),objNoSolid) && y < obj.y;
        
        // Verifica se há uma colisão
        switch(Solid ^^ noSolid){
            
            case true:
            //  Colisão sólida
                if(Solid){
                
                    var yTo = floor(abs(verticalSpeed));
                    while(!place_free(x,y+sign(verticalSpeed)*yTo)){
                        yTo -= 1;
                    }
                    y += sign(verticalSpeed)*yTo;
                    verticalSpeed = 0;
                }
            // Colisão não-sólida
                if(noSolid){
                
                    var yTo = floor(abs(verticalSpeed));
                    while(place_meeting(x,y+yTo,objNoSolid)){
                        yTo -= 1;
                    }
                    y += yTo;
                    verticalSpeed = 0;
                }  
            break;
            
            case false:
                verticalSpeed += .25;
                y += floor(verticalSpeed);
            break;
        }
    break;
    
    case false:
        verticalSpeed = 0;
        if(keyboard_check_pressed(ord('W'))) verticalSpeed = -6;y += verticalSpeed;
        if(keyboard_check_pressed(ord('S')) && place_meeting(x,y+1,objNoSolid)) verticalSpeed = 4; y += verticalSpeed;
    break;
}
Talvez haja algo que não estou reparando. Peço a ajuda de vocês do fórum.

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante