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.

[PROG] Tutorial com dicas do Game Maker

Tutoriais, videoaulas, guias e downloads para te ajudar nos estudos.
Avatar do usuário
Tutoriais & Aulas
Colaborador
Colaborador
Reações: 0
Mensagens: 110

[PROG] Tutorial com dicas do Game Maker

Mensagem por Tutoriais & Aulas » Qui Abr 28, 2016 7:17 pm

Autor original: PedroX
1- Fazendo um alarme sem o evento alarme e sem a funcao alarm[0]:
No create coloque: tempo=0
Dentro do evento Step coloque o codigo:

Exemplo:

Código: Selecionar todos

tempo+=1
if tempo>room_speed*tempo_que_quiser
{
tempo=0;
codigo_a_ser_executado
}
2-Fazendo um objeto girar em torno de outro:
Coloque no Create do objeto que girara em torno do outro:

Código: Selecionar todos

rotacao=0
Coloque no Step dele:

Código: Selecionar todos

rotacao+=10
x=obj_central.x+lengthdir_x(distancia,rotacao)/*mude obj_central para o nome certo e distancia para  a distancia para com o obj_central*\
y=obj_central.y+lengthdir_y(distancia,rotacao)
3-Randomizar um numero entre dois numeros(Ex: um numero entre 1 e 4 pode ser 2 e 3):
Create: numero=0
Press Space:numero= floor( random( num_maior - numero_menor ) ) + numero_menor//para ter um exemplo troque num_maior por 7 e num_menor por 2
Draw:draw_text(x,y,string(numero))
Ponha na room e teste.

Finalizar o jogo com uma mensagem perguntando se quer finalizar (Obs: GM:S não suporta a função 'show_message_ext'):
Botao que vai finalizar:

Código: Selecionar todos

if show_message_ext("Quer sair?","Sim","","Nao") == 1
    {game_end()}
Desenhar grade:

Código: Selecionar todos

Draw:
tam_hor=32; 
tam_ver=32; 
for(i=0; i<room_width; i+=tam_hor)
   draw_line(i,0,i,room_height);
for
(i=0; i<room_height; i+=tam_ver)
   draw_line(0,i,room_width,i);
Sistema senhas:
Create:

Código: Selecionar todos

inserir_senha="";senha_correta="senha123"
Press enter:

Código: Selecionar todos

inserir_senha=get_string("Digite:","")
if inserir_senha=senha_correta{room_goto_next();/*ou outro codigo*\}
Edit:
Apontar imagem e girar na direcao do mouse:
Step:

Código: Selecionar todos

direction=point_direction(x,y,mouse_x,mouse_y)
image_angle=direction;
Fazendo uma tela de apresentacao no inicio do jogo:
Crie um objeto e ponha numa room antes da do game ou menu, ponha esse objeto na room.
Create:
alp=0
Step:
if alp<1 alp+=0.009
Draw:
draw_background_ext(nome_background_inicio,x,y,image_xscale,image_yscale,0,
c_white,alp)

Fazendo a gravidade ir na direcao de um objeto:
1- No objeto que tera a gravidade, no create:
gravity=0.5
gravity_direction=point_direction(x,y,obj_centro,obj_centro);

Fazendo dois pulos:
Create: pulos=0
Press Space ou outra tecla:

Código: Selecionar todos

if !place_free(x,y+1) 
{
      vspeed-=9; 
      pulos=1;
}
else
if pulos=1
{
     vspeed-=6; 
    pulos=0; 
}
Colisao com o chao: vspeed=0
Step: if place_free(x,y+1) gravity=0.5

Relogio:
Create:

Código: Selecionar todos

s=0
m=0
contar=0
Step:

Código: Selecionar todos

contar+=1;
if contar=30{s+=1;contar=0}
if s>=60{s=0}
m = s div 60;
Draw:

Código: Selecionar todos

draw_text(x,y,string(m))
draw_text(x+10,y,':')
draw_text(x+15,y,string(s))
Fazendo um movimento com um codigo curioso:
Step:(troque 5 pela velocidade)

Código: Selecionar todos

x +=(keyboard_check(vk_right) - keyboard_check(vk_left)) * 5;
Explicacao: o keyboard_check retorna 0 se nao pressionar a tecla e se pressionar retorna 1.
Entao se o (keyboard_check(vk_right) retornar 1 e o keyboard_check(vk_left) retornar 0, vai dar: 1-0=1, multiplica por 5 e da 5.
Entao se o (keyboard_check(vk_left) retornar 1 e o keyboard_check(vk_right) retornar 0, vai dar: 0-1=-1, multiplica por 5 e da -5.
Como o comeco é x+= entao x+=5 ou x+=-5, entenderam?

Fazendo um rastro:
O que voce precisa fazer é criar um obj_rastro. Por o mesmo sprite do objeto que tera o rastro. Por no step do obj que tera o rastro:

Código: Selecionar todos

instance_create(x,y,obj_rastro)
E por no Step do rastro:

Código: Selecionar todos

if alpha>0 {alpha-=0.1} 
if alpha<=0 {instance_destroy ()}

Responder

Quem está online

Usuários navegando neste fórum: Bing [Bot] e 2 visitantes