(resolvido)inimigo atirar

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

(resolvido)inimigo atirar

Mensagem por manobrother em Sex 15 Ago 2014, 17:19

eu estou fazendo o meu inimigo atirar e funcionou muito bem, ele atira para os lados certos e tal mas ele atira sem parar eu quero que ele atire com intervalo de segundos, tentei usar os alarmes mas nao consegui, aqui ta o código que ele atira:
Código:
if distance_to_object(obj_personagem) < 150 and ! collision_line(x,y,obj_personagem.x,obj_personagem.y,obj_bloco1,0,0){
  
  
   if sprite_index = spr_ninja1_dir{
   speed = 0;
   sprite_index = spr_ninja1_parado_dir
   with(instance_create(obj_ninja1.x-2,obj_ninja1.y+2,obj_shuriken2)){
   image_speed = 3;
   motion_set(0,20)}}

   if sprite_index = spr_ninja1_esq{
   speed = 0;
   sprite_index = spr_ninja1_parado_esq
   with(instance_create(obj_ninja1.x+2,obj_ninja1.y+2,obj_shuriken2)){
   image_speed = 3;
   motion_set(180,20)}}}


Última edição por manobrother em Qua 03 Set 2014, 23:01, editado 1 vez(es)

manobrother

Número de Mensagens : 206
Idade : 16
Data de inscrição : 31/10/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: (resolvido)inimigo atirar

Mensagem por AxeInLine em Sex 15 Ago 2014, 17:28

Tô com paciência de criar códigos hoje não, só vou dar uma dica U.U
Cria uma variável e coloque dentro de um alarme com o tempo que você quer para que ela aumente 1 a cada step (lembre-se de lupar), por exemplo, dai nesse código você coloca um if pedindo o valor da variável:
Código:
if (var_tempo = 30){
if distance_to_object(obj_personagem) < 150 and ! collision_line(x,y,obj_personagem.x,obj_personagem.y,obj_bloco1,0,0){
  if sprite_index = spr_ninja1_dir{
  speed = 0;
  sprite_index = spr_ninja1_parado_dir
  with(instance_create(obj_ninja1.x-2,obj_ninja1.y+2,obj_shuriken2)){
  image_speed = 3;
  motion_set(0,20)}}

  if sprite_index = spr_ninja1_esq{
  speed = 0;
  sprite_index = spr_ninja1_parado_esq
  with(instance_create(obj_ninja1.x+2,obj_ninja1.y+2,obj_shuriken2)){
  image_speed = 3;
  motion_set(180,20)}}}
var_tempo = 0;
}


Acho que dará certo, boa sorte!

AxeInLine

Número de Mensagens : 211
Idade : 14
Data de inscrição : 23/03/2014
Reputação : 40
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: (resolvido)inimigo atirar

Mensagem por manobrother em Sex 15 Ago 2014, 23:06

AxeInLine escreveu:Tô com paciência de criar códigos hoje não, só vou dar uma dica U.U
Cria uma variável e coloque dentro de um alarme com o tempo que você quer para que ela aumente 1 a cada step (lembre-se de lupar), por exemplo, dai nesse código você coloca um if pedindo o valor da variável:
Código:
if (var_tempo = 30){
if distance_to_object(obj_personagem) < 150 and ! collision_line(x,y,obj_personagem.x,obj_personagem.y,obj_bloco1,0,0){
  if sprite_index = spr_ninja1_dir{
  speed = 0;
  sprite_index = spr_ninja1_parado_dir
  with(instance_create(obj_ninja1.x-2,obj_ninja1.y+2,obj_shuriken2)){
  image_speed = 3;
  motion_set(0,20)}}

  if sprite_index = spr_ninja1_esq{
  speed = 0;
  sprite_index = spr_ninja1_parado_esq
  with(instance_create(obj_ninja1.x+2,obj_ninja1.y+2,obj_shuriken2)){
  image_speed = 3;
  motion_set(180,20)}}}
var_tempo = 0;
}


Acho que dará certo, boa sorte!
cara nao consegui, vc consegue explicar melhor?

manobrother

Número de Mensagens : 206
Idade : 16
Data de inscrição : 31/10/2013
Reputação : 10
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 0

Voltar ao Topo Ir em baixo

Re: (resolvido)inimigo atirar

Mensagem por Thyago em Sex 15 Ago 2014, 23:10

cara coloque em create:

Código:
alarm[0]=room_speed*2;

e no alarm[0]

Código:
alarm[0]=room_speed*2;

if distance_to_object(obj_personagem) < 150 and ! collision_line(x,y,obj_personagem.x,obj_personagem.y,obj_bloco1,0,0){
 
 
  if sprite_index = spr_ninja1_dir{
  speed = 0;
  sprite_index = spr_ninja1_parado_dir
  with(instance_create(obj_ninja1.x-2,obj_ninja1.y+2,obj_shuriken2)){
  image_speed = 3;
  motion_set(0,20)}}

  if sprite_index = spr_ninja1_esq{
  speed = 0;
  sprite_index = spr_ninja1_parado_esq
  with(instance_create(obj_ninja1.x+2,obj_ninja1.y+2,obj_shuriken2)){
  image_speed = 3;
  motion_set(180,20)}}}

Thyago

Ranking : Nota B
Número de Mensagens : 1092
Idade : 29
Data de inscrição : 24/08/2009
Notas recebidas : D+B+B+C+A
Reputação : 31
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 1
   :

Voltar ao Topo Ir em baixo

Re: (resolvido)inimigo atirar

Mensagem por AxeInLine em Sab 16 Ago 2014, 11:12

O_O Hoje estou com vontade de fazer códigos, resolvi te ajudar "melhor" (Quero menosprezar você não Thyago, só quero tentar ajudar ele tongue).
Bem, primeiro vamos criar uma variável, vou chama-la de var_tempo, mas pode chama-la do o que quizer, e vou fazer com que o alarm seja 1 step por segundo, ficando assim seu create:
Código:
var_tempo = 0;
alrm[0] = 1;
Dentro do alarm[0] vou fazer para que a var_tempo aumente uma por step, sem se esquecer de loopar (ou sei lá como faz isso), fazendo seu alarm[0] ficar assim:

Código:
var_tempo += 1;
alarm[0]=1;
Então agora, aonde estava:

Código:
if distance_to_object(obj_personagem) < 150 and ! collision_line(x,y,obj_personagem.x,obj_personagem.y,obj_bloco1,0,0){
  if sprite_index = spr_ninja1_dir{
  speed = 0;
  sprite_index = spr_ninja1_parado_dir
  with(instance_create(obj_ninja1.x-2,obj_ninja1.y+2,obj_shuriken2)){
  image_speed = 3;
  motion_set(0,20)}}

  if sprite_index = spr_ninja1_esq{
  speed = 0;
  sprite_index = spr_ninja1_parado_esq
  with(instance_create(obj_ninja1.x+2,obj_ninja1.y+2,obj_shuriken2)){
  image_speed = 3;
  motion_set(180,20)}}}
Vai ficar:

Código:
if (var_tempo = 30)//30 steps = 1 segundo // ou seja, muda este 30 pelo tempo entre um tiro o outro.
{
if distance_to_object(obj_personagem) < 150 and ! collision_line(x,y,obj_personagem.x,obj_personagem.y,obj_bloco1,0,0){
  if sprite_index = spr_ninja1_dir{
  speed = 0;
  sprite_index = spr_ninja1_parado_dir
  with(instance_create(obj_ninja1.x-2,obj_ninja1.y+2,obj_shuriken2)){
  image_speed = 3;
  motion_set(0,20)}}

  if sprite_index = spr_ninja1_esq{
  speed = 0;
  sprite_index = spr_ninja1_parado_esq
  with(instance_create(obj_ninja1.x+2,obj_ninja1.y+2,obj_shuriken2)){
  image_speed = 3;
  motion_set(180,20)}}}
var_tempo = 0;
}
Agora entendeu? O que fizemos foi criar uma variável que aumentava 1 a cada step por meio dos alarm's, e usamos ela como condição para que o inimigo pudesse atirar, acho que pode-se dizer assim Happy.
Agora espero ter ajudado! 

AxeInLine

Número de Mensagens : 211
Idade : 14
Data de inscrição : 23/03/2014
Reputação : 40
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: (resolvido)inimigo atirar

Mensagem por Conteúdo patrocinado Hoje à(s) 13:53


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