Avatar do usuário
Tutoriais & Aulas
Colaborador
Colaborador
Autor
Mensagens: 174
Registrado em: Qui Abr 28, 2016 11:37 am
Karma: 245

[PROG] Tutorial com dicas do Game Maker

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:
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:
rotacao=0

Coloque no Step dele:

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:
if show_message_ext("Quer sair?","Sim","","Nao") == 1
    {game_end()}


Desenhar grade:
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:
inserir_senha="";senha_correta="senha123"


Press enter:
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:
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:
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:
s=0
m=0
contar=0

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

Draw:
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)
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:
instance_create(x,y,obj_rastro)

E por no Step do rastro:
if alpha>0 {alpha-=0.1} 
if alpha<=0 {instance_destroy ()}

Tags:

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes