Anúncios do fórum
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Conectar-se

Esqueci minha senha

Os membros mais ativos do mês

Parceiros
Sonic Game Maker

Programadores

Palavras chave

Quem está conectado
1 usuário online :: Nenhum usuário registrado, Nenhum Invisível e 1 Visitante

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 10 em Ter Jul 19, 2011 11:38 am

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

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

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

Mensagem por anonimus em 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:

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.

anonimus
Iniciante
Iniciante

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

Voltar ao Topo Ir em baixo

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

Mensagem por SuperGamesFuture em Sab Ago 06, 2011 10:07 am

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

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

Voltar ao Topo Ir em baixo

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

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

O Tutorial é muito bom!
Mas deve seguir o modelo das regras: http://gmfuture.forumeiros.com/t6-regras-da-secao-de-tutoriais
Se você arrumar, seu tuto será aprovado pela Staff, + 1 de reputação para você.
avatar
luiz_100juizo
Administrador
Administrador

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

http://gmfuture.forumeiros.com

Voltar ao Topo Ir em baixo

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

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum