For (Looping) gente, toh me matando aki o.o

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

For (Looping) gente, toh me matando aki o.o

Mensagem por Froidz em Qua 30 Dez 2009, 07:19

Bom pessoal, estou aqui por que esta duvida ta me matando...
Eu gostaria de saber como usar o for, achei um exemplo no help do gm:

Código:
{
  for (i=0; i<=9; i+=1) list[i] = i+1;
}

Eu ateh consigo usa-lo, mas nao consigo fazer com que o valor i soh seja adicionado caso eu pressione a tecla ENTER. Sempre da erro quando eu tento adicionar a variavel valor[i], diz que ela nao existe ou que o array nao existe..

Ajudem, plz.
Valeu! o/

Froidz

Número de Mensagens : 1053
Idade : 23
Data de inscrição : 03/08/2008
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: For (Looping) gente, toh me matando aki o.o

Mensagem por Alex FC em Qua 30 Dez 2009, 10:07

Bom, pelo jeito você vai ter que declarar o "i" no create também. Fiz isso e funcionou, coloca i=0 no create que resolve.

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: For (Looping) gente, toh me matando aki o.o

Mensagem por Froidz em Qua 30 Dez 2009, 10:36

Poh kra, eu toh ficando loko aki, esse ai eh o exemplo do gm, o que eu tentei fazer foi meio que diferente...

Aqui, eu consegui fazer o loop:

Código:
for (i=0; i<=100; i+=10) {
valor[i] = i-10
draw_rectangle(valor[i]+10,valor[i]+10,valor[i],valor[i],0)
}

Mas o problema não é esse, tipo, é, e não é, entendeu? xD
Assim, coloca esse código no evento Draw, veja que aparecerão 10 quadradinhos na diagonal, mas o que eu quero fazer mesmo, é criar cada um desses quadradinhos em posições diferentes (mouse_x,mouse_Y), e eu infelizmente não tenho mta experiencia com for =/

Valeu! o/


Última edição por Froidz em Qua 30 Dez 2009, 10:37, editado 1 vez(es) (Razão : erro de portugues xD)

Froidz

Número de Mensagens : 1053
Idade : 23
Data de inscrição : 03/08/2008
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: For (Looping) gente, toh me matando aki o.o

Mensagem por Alex FC em Qua 30 Dez 2009, 10:55

Bom, deixa e ver se eu entendi, você quer criar os quadrados em posições diferentes e em relação ao mouse? Eu sei usar bem o For, só não estou entendendo o que tu quer fazer.

MSN: afalexfc426@gmail.com

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: For (Looping) gente, toh me matando aki o.o

Mensagem por Janx em Qua 30 Dez 2009, 13:04

Você quer apenas uma linha e mais colunas? Apenas uma coluna com várias linhas? Mais do que uma coluna e linha?

Código:
//Apenas uma coluna
for (l=0; l<5; l+=1)
{
xx = mouse_x;
yy = mouse_y+l*30+l*5; //30 = tamanho vertical de cada quadrado 5 = diferença de pixels para cada quadrado
draw_rectangle(xx, yy,xx+60, yy+30,0);
}

Código:
//Apenas uma linha
for (c=0; c<5; c+=1)
{
xx = mouse_x+c*30+c*5; //30 = tamanho horizontal de cada quadrado 5 = diferença de pixels para cada quadrado
yy = mouse_y;
draw_rectangle(xx, yy, xx+30, yy+30,0); //30 = tamanho horizontal/vertical de cada quadrado
}

ou você pode fazer os 2 juntos usando 2 for:
Código:
//Se você deixar como uma linha (l<1), vai ficar como o segundo exemplo
for (l=0; l<3; l+=1) //Linhas
{
    //Se você deixar como uma coluna (c<1), vai ficar como o primeiro exemplo
    for (c=0; c<5; c+=1) //Colunas
    {
    xx = mouse_x+c*30+c*5;
    yy = mouse_y+l*30+l*5;
    draw_rectangle(xx, yy, xx+30, yy+30,0);
    }
}

Usando o terceiro exemplo você pode fazer os outros 2.
Claro que você pode aprimorar isso do jeito que quiser.

Flwss

Janx

Número de Mensagens : 2417
Idade : 23
Data de inscrição : 24/05/2008
Reputação : 14
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 2
   : 0

Voltar ao Topo Ir em baixo

Re: For (Looping) gente, toh me matando aki o.o

Mensagem por Froidz em Qua 30 Dez 2009, 16:55

Bom, não é bem isso...
É o seguinte, o negócio de desenhar os quadrados eu já saquei, mas o problema, é que
não quero criar todos os quadrados de uma vez. Assim, eu clico com o mouse, ai aparece 1 quadrado, e dependendo de onde eu clicar, outros quadrados aparecerão. Então, vocês devem me perguntar:

-Mas por que não criar um objeto a cada clique?

Pois quero saber isso para poupar memória, vários objetos deixam o programa muito lento, nem a cleanmem (dll para reduzir gastos de memória do gm), então usando o comando draw_rectangle deixa o programa mais lento e mais fácil de ser manipulado, é como se cada quadradinho fosse um objeto com 1 sprite, entenderam?

Agradeço a ajuda.
Valeu! o/

Froidz

Número de Mensagens : 1053
Idade : 23
Data de inscrição : 03/08/2008
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: For (Looping) gente, toh me matando aki o.o

Mensagem por Kabeção em Qua 30 Dez 2009, 20:40

Crie uma variavel n = -1 (se a array valor[i] começa do 0, se começar do 1 coloque n = 0).
Toda vez que clicar com mouse:
Código:
n += 1;
valor_x[n] = mouse_x;
valor_y[n] = mouse_y;

Para desenhar:
Código:
for (i = 0; i <= n ; i += 1) {
draw_rectangle(valor_x[i]+10,valor_y[i]+10,valor_x[i],valor_y[i],0)
}

Mesmo que o exemplo não de certo, a ideia principal é essa, criar uma variavel que guarda quantos quadrados há e duas arrays que guardam o x e o y deles com o indice igual ao numero n do quadrado.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: For (Looping) gente, toh me matando aki o.o

Mensagem por Alex FC em Qua 30 Dez 2009, 21:35

Kabeção, tu vai pensa que copie de tu, mas eu fiz esse código sem olhar o seu, parece muito, mas eu tenho certeza absoluta que não olhei o seu XD. Eu consegui fazer, é só clocar isso no create:

Código:
a=0
xx=0
yy=0

e isso no draw:

Código:
if mouse_check_button_pressed(mb_left)
{
a+=1
xx[i]=mouse_x
yy[i]=mouse_y
}

for(i=0 i<a i+=1)
{
draw_rectangle(xx[i],yy[i],xx[i]+50,yy[i]+50,0)
}

Testei aqui e deu certo, Ok?

FLWS!

Alex FC

Ranking : Nota A
Número de Mensagens : 2503
Idade : 23
Data de inscrição : 20/12/2008
Notas recebidas : B A
Reputação : 174
Insignia 1 x 1 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 2
   : 1
   : 1

http://redscreensoft.blogspot.com

Voltar ao Topo Ir em baixo

Re: For (Looping) gente, toh me matando aki o.o

Mensagem por Froidz em Qua 30 Dez 2009, 22:43

Caramba Alex, valeu kra, valeu mesmo! =D
Agora posso continuar com o criador de músicas para o The Show Of Rock 3D, pq
com vários objetos a música iria tocando em velocidade normal e o jogo iria ficando lento..
atrapalhando na sincronia da música no programa com a do jogo.

Valeu mesmo hein, vcs dois, o do kabeção não deu muito certo, mas valeu assim mesmo hein kra o/
Valeu! o/

Froidz

Número de Mensagens : 1053
Idade : 23
Data de inscrição : 03/08/2008
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: For (Looping) gente, toh me matando aki o.o

Mensagem por Conteúdo patrocinado Hoje à(s) 16:00


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