Entrar
Últimos assuntos
» player não consegue andarpor lovn7 Qui 21 Nov 2024, 13:33
» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56
» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22
» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31
» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23
» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49
» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58
» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36
» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36
» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33
» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51
» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28
» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18
» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08
» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10
» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16
» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40
» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01
» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45
» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34
» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28
» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48
» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54
» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14
» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50
[Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
+7
guto815
LCS
Super Games
andreh
Pit Bull
uriel.56
Lukbebalduke
11 participantes
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
[Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
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:
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:
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.
Alguma duvida ? Então vamo lá
Agora no step coloque:
- Código:
direction=point_direction(x,y,mouse_x,mouse_y)
image_angle=direction
Isso é para a imagem, faz com que a direção do player mire para o mouse junto com o angulo da sprite.
Agora no mesmo codigo:
- 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:
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:
other.vida-=forca
instance_destroy()
Isso tira da vida dele a sua força, e destroi a bala.
Agora no step:
- 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:
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:
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:
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:
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:
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:
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:
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
}
Agora coloque assim no alarm 1:
- 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:
draw_text(0,0,"Balas: " + string(obj_player.cartucho) + " / " + string(obj_player.municao))
Esse é um draw_text normal só que ficou meio extenso pq vem "texto + string + texto + string"
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.
Última edição por pinpi em Seg 25 Jul 2011, 20:41, editado 1 vez(es)
Lukbebalduke- Games Ranking :
Notas recebidas : B - B - A - B
Data de inscrição : 06/07/2011
Reputação : 30
Número de Mensagens : 765
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 2
x 1 x 0 x 0
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
Gostei do Tutorial, achei bem legal, para ajudar os iniciantes no assunto, como aqui no forum tem muitos...
Eu ainda naum testei o Tutorial, pq também eu ja sei sobre o assunto, mais, espero que os Avaliadores, aprovem seu Tutorial...
Flws..
Eu ainda naum testei o Tutorial, pq também eu ja sei sobre o assunto, mais, espero que os Avaliadores, aprovem seu Tutorial...
Flws..
uriel.56- Data de inscrição : 13/02/2010
Reputação : -2
Número de Mensagens : 430
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
Muito bom o tutorial,mas eu uso arrays nas variáveis,mais rápido para escrever é não preciso decorar todas as variáveis.
Dei uma lida rápida e não achei nada de errado.
Nota:10(para iniciantes)
Dei uma lida rápida e não achei nada de errado.
Nota:10(para iniciantes)
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
valeu ai galera. Vou fazer a parte 2 o mais rapido possivel. Pesso que um avaliador avalie.
Lukbebalduke- Games Ranking :
Notas recebidas : B - B - A - B
Data de inscrição : 06/07/2011
Reputação : 30
Número de Mensagens : 765
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 2
x 1 x 0 x 0
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
Bom tuto!
Ficou bem explicado e o tuto está completo!
Por mim: Aprovado
Ficou bem explicado e o tuto está completo!
Por mim: Aprovado
andreh- Games Ranking :
Notas recebidas : C
Data de inscrição : 09/03/2011
Reputação : 3
Número de Mensagens : 183
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
Valeu pelo comentario. Agoro pesso que alguem decida se é aprovado ou não.
Lukbebalduke- Games Ranking :
Notas recebidas : B - B - A - B
Data de inscrição : 06/07/2011
Reputação : 30
Número de Mensagens : 765
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 2
x 1 x 0 x 0
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
Ótimo tutorial Pinpi, realmente, qualidade nota 10!
Super Games- Games Ranking :
Notas recebidas : C
Data de inscrição : 10/06/2010
Reputação : 36
Número de Mensagens : 2800
Prêmios :
x 0 x 0 x 0
x 0 x 1 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
- Java
- Godot
- Javascript
- C ou C++
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
Valeu Super Games. Agora por favor alguem da staff avalie.
Lukbebalduke- Games Ranking :
Notas recebidas : B - B - A - B
Data de inscrição : 06/07/2011
Reputação : 30
Número de Mensagens : 765
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 2
x 1 x 0 x 0
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
O tutorial ficou bom cara, ontem eu movi ele para tutoriais aprovados, mas me esqueci de colocar o icone de aprovado.
Bom, agora já tem xD
flws
Bom, agora já tem xD
flws
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
E se eu quisesse em vez d colocar pro obj_player andar nas setas, colocar pra ele andar nas teclas "a", "s", "w" e "d"?
obrigado
obrigado
guto815- Data de inscrição : 06/08/2011
Reputação : 0
Número de Mensagens : 3
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
Vc troca isso:
(vk_left)
por isso:
(ord("A"))
Aí é só fazer isso pras outras direçoes tbm!
Não se esqueça, a letra deve ser maiúscula e estar entre aspas!
(vk_left)
por isso:
(ord("A"))
Aí é só fazer isso pras outras direçoes tbm!
Não se esqueça, a letra deve ser maiúscula e estar entre aspas!
andreh- Games Ranking :
Notas recebidas : C
Data de inscrição : 09/03/2011
Reputação : 3
Número de Mensagens : 183
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
Ah, vlw, mas eu tenho outra duvida.. como eu faço pro tiro sair pela ponta da arma ao inves d sair pela barriga do obj_player?
obrigado
obrigado
guto815- Data de inscrição : 06/08/2011
Reputação : 0
Número de Mensagens : 3
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
Amigo, não tenho certeza mas basta você manipular/alterar o x e y deste código:
Step:
Ex:
Step:
- Código:
tiro=instance_create(x,y,obj_tiro)
Ex:
- Código:
tiro=instance_create(x,y-5,obj_tiro)
Dancity- Games Ranking :
Notas recebidas : A
Data de inscrição : 11/01/2009
Reputação : 8
Número de Mensagens : 1340
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
Sim, de uma forma mais fácil basta manipular os eixos, como o Dancity disse. Mas uma forma que é realmente muito usada por jogos de tiro, é usando lengthdir_x e lengthdir_y. As funções são para seus respectivos eixos. Os argumentos são len e dir. len seria o comprimento do "movimento" e dir a direção. É claro que você tem que usar as funções em relatividade com os eixos do seu objeto, por exemplo:
Se o tiro sai da barriga do player é porque a origem está no centro - fato. A origem pode ser definida nas propriedades da sprite, na área "Origin", que fica lá em baixo. Você pode alterar com o mouse também, clicando e arrastando na miniatura ao lado. Assim, basta dar uma olhada na origem e você saberá qual o valor certo para colocar nos "y-5".
- Código:
instance_create(x+lengthdir_x(10,direção),y-lengthdir_y(10,direção))
Se o tiro sai da barriga do player é porque a origem está no centro - fato. A origem pode ser definida nas propriedades da sprite, na área "Origin", que fica lá em baixo. Você pode alterar com o mouse também, clicando e arrastando na miniatura ao lado. Assim, basta dar uma olhada na origem e você saberá qual o valor certo para colocar nos "y-5".
Markituh- Games Ranking :
Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios :
x 0 x 1 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
pois é, tentei mudar a origem, mas ai o personagem se vira como se tivesse usando uma .50 em um tanque, ai eu pensei se teria um jeito de definir que o tiro saia de uma posição da sprite do obj, assim sepre sairia pelo fim do cano da arma... se alguem souber fazer isso eu agradeceria xP^^
obrigado
EDIT: entadi esse codigo q vc passo, deve servir ja. Mas ainda gostaria de saber se tem como fazer isso q eu falei.. vlws^^
obrigado
EDIT: entadi esse codigo q vc passo, deve servir ja. Mas ainda gostaria de saber se tem como fazer isso q eu falei.. vlws^^
guto815- Data de inscrição : 06/08/2011
Reputação : 0
Número de Mensagens : 3
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
Eu ia fazer também está pergunta hoje de manhã mas não deu tempo, teria que haver um jeito de fazer uma 2ªorigem , acho melhor criar um topico para essa pergunta.
Lukbebalduke- Games Ranking :
Notas recebidas : B - B - A - B
Data de inscrição : 06/07/2011
Reputação : 30
Número de Mensagens : 765
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 2
x 1 x 0 x 0
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
Poisé, mudar a orign pode (e vai) te atrapalhar muito. É muito melhor manipular o código ou fazer isso que o Markituh falou.
Dancity- Games Ranking :
Notas recebidas : A
Data de inscrição : 11/01/2009
Reputação : 8
Número de Mensagens : 1340
Prêmios :
x 0 x 0 x 0
x 1 x 0 x 0
x 0 x 0 x 0
iniciante leigaoooo
valeuuuuuuuuuuuuuuuuuuu migao cara se tu subese o quanto tu me ajudo tu podia pega meu email e tu me da aulas de gm 8 pro eu ate te pago agora eu entendo pra que os codigos e principalmente as variaveis antigamente pra min era um treco de 100 cabeças mas me diz como tu gravo todos esse codigos ou tu tem os codigos prontos e so formou a partir das variaveis bom de qualquer forma valeuuuuuuuuuuuuuuuuuuuuuuuuuu
Re: [Tutorial] Fazendo um jogo de tiro // vale a pena dar uma olhada.
Muito bom, só apresentei um erro mas eu mesmo concertei com minha "técnicas"
EU SOU MUITO FELIZ COM GAME MAKER!
EU SOU MUITO FELIZ COM GAME MAKER!
Potlic- Data de inscrição : 22/04/2012
Reputação : 1
Número de Mensagens : 8
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» Vale a pena vender jogo por U$0,99 na Itunes...
» Estou fazendo um jogo de tiro...
» ai galera tava fazendo um jogo de tiro plataforma ..............
» TUTORIAL – Fazendo um jogo de loads externos.
» [TUTORIAL] Fazendo um jogo de Plataforma em 1 script
» Estou fazendo um jogo de tiro...
» ai galera tava fazendo um jogo de tiro plataforma ..............
» TUTORIAL – Fazendo um jogo de loads externos.
» [TUTORIAL] Fazendo um jogo de Plataforma em 1 script
GMBR :: Ensine & Aprenda :: Tutoriais :: Game Maker
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos