Game Maker Future
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Anúncios do fórum
Procurar
 
 

Resultados por:
 


Rechercher Pesquisa avançada

Entrar

Esqueci-me da senha

Últimos assuntos
» eae galera
por 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

Os membros mais ativos do mês
Nenhum usuário

Parceiros
Sonic Game Maker

Programadores

Palavras-chaves

Quem está conectado?
1 usuário online :: 0 registrados, 0 invisíveis e 1 visitante

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

Ir para baixo

Tuto Gigantesco de como fazer jogo de tiro // Parte 1 Empty Tuto Gigantesco de como fazer jogo de tiro // Parte 1

Mensagem por anonimus Sex Ago 05, 2011 11:09 pm

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:
Tuto Gigantesco de como fazer jogo de tiro // Parte 1 Spr_pl10
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:



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:
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:
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
E não se esqueça para nao dar o bug da arma presa na parede coloque uma mask do tamanho do corpo do player, um circulo de 32x32.

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)
}
TRADUZINDO...

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
}
Agora coloque assim no alarm 1:


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))
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.
avatar
anonimus
Iniciante
Iniciante

Mensagens : 5
Pontos : 4630
Reputação : 1
Data de inscrição : 05/08/2011

Ir para o topo Ir para baixo

Tuto Gigantesco de como fazer jogo de tiro // Parte 1 Empty Re: Tuto Gigantesco de como fazer jogo de tiro // Parte 1

Mensagem por SuperGamesFuture Sáb Ago 06, 2011 10:07 am

Realmente é um ótimo tutorial, quanto maior, melhor xD.
Continue assim cara...
SuperGamesFuture
SuperGamesFuture
Contribuente
Contribuente

Mensagens : 18
Pontos : 4663
Reputação : 3
Data de inscrição : 18/07/2011

Ir para o topo Ir para baixo

Tuto Gigantesco de como fazer jogo de tiro // Parte 1 Empty Re: Tuto Gigantesco de como fazer jogo de tiro // Parte 1

Mensagem por luiz_100juizo Seg Ago 08, 2011 3:08 pm

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ê.
luiz_100juizo
luiz_100juizo
Administrador
Administrador

Mensagens : 56
Pontos : 5998
Reputação : 6
Data de inscrição : 12/02/2011
Idade : 27
Localização : Guarulhos - SP

https://gmfuture.forumeiros.com

Ir para o topo Ir para baixo

Tuto Gigantesco de como fazer jogo de tiro // Parte 1 Empty Re: Tuto Gigantesco de como fazer jogo de tiro // Parte 1

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos