Tiros máximos(Tutorial)

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

Tiros máximos(Tutorial)

Mensagem por Marlon_Locci em Seg 30 Ago 2010, 21:27

Game Maker(Requerimentos)=Utilizei a 8.0 Pro mas acho que funciona com a Lite
Nivel=Iniciante/Intermediario

Aqui irei explicar como colocar o limite de tiros de um player(tanque neste tutorial)...e não como se mover por exemplo.
E as explicações estão nos proprios codigos OK?!
Primeiro crie uma sprite de um tanque
Apos fazer isto crie um objeto=player_1
No evento CREATE:

Código:

global.tiros=3//Tiros que se tem no momento

No evento STEP
Código:

//Tecla spaço ficara "indisponive"l até se ter mais que 0 tiros"
if global.tiros<=0 keyboard_clear(vk_space)
if global.tiros<=0 keyboard_clear(vk_space)
if global.tiros<=0 keyboard_clear(vk_space)
if global.tiros<=0 keyboard_clear(vk_space)

if global.tiros =0 keyboard_clear(vk_space)
if global.tiros =0 keyboard_clear(vk_space)
if global.tiros =0 keyboard_clear(vk_space)
if global.tiros =0 keyboard_clear(vk_space)

//Se tiver mais que 0 tiros pode criar tiros clicando com os devidos botões...
if global.tiros>=0

if keyboard_check(vk_space)
and
keyboard_check(vk_up)
instance_create(player_1.x,player_1.y,obj_tiro_cim_1*1)

//Criar tiro se apertar spaço mais esquerdo
if keyboard_check(vk_space)
and
keyboard_check(vk_left)
instance_create(player_1.x,player_1.y,obj_tiro_esq_1*1)

//Criar tiro se apertar spaço mais direito
if keyboard_check(vk_space)
and
keyboard_check(vk_right)
instance_create(player_1.x,player_1.y,obj_tiro_dir_1*1)

//Criar tiro se apertar spaço mais baixo
if keyboard_check(vk_space)
and
keyboard_check(vk_down)
instance_create(player_1.x,player_1.y,obj_tiro_baix_1*1)
Depois criem 4 sprites de tiros para os 4 lados e mais 4 objetos com os devidos lados e coloquem os devidos nomes iguais ao do codigo;(obj_tiro_baix_1,obj_tiro_cim_1,etc)
Aqui eu ensinei um modo basico de se por um limite de tiros(no player).
Irei postar mais alguns tutoriais(Ou dicas) de como se mover usando codigos e etc...
Por favor comentem Happy

Marlon_Locci

Número de Mensagens : 7
Data de inscrição : 28/08/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Tiros máximos(Tutorial)

Mensagem por †Ceifador em Seg 30 Ago 2010, 22:16

Não é necessário 1 objeto pra cada direção, pois podemos indicar através de funções, ex:

Evento keyboard press > seta direita
instance_create(x + 16, y, objTiro); //cria um objeto tiro a direita do jogador
with (objTiro) { motion_set(0, 5); } //cria um movimento no objeto tiro para a direta

Para cada tecla podemos definir um direction correspondente através do "with". Ele indica que aquela porção de código deve afetar o objeto indicado e não o objeto em que está escrito. Pro caso de ter mais de uma bala disparada ao mesmo tempo podemos definir a direção de cada uma delas independentemente usando o with e o ID (número de identificação interno) das balas.
Pra ler o ID de um objeto basta atribuir uma variável junto a função de criação, ex:

Evento keyboard press > seta direita
var varIdBala1, varIdBala2, varIdBala3; //"var" indica que estou declarando uma ou mais variáveis dentro deste evento, e varIdBala1, 2 e 3 são os nomes dessas variáveis
varIdBala1 = instance_create(x + 16, y, objTiro); //cria uma instância do objeto indicado e armazena sua ID na variável
varIdBala2 = instance_create(x + 16, y, objTiro);
varIdBala3 = instance_create(x + 16, y, objTiro);
with (varIdBala1) { motion_set(10, 5); } //cria um movimento na bala de ID indicado
with (varIdBala2) { motion_set(0, 5); }
with (varIdBala3) { motion_set(350, 5); }

Nesse caso são criadas 3 instâncias do objTiro partindo do mesmo ponto mas cada uma irá numa direção diferente. Com os valores usados temos uma bala saindo em linha reta e as outras duas um pouco inclinadas formando um "V".
Também dá pra criar tiros em qualquer direção usando funções que calculam ângulos como o point_direction por exemplo.

†Ceifador

Número de Mensagens : 154
Data de inscrição : 28/08/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

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