Entrar
Últimos assuntos
» Como ajustar velocidade de cada frame da animação no game makerpor Ralphed Ontem à(s) 18:28
» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07
» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45
» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51
» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31
» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11
» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39
» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27
» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30
» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17
» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18
» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34
» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13
» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18
» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12
» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02
» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55
» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42
» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56
» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49
» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21
» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21
» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39
» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16
Como fazer Boost
2 participantes
Página 1 de 1
Como fazer Boost
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.
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.
Re: Como fazer Boost
tem um jeito facil mais é meio "ruin"
duplica o player e coloca "Z" pressed (mude o Z por qual tecla quer)
dai coloca no obj_player_aurea "Z" Releassed
duplica o player e coloca "Z" pressed (mude o Z por qual tecla quer)
- Código:
instance_change (obj_player_aurea,false)
dai coloca no obj_player_aurea "Z" Releassed
- Código:
instance_change (obj_player,false)
Need_90- Data de inscrição : 30/04/2011
Reputação : 2
Número de Mensagens : 309
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer Boost
E a velocidade aumentada?Need_90 escreveu:tem um jeito facil mais é meio "ruin"
duplica o player e coloca "Z" pressed (mude o Z por qual tecla quer)acho que é isso
- Código:
instance_change (obj_player_aurea,false)
dai coloca no obj_player_aurea "Z" Releassedé uma forma meio 'noob' mas é um bom geito,eu faço assim
- Código:
instance_change (obj_player,false)
Re: Como fazer Boost
é só você modificar no obj_player_aurea
Need_90- Data de inscrição : 30/04/2011
Reputação : 2
Número de Mensagens : 309
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer Boost
Acontece que meu player é um pouco complexo.Need_90 escreveu:é só você modificar no obj_player_aurea
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;
}
Need_90- Data de inscrição : 30/04/2011
Reputação : 2
Número de Mensagens : 309
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: Como fazer Boost
Sim, entendo. É que fazer um player separado com o boost pode deixá-lo pesado.Need_90 escreveu:você não esta fazendo o jogo?Deveria entender o jogo
Tópicos semelhantes
» como fazer os inimigos seguirem o personagem? e tambem como fazer com que ele me faza voltar pro inicio da fase quando me toca?
» resolvido-como fazer para mudar de fase?e como fazer mensagem de aviso?
» como eu faço pra carregar o texto de um arquivo .txt, como fazer a janela piscar e como desenhar sprite em jogo 3d?
» Como fazer um objeto se duplicar e como fazer um objeto seguir o outro?
» Como fazer o personagem fazer pausas entre os ataques [Resolvido]
» resolvido-como fazer para mudar de fase?e como fazer mensagem de aviso?
» como eu faço pra carregar o texto de um arquivo .txt, como fazer a janela piscar e como desenhar sprite em jogo 3d?
» Como fazer um objeto se duplicar e como fazer um objeto seguir o outro?
» Como fazer o personagem fazer pausas entre os ataques [Resolvido]
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|