Eu, não vou comentar muito aqui, pois esta bem explicado nos scripts, então aqui eu falarei o básico mesmo!
Detalhes do tutorial:
Nível: Iniciante/Intermediário
Com Engine: Sim
Escrito por: Rodrigo M.
Em resposta a: bee50cent
Plataforma: GM8(Pelo menos onde em fiz)
Bem, vamos precisar de 4 objetos:
obj_player
obj_objetivo
obj_bloco
obj_controle
De 2 rooms:
rm_teste
rm_objetivo
e 3 Sprite:
spr_player
spr_objetivo
spr_bloco
bem, Mão na massa! =D
Atribua cada sprite, para o nome de referencia.
E no objeto player, vamos declaram algumas variáveis para usarmos nos objetivos:
Create:
Código: Selecionar todos
global.obj_azul := 0 //Declarando que não temos objetos azuis ainda
Código: Selecionar todos
global.room_id := room //Variavel, para declarar a room que o player esta, coisa do pause game!
Step:
Código: Selecionar todos
//Movimento do Personagem
if keyboard_check(vk_left) and place_free(x-5,y){x -=5}
if keyboard_check(vk_right) and place_free(x+5,y){x +=5}
if keyboard_check(vk_up) and place_free(x,y-5){y -=5}
if keyboard_check(vk_down) and place_free(x,y+5){y +=5}
Código: Selecionar todos
//Dar o pause game
if keyboard_check_pressed(ord("P")){
room_persistent=true
room := (rm_objetivo)
}
Código: Selecionar todos
global.obj_azul +=1 //vai aumentar 1 objeto azul para nós quando colidirmos com o objeto
Código: Selecionar todos
// Limitando o player de sai da room
move_contact_solid(direction,12)
vspeed=0
Agora no obj_objetivo, na colisão com o player coloca:
Código: Selecionar todos
instance_destroy()
no obj_controle que foi o unico sem sprite, coloca no create:
Código: Selecionar todos
//Configurando os textos
//dos Objetivos
t_objetivo := 'Objetivos:'; //Titulo
t_objetivos := 'Pegar 10 objetos azuis - NO'; //Objetivo 1
t_objetivos1 := 'Pegar mais de 12 objetos azuis - NO'; //Objetivo 2
///////////////////////////////////==//////////////////////////////
//ai se quiser colocar mais objetivos copia a
//
//variavel t_objetivos, e da um numero
//
//para ela, 1,2,3,4, etc...
//
//Ou coloque uma variavel de seu gosto!
//////////////////////////////////==//////////////////////////////
efeito := ''; //aqui digamos que é o texto, ele esta
//zerado aqui, mais para setar seu valor mesmo
//No caso ele será usado depois
texto := 0; //aqui a mesma coisa, ele esta setado aqui
//para ser usado depois
//NOTA := eu coloquei aquele 'NO' na frente do texto, para mostrar que o objetivo não esta completo!
no step, vamos fazer o efeito de letra, por letra, e definirmos a matemática do objetivo:
Código: Selecionar todos
///////////////////////////////////==//////////////////////////////
//Matematica Basica dos objetivos
//
//Aqui calculei quantos objetos azuis seriam necessario para completar um objetivo
//
///////////////////////////////////==//////////////////////////////
if global.obj_azul >= 10 {t_objetivos := 'Pegar 10 objetos azuis - OK';} //NOTA := Eu coloquei OK na frente que mostra que o objetivo foi completo
if global.obj_azul >=12 {t_objetivos1 := 'Pegar mais de 12 objetos azuis - OK';
} //aqui no caso como é o ultimo objetivo, você pode colocar
//no fim do script game_end(), ou room_goto_next(), etc..
///////////////////////////////////==//////////////////////////////
// o efeito do texto
//essa variavel 'efeito' ela vai ser usada, como 'cara' do texto
//
//Ela vai armazenar o efeito de letra por letra
//
///////////////////////////////////==//////////////////////////////
texto +=1 //configure aqui a velocidade que o texto apareça
efeito := string_copy(t_objetivo+'#'+t_objetivos+'#'+t_objetivos1,0,texto) //onde esta '#', é a mudança de linha, quando for colocar mais algum objetivo
//coloque a variavel com o texto, +, e coloque entre Aspas, esse simbolo
//para pulara linha e + de novo se tiver outra variavel, e assim por diante
Código: Selecionar todos
//Para o pause/mudança de room
if keyboard_check_pressed(ord("P")){
room := (rm_teste)
}
Código: Selecionar todos
///////////////////////////////////==//////////////////////////////
//
//Desenhando os Objetivos
//
//Aqui é bem simples apenas desenhei o texto na tela
//
///////////////////////////////////==//////////////////////////////
draw_set_font(font0)
draw_set_halign(fa_center)
draw_text_color(room_width/2,room_height/2-80,efeito,c_black,c_white,c_black,c_white,0.7)
//Só para desenhar quantos objetos já temos
draw_rectangle_color(0,0,150,32,c_white,c_white,c_gray,c_gray,0)
draw_text(67,5,'Objetos azuis: ' +string(global.obj_azul))
Caso contrario, não tenha uma explosão, Parabéns, você completou o tutorial com sucesso! [X¬D]
Tutorial por: Rodrigo M. - GMBR
Lembrando que agora eu vou continuar com os meus tutoriais de domingo! ;)