[AJUDA] While e repetições

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

[AJUDA] While e repetições

Mensagem por vitorfernandes13 em Dom 27 Abr 2014, 19:43

Pessoal, estou com outro problema  scratch 

Estou querendo criar uma barra de especial, onde atinge-se 100 na barra, a nave comece a atirar feito louca por 10 segundos sem gastar munição  afro 
Tentei fazer isso, mas, meu PC travou, tenho certeza que fiz algo errado  Mad 

Código:

//Controle: Create
global.superespecial = false;

Código:

//Player: Create
controle2 = true;

Código:

//Player: Step
if global.especial = 100 and controle2 = true {
    global.superespecial = true;
    controle2 = false;
}

if global.superespecial = true and controle2 = false {
    alarm[2] = 300;
    global.especial = 0;
    controle2 = true;
}

while (global.superespecial = true) {
    with (instance_create(x+21,y-40,obj_Tiro)) {
        motion_set(90,20);
    }

    with (instance_create(x-21,y-40,obj_Tiro)) {
        motion_set(90,20);
    }
}

Código:

Alarm 2
global.superespecial = false;

O que fiz de errado? Eu preciso colocar intervalo entre tiros? e se o jogador morrer no meio do especial?  bom 

vitorfernandes13

Ranking : Nota C
Número de Mensagens : 284
Data de inscrição : 11/01/2014
Notas recebidas : C
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [AJUDA] While e repetições

Mensagem por Willy em Dom 27 Abr 2014, 19:50

Neste caso, um loop não é o ideal. Usando-os, você criaria todos os tiros em um único frame.

É melhor você criar uma variável "AtiraFeitoLouco" que, quando ativa, começa a atirar freneticamente.

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [AJUDA] While e repetições

Mensagem por vitorfernandes13 em Dom 27 Abr 2014, 19:56

Willy escreveu:Neste caso, um loop não é o ideal. Usando-os, você criaria todos os tiros em um único frame.

É melhor você criar uma variável "AtiraFeitoLouco" que, quando ativa, começa a atirar freneticamente.

Foi o que eu tentei '-'
Eu criei a variavel superespecial, enquanto ela fosse verdadeira ela ficaria atirando, qual a melhor maneira de se resolver isso? Razz

vitorfernandes13

Ranking : Nota C
Número de Mensagens : 284
Data de inscrição : 11/01/2014
Notas recebidas : C
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [AJUDA] While e repetições

Mensagem por Willy em Dom 27 Abr 2014, 20:12

Bom, eu fiz uma pequeno teste aqui e funcionou. Apenas para teste, crie um projeto e crie mais dois objetos: obj_tiro e obj_controle.

No obj_tiro, coloque um sprite e um valor de speed qualquer no create.

No objeto controle, faça assim
Create:
Código:
AtiraFeitoLouco = false;

Alarm[0]:
Código:
AtiraFeitoLouco = false;

Step:
Código:
if keyboard_check_pressed(vk_space){ //Substitua pela condição que desejar
    if (alarm[0])<=0{
        AtiraFeitoLouco = true;
        alarm[0] = room_speed * 10; //10 segundos...
    }
}


if (AtiraFeitoLouco==true){//Atirar!
    t = instance_create(x,y,obj_tiro);
    t.direction = irandom(360);
}

Veja se isso resolve seu problema. Se tiver alguma dúvida, é só falar.
Flws... blz

___________


Engines, tutoriais e projetos? Clique no banner!



Atenção:
Comporte-se, senão você vai levar a cintada do Willy no meio da bunda! bravo


Willy

Ranking : Nota A
Número de Mensagens : 1812
Idade : 23
Data de inscrição : 08/06/2009
Notas recebidas : C + B + A + A
Reputação : 245
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://willy-gmbr.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [AJUDA] While e repetições

Mensagem por vitorfernandes13 em Dom 27 Abr 2014, 20:15

Willy escreveu:Bom, eu fiz uma pequeno teste aqui e funcionou. Apenas para teste, crie um projeto e crie mais dois objetos: obj_tiro e obj_controle.

No obj_tiro, coloque um sprite e um valor de speed qualquer no create.

No objeto controle, faça assim
Create:
Código:
AtiraFeitoLouco = false;

Alarm[0]:
Código:
AtiraFeitoLouco = false;

Step:
Código:
if keyboard_check_pressed(vk_space){ //Substitua pela condição que desejar
    if (alarm[0])<=0{
        AtiraFeitoLouco = true;
        alarm[0] = room_speed * 10; //10 segundos...
    }
}


if (AtiraFeitoLouco==true){//Atirar!
    t = instance_create(x,y,obj_tiro);
    t.direction = irandom(360);
}

Veja se isso resolve seu problema. Se tiver alguma dúvida, é só falar.
Flws... blz

Vou testar amanhã senão eu taco meu computador pela janela
Posso te enviar uma MP amanhã avisando se deu certo? Happy
Se puder testar meu jogo? http://gmbr.forumeiros.com/t29828-cq-17-scapin#218356 Queria saber se está pelo menos aceitavel  bravo 

vitorfernandes13

Ranking : Nota C
Número de Mensagens : 284
Data de inscrição : 11/01/2014
Notas recebidas : C
Reputação : 11
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [AJUDA] While e repetições

Mensagem por saim em Dom 27 Abr 2014, 20:33

vitorfernandes13 escreveu:
Willy escreveu:Neste caso, um loop não é o ideal. Usando-os, você criaria todos os tiros em um único frame.

É melhor você criar uma variável "AtiraFeitoLouco" que, quando ativa, começa a atirar freneticamente.

Foi o que eu tentei '-'
Eu criei a variavel superespecial, enquanto ela fosse verdadeira ela ficaria atirando, qual a melhor maneira de se resolver isso? Razz
Estou falando a partir de uma olhada superficial pelo tópico.
Quando a gente fala de ações que se repetem a cada step, rola uma confusão entre "se" e "enquanto".

Vamos lá: "enquanto" é "while" se tudo acontece no mesmo step. Senão, se for for "em todos os steps em que..." é "if". Fica muito fácil de entender quando você parte do sentido contrário: a variável é "true" e vai ser "false" em 15 steps, você precisa criar instâncias de tiros "enquanto" ela for true. Você cria uma instância "IF" ela for true, não "while" ela for true.

Falei por falar. Se o Willy deu uma solução, ela VAI funcionar. Mas você podia não ter entendido o que ele fez, agora entendeu.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

Voltar ao Topo Ir em baixo

Re: [AJUDA] While e repetições

Mensagem por Conteúdo patrocinado Hoje à(s) 12:08


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