Como fazer Boost

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Como fazer Boost

Mensagem por Supersonic933 em Qua 11 Maio 2011, 17:31

Como fazer o Sonic Boost do Sonic Unleashed/Colors?
Eu preciso pra fazer meu jogo!
Pra quem não entendeu, ao apertar o botão, aparece uma aura azul nele, a velocidade aumenta, e quanto soltar, parar o boost.

Supersonic933

Ranking : Nota E
Número de Mensagens : 396
Data de inscrição : 14/02/2011
Notas recebidas : E
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://planetaanalisandogames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Como fazer Boost

Mensagem por Need_90 em Qua 11 Maio 2011, 18:02

tem um jeito facil mais é meio "ruin"
duplica o player e coloca "Z" pressed (mude o Z por qual tecla quer)
Código:
instance_change (obj_player_aurea,false)
acho que é isso
dai coloca no obj_player_aurea "Z" Releassed
Código:
instance_change (obj_player,false)
é uma forma meio 'noob' mas é um bom geito,eu faço assim

Need_90

Número de Mensagens : 309
Idade : 17
Data de inscrição : 30/04/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como fazer Boost

Mensagem por Supersonic933 em Qua 11 Maio 2011, 18:03

Need_90 escreveu:tem um jeito facil mais é meio "ruin"
duplica o player e coloca "Z" pressed (mude o Z por qual tecla quer)
Código:
instance_change (obj_player_aurea,false)
acho que é isso
dai coloca no obj_player_aurea "Z" Releassed
Código:
instance_change (obj_player,false)
é uma forma meio 'noob' mas é um bom geito,eu faço assim
E a velocidade aumentada?

Supersonic933

Ranking : Nota E
Número de Mensagens : 396
Data de inscrição : 14/02/2011
Notas recebidas : E
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://planetaanalisandogames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Como fazer Boost

Mensagem por Need_90 em Qua 11 Maio 2011, 18:13

é só você modificar no obj_player_aurea Very Happy

Need_90

Número de Mensagens : 309
Idade : 17
Data de inscrição : 30/04/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como fazer Boost

Mensagem por Supersonic933 em Qua 11 Maio 2011, 18:33

Need_90 escreveu:é só você modificar no obj_player_aurea Very Happy
Acontece que meu player é um pouco complexo.

Só o movimento;

Código:

    // movement control
   
    // ========== PART 1 ==============================================================================================       
        /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        -> X movement.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        */
       
        x  +=  cos(degtorad(angle)) * x_speed;
        y  -=  sin(degtorad(angle)) * x_speed;

            // move the player outside in case he has got stuck into the wall
            while (x_speed > 0 && player_collision_right( x, y, angle, maskMid ) == true )
            {
                x  -=  cos(degtorad(angle));
                y  +=  sin(degtorad(angle));
            }
           
            while (x_speed < 0 && player_collision_left( x, y, angle, maskMid ) == true )
            {
                x  +=  cos(degtorad(angle));
                y  -=  sin(degtorad(angle));
            }

    // ========== PART 2 ==============================================================================================       
        /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        -> Y movement.
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        */
       
        if (ground == false)
        {
            y  +=  y_speed;
             
                // move the player outside in case he has got stuck into the floor or the ceiling         
                while (y_speed < 0 && player_collision_top( x, y, 0, maskMid ) == true )
                {
                    y  +=  1;
                }           

                while (y_speed > 0 && player_collision_bottom( x, y, 0, maskMid ) == true )
                {
                    y  -=  1;
                }
               
                // check for landing
                if (y_speed >= 0 && player_collision_bottom( x, y, 0, maskBig ) == true)
                {
                    if ( player_collision_left_edge( x, y, 0 ) && player_collision_right_edge( x, y, 0 ) )
                        angle  =  player_get_angle( x, y, 0 );
                    else
                        angle  =  0;
                       
                    x_speed -=  sin(degtorad(angle)) * y_speed;
                    y_speed =  0;
                    ground  =  true;
                   
                    // return to the normal state if the character was hurt
                    if (action == action_hurt)
                    {
                    action = action_normal;
                    }
                   
                    // return to the normal state if the character was jumping
                    if (action == action_jumping)
                    {
                        action = action_normal;
                    }
                }
 
            // wall collision (yeah, again, we should perform that since the y axys has recently changed)
            while (player_collision_right( x, y, angle, maskMid ) == true )
            {
                x  -=  cos(degtorad(angle));
                y  +=  sin(degtorad(angle));
            }
           
            while (player_collision_left( x, y, angle, maskMid ) == true )
            {
                x  +=  cos(degtorad(angle));
                y  -=  sin(degtorad(angle));
            }
        }

    // ========== PART 3 ==============================================================================================       
        /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        -> Slopes!
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        */
        if (ground == true)
        {
            if ( player_collision_main( x, y ) )
            {
                do
                {
                    x  -=  sin(degtorad(angle));
                    y  -=  cos(degtorad(angle));
                } until ( !player_collision_main( x, y ) )
            }
            if ( player_collision_slope( x, y, angle, maskMid ) && !player_collision_main( x, y ) )
            {
                do
                {
                    x  +=  sin(degtorad(angle));
                    y  +=  cos(degtorad(angle));
                } until ( player_collision_main( x, y ) )
            }
        }

    // ========== PART 4 ==============================================================================================       
        /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        -> Other stuff
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        */
       
        // fall if there isn't enough speed
        if (angle > 80 && angle < 280 && ground == true && abs(x_speed) < 3)
        {
            y_speed =  -sin(degtorad(angle))*x_speed;
            x_speed =  cos(degtorad(angle))*x_speed;
            ground  =  false;
        }
       
        // fall off the ground if the edges aren't colliding
        if (ground == true && angle != 0 &&
            (player_collision_left_edge( x, y, angle ) == false || player_collision_right_edge( x, y, angle ) == false  ))
        {
            y_speed =  -sin(degtorad(angle))*x_speed;
            x_speed =  cos(degtorad(angle))*x_speed;
            ground  =  false;
        }       
       
        // get new angle
        if (ground == true && player_collision_left_edge( x, y, angle ) && player_collision_right_edge( x, y, angle ))
        {
            // Store the new angle
            angle_holder  =  player_get_angle( x, y, angle );
           
            // Check if difference is less than 45. If it is, linear interpolate the angle, so it results on smoother rotation.
            // Otherwise, set the new angle normally. Remember that linear interpolation formula is the next:
            //
            // final = a*t + b*(1-t); where t is the interpolation value, wich goes from 0 to 1
            //
            // There's also a shorter and faster method, wich is the one we're going to use:
            //
            // final = a + (b-a)*t;
           
            if (abs(angle-angle_holder)<45) angle = angle + (angle_holder-angle)*0.5;
            else                            angle = angle_holder;
        } else {
            angle  =  0;
        }

Supersonic933

Ranking : Nota E
Número de Mensagens : 396
Data de inscrição : 14/02/2011
Notas recebidas : E
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://planetaanalisandogames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Como fazer Boost

Mensagem por Need_90 em Qua 11 Maio 2011, 18:35

você não esta fazendo o jogo?Deveria entender o jogo Happy

Need_90

Número de Mensagens : 309
Idade : 17
Data de inscrição : 30/04/2011
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Como fazer Boost

Mensagem por Supersonic933 em Qua 11 Maio 2011, 18:47

Need_90 escreveu:você não esta fazendo o jogo?Deveria entender o jogo Happy
Sim, entendo. É que fazer um player separado com o boost pode deixá-lo pesado.

Supersonic933

Ranking : Nota E
Número de Mensagens : 396
Data de inscrição : 14/02/2011
Notas recebidas : E
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://planetaanalisandogames.blogspot.com/

Voltar ao Topo Ir em baixo

Re: Como fazer Boost

Mensagem por Conteúdo patrocinado Hoje à(s) 11:43


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum