Anúncios do fórum
Procurar
Entrar
Últimos assuntos
» eae galerapor jester o ouriço Sáb Jul 13, 2013 3:09 pm
» Game Maker Forum
por Samus Aran Qui Jun 21, 2012 1:45 pm
» Yo Tiger!!
por luiz_100juizo Seg Nov 14, 2011 11:31 am
» { Projeto em andamento } X3 ExploRer | Jogo de cavar para pegar moedas |
por Wanderlei Corrêa Sáb Out 01, 2011 9:02 pm
» { Apresentação } Olá galera, Sou o Uriel.56
por luiz_100juizo Qua Set 28, 2011 2:26 pm
» [ Cmd help v1.2 ] Software criado no Game maker para ajudar o PC { gm 8.0 } (download)
por luiz_100juizo Qua Set 28, 2011 2:24 pm
» Concurso de nº001 - Jogos Futuristas
por luiz_100juizo Qua Set 28, 2011 2:19 pm
Tópicos semelhantes
Os membros mais ativos do mês
Nenhum usuário |
Palavras-chaves
Quem está conectado?
Há 4 usuários online :: 0 registrados, 0 invisíveis e 4 visitantes Nenhum
[ Ver toda a lista ]
O recorde de usuários online foi de 81 em Ter Mar 09, 2021 12:25 pm
Tuto Gigantesco de como fazer jogo de tiro // Parte 1
3 participantes
Game Maker Future :: Fórum :: Game Maker :: Tutoriais
Página 1 de 1
Tuto Gigantesco de como fazer jogo de tiro // Parte 1
Fazendo um jogo de tiro
Introdução
E ai blz galera ? Bom eu tava sem nada pra faze e resolvi faze um tuto, ai veio a ideia de fazer um sobre jogos de tiro top view. Esse ensina mais a parte de fazer a arma mesmo, então se tiver interesado le ai, é no minimo interesante.
Fazendo sua arma atirar e mirar
Vamo começa então né, bom... fassa uma sprite de uma pessoa com uma arma,vista top view, centralizada no meio do player.
Exemplo tipo essa:
Agora crie o obj_player com a sprite dele é claro.
Em seu create coloque:
Código:
- Código:
atirar=true
cartucho=10
cartuchoo=10
municao=50
forca=35
veloci=14
velocii=15
recarrega=15
mira=15
arma=1
a=0
carregando=false
Aqui criamos as variveis da arma, muitas para facilitar na hora de criar varias armas ai você só precisa alterar essas variaveis e não o codigo inteiro. agora a tradução:
Alguma duvida ? Então vamo láatirar=true // essa var é a que define se pode atirar ou não, para não fica aquela rajada de tiros que nunca para
cartucho // esse é o tanto de tiro que tem na arma
cartuchoo // esse é o maximo de tiros que cabe na arma
municao // é o tanto de tiros que ainda pode usar
forca // o tando de vida que o tiro vai tirar do inimigo
veloci // velocidade do tiro
velocii // velocidade entre um tiro e o outro, EX: de uma pistola é 15, de uma metralha é 4
recarrega // tempo que leva para recarregar
mira // é o tanto de chance que tem de errar o tiro. O de uma sniper por exemplo é 0
arma // essa é a var que define com qual arma ele está tipo assim ARMA 1 = pistola, ARMA 2= AK47
a // esse é o valor que tem de balas sem nada, vc vai entender depois.
carregando=false // verifica se ta carregando.
Agora no step coloque:
Código:
- Código:
direction=point_direction(x,y,mouse_x,mouse_y)
image_angle=direction
Agora no mesmo codigo:
Código:
- Código:
if keyboard_check(vk_left) and place_free(x-4,y)
x-=4
if keyboard_check(vk_right) and place_free(x+4,y)
x+=4
if keyboard_check(vk_up) and place_free(x,y-4)
y-=4
if keyboard_check(vk_down) and place_free(x,y+4)
y+=4
Pronto agora o nosso player já mira e anda. Mas e os tiros ?
Antes de tudo crie um obj_tiro com uma sprite de tiro. Nele coloque assim no create:
Código:
- Código:
forca=0
Isso cria a var forca, que é a força do tiro. E na colisão com o inimigo, que eu não vou ensinar a fazer coloque assim:
Código:
- Código:
other.vida-=forca
instance_destroy()
Isso tira da vida dele a sua força, e destroi a bala.
Agora no step:
Código:
- Código:
image_angle=direction
Isso eu já expliquei.Deixa o angulo da sprite igual ao da direção.
Agore vamos voltar ao step do player que deve estar assim:
Código:
- Código:
direction=point_direction(x,y,mouse_x,mouse_y)
image_angle=direction
//
if keyboard_check(vk_left) and place_free(x-4,y)
x-=4
if keyboard_check(vk_right) and place_free(x+4,y)
x+=4
if keyboard_check(vk_up) and place_free(x,y-4)
y-=4
if keyboard_check(vk_down) and place_free(x,y+4)
y+=4
Agora nesse codigo adicione mais isso:
Código:
- Código:
if mouse_check_button_pressed(mb_left) and atirar=true and cartucho>=1 and arma=1 and carregando=false
{
cartucho-=1
atirar=false
alarm[0]=velocii
tiro=instance_create(x,y,obj_tiro)
tiro.speed=veloci
tiro.forca=forca
tiro.direction=direction
tiro.direction+=random_range(-mira,mira)
}
Caso o mouse sejá precionado e possa atirar e tenha bala, e a arma seja 1 e não estaja carregando:
perde uma bala
não pode atirar
ativa o alarm 0 de acordo com o tempo entre os tiros da arma
cria o tiro
tiro fica na velocidade dele
tiro fica com a força dele
tiro vai para a direção da direção do player (o mouse)
tiro aumenta a direção entre a mira negativa e a mira positiva, fazendo assim com que de aquela erradinha.
OBS1: Não esqueça o depth do player tem que ser menor que o da bala.
OBS2: Não esquece de marcar "Interpolate colors between pixels" lá em "Global Game Settings"
Seu codigo do step do player deve estar assim:
Código:
- Código:
direction=point_direction(x,y,mouse_x,mouse_y)
image_angle=direction
//
if keyboard_check(vk_left) and place_free(x-4,y)
x-=4
if keyboard_check(vk_right) and place_free(x+4,y)
x+=4
if keyboard_check(vk_up) and place_free(x,y-4)
y-=4
if keyboard_check(vk_down) and place_free(x,y+4)
y+=4
//
if mouse_check_button_pressed(mb_left) and atirar=true and cartucho>=1 and arma=1 and carregando=false
{
cartucho-=1
atirar=false
alarm[0]=velocii
tiro=instance_create(x,y,obj_tiro)
tiro.speed=veloci
tiro.forca=forca
tiro.direction=direction
tiro.direction+=random_range(-mira,mira)
}
Agora no alarm 0 coloque:
Código:
- Código:
atirar=true
Pronto agora o player atira anda e mira. Mas e a munição ? Vamo faze o player recarregar.
Lembra daquele varsinha chamada "a" ? Então vamu usa ela agora, coloca assim no step:
Código:
- Código:
a = cartuchoo - cartucho
ou seja
10 - balas da arma = a
Isso é, "a" é o tanto de balas que cabe na arma.
Ai vc coloca mais assim:
Código:
- Código:
if keyboard_check_pressed(vk_space) and carregando=false
{
alarm[1]=recarrega
carregando=true
}
Isso é caso spaço seja apertado, e não esteja carregando, ele vai recarrega (ativa o alarm 1 de acordo com a var recarrega e diz que ta carregando)
Agora seu step deve estar assim:
Código:
- Código:
direction=point_direction(x,y,mouse_x,mouse_y)
image_angle=direction
//
if keyboard_check(vk_left) and place_free(x-4,y)
x-=4
if keyboard_check(vk_right) and place_free(x+4,y)
x+=4
if keyboard_check(vk_up) and place_free(x,y-4)
y-=4
if keyboard_check(vk_down) and place_free(x,y+4)
y+=4
//
if mouse_check_button_pressed(mb_left) and atirar=true and cartucho>=1 and arma=1 and carregando=false
{
cartucho-=1
atirar=false
alarm[0]=velocii
tiro=instance_create(x,y,obj_tiro)
tiro.speed=veloci
tiro.forca=forca
tiro.direction=direction
tiro.direction+=random_range(-mira,mira)
}
//
a = cartuchoo - cartucho
if keyboard_check_pressed(vk_space) and carregando=false
{
alarm[1]=recarrega
carregando=true
}
Código:
- Código:
municao -= a
cartucho +=a
carregando=false
Isto é:
tira o valor "a" da municao e aumenta o valor "a" do cartucho. e diz que não ta mais carregando
Pronto agora ele carrega e tudo mais. Mais falta mostrar as balas. Crie um obj_controle e em seu draw coloque:
Código:
- Código:
draw_text(0,0,"Balas: " + string(obj_player.cartucho) + " / " + string(obj_player.municao))
Então só o ultimo recadinho pessoal.
Eu demorei tempo para fazer esse tuto, e posso ter errado em alguma coisa, então se ver algo errado avisa ae que eu arrumo, eu fui fanzendo e testando, deu tudo certo aqui. Proxima aula vou ensinar a usar aquele var "arma"
FLW COMENTA AE.
anonimus- Iniciante
- Mensagens : 5
Pontos : 4874
Reputação : 1
Data de inscrição : 05/08/2011
Re: Tuto Gigantesco de como fazer jogo de tiro // Parte 1
Realmente é um ótimo tutorial, quanto maior, melhor xD.
Continue assim cara...
Continue assim cara...
SuperGamesFuture- Contribuente
- Mensagens : 18
Pontos : 4907
Reputação : 3
Data de inscrição : 18/07/2011
Re: Tuto Gigantesco de como fazer jogo de tiro // Parte 1
O Tutorial é muito bom!
Mas deve seguir o modelo das regras: https://gmfuture.forumeiros.com/t6-regras-da-secao-de-tutoriais
Se você arrumar, seu tuto será aprovado pela Staff, + 1 de reputação para você.
Mas deve seguir o modelo das regras: https://gmfuture.forumeiros.com/t6-regras-da-secao-de-tutoriais
Se você arrumar, seu tuto será aprovado pela Staff, + 1 de reputação para você.
Game Maker Future :: Fórum :: Game Maker :: Tutoriais
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos