Conectar-se

Esqueci minha senha

Últimos assuntos
» [Enquete] Concursos GMBR
por Willy Ontem à(s) 19:49

» CR - Concurso Relâmpago!!
por Willy Ter 18 Jul 2017, 17:11

» 3D:como rodar a camara em horizontal?
por Cambalinho Ter 18 Jul 2017, 15:09

» [Resolvido] pode explicar a d3d_set_projection()?
por Cambalinho Ter 18 Jul 2017, 11:28

» Escrever a resposta certa muda de room
por PedroX Seg 17 Jul 2017, 21:46

» Nota de esclarecimento - GMBR voltou!
por Mentos e Coca-cola Seg 17 Jul 2017, 17:05

» [CR] Campo Minado
por Katerp Dom 16 Jul 2017, 23:09

» [CR] The Bazooka Cat
por Tedi Ripper Dom 16 Jul 2017, 23:01

» Como melhorar um protótipo(Design)
por lolandoplayer Dom 16 Jul 2017, 22:56

» Diminuir velocidade ao arrastar objeto
por LwysF Dom 16 Jul 2017, 17:33

Quem está conectado
13 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 13 Visitantes

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36
Estatísticas
Temos 12700 usuários registrados
O último usuário registrado atende pelo nome de Eduardo Gomes

Os nossos membros postaram um total de 220919 mensagens em 30412 assuntos

Duvidas

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

Duvidas

Mensagem por jose rocha em Dom 08 Jun 2014, 16:21

Olá a todos, tenho umas duvidas de código, agradeço desde já a quem me poder ajudar:

1- Sempre que vejo isto mesmo num tutorial não entendo, gostaria que alguém me explicasse isto linha por linha:

ordem = 0;
for(i=0;i<5;i+=1) {
if letras[i] == true {
draw_text(0, ordem * 16, chr(55+i));
ordem += 1;
}
}

Este código refere-se ao meu post:
http://gmbr.forumeiros.com/t28238-preciso-de-ajuda-para-sistema


2- Como posso fazer algo se repetir até atingir o valor desejado? exemplo:

global.numero = irandomrange (0,7) ((((quaquer coisa assim,não interessa))))

if global.numero = global.numero 2

{
aqui eu queria que ele volta-se á primeira linha (por ser igual) e volta-se a gerar o numero
}

3- Tem alguma maneira de organizar a estrutura do "if dentro de if"? exemplo:

if qualquer coisa {
if outra qualquer coisa também {

resultado
}}

Queria saber se tem maneira de fazer isto mais fácil porque eu tiver que meter um monte de condiçoes então fica confuso.

Obrigado pela atenção.
avatar
jose rocha

Data de inscrição : 06/10/2013
Número de Mensagens : 76
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Duvidas

Mensagem por manobrother em Dom 08 Jun 2014, 17:10

O 1 e o 2 infelizmente não sei te responder mas no caso do 3 pode sim fazer, por exemplo:

if keyboard_check(vk_right){
if sprite_index = spr_personagem_esq{
sprite_index = spr_personagem_dir
}
}



Espero ter ajudado:)
avatar
manobrother

Data de inscrição : 31/10/2013
Número de Mensagens : 206
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 1
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Duvidas

Mensagem por jose rocha em Dom 08 Jun 2014, 17:29

Obrigado pela resposta mas isso sei eu, talvez eu me tenha explicado mal:

Quero fazer isso mas de outro maneira porque se eu tiver muitos "if" vira confusão.

qualquer coisa do tipo:

if keyboard_check(vk_right) and sprite_index = spr_personagem_esq and sprite_index = spr_personagem_dir
{
qualquer coisa aqui
}
avatar
jose rocha

Data de inscrição : 06/10/2013
Número de Mensagens : 76
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Duvidas

Mensagem por Camin em Seg 16 Jun 2014, 18:59

Vou tentar explicar :  

---------------------------------------------------------------------
1.:


ordem = 0;
for(i=0;i<5;i+=1) {
if letras[i] == true {
draw_text(0, ordem * 16, chr(55+i));
ordem += 1;
}
}

"ordem = 0;" declaração(criação) da variável ordem.

---------------------------------------------------------------------

"for(i=0;i<5,i+=1) { laço }"
o laço "for" possui três argumentos divididos por ";"(ponto e vírgula):

for(argumento1;argumento2;argumento3)

argumento1:Este argumento acontece uma vez, dá um valor a uma variável, neste caso "i=0"( i recebe 0 )

argumento2:condição para o laço continuar repetindo, ou seja, o laço({}) vai repetir enqüanto "i<5"(i for menor que 5)

argumento 3: acontece cada vez que o laço se repetir "i += 1" (i adicionará mais 1)

inicialmente "i=0",e enqüanto "i<5" o que está dentro das chaves({aqui}) irá se repetir, e cada vez que repetir "i += 1";(repetirá 6 vezes)
Isso é muito útil em certas situações, depois que se aprende a usar o for muitas coisas ficam mais fáceis.
---------------------------------------------------------------------
"if (letras[i] == true) { laço }"
'if' significa 'se'
'letras[i]' isso é um vetor, é mais ou menos assim:
letras[5] ([0]=true [1]=true [2]=false [3]=true [4]=false [5]=false)
é como se fosse um monte de variáveis numa só. O "i" nesse caso indica qual valor será acessado.
----------------------------------------------------------------------
"draw_text(0, ordem * 16, chr(55+i));"
draw ( x , y , text )
desenha (ou escreve ) um texto na posição (x,y).
----------------------------------------------------------------------
"ordem += 1"
ordem adiciona mais 1.
----------------------------------------------------------------------
---------------------------------------------------------------------
2.:


Use o laço for falado acima:
for ( numero = 2 ; numero <7 ; numero +=1 )
{
laço de comando
}
neste caso o que estiver dentro do laço se repetirá cinco veses.
---------------------------------------------------------------------
3.:

Sim!
compare:
&& ---------- and (e)
|| ---------- or (ou)
! ---------- not (não)


para testar duas condições:

if (qualquer_coisa == 0)&&(outra_coisa ==0) { laço }
ou
if (qualquer_coisa == 0)and(outra_coisa ==0) { laço }
se qualquer_coisa e outra_coisa forem 0.

if (qualquer_coisa == 0)||(outra_coisa ==0) { laço }
ou
if (qualquer_coisa == 0)or(outra_coisa ==0) { laço }

se qualquer_coisa ou outra_coisa forem 0.
---------------------------------------------------------------------

Uma dica que pode ser útil: colocar comentários próximos ao fim do laço.
veja a situação por exemplo:

if (alguma_coisa == 0)
{
if ((outra_coisa)&&(mais_outra_coisa)>0)
{
 if ((maisOutraCoisaAinda)||(SebeDeusOque)<80)
 {
  for (troco = 0; troco < coisa ; troco += 1)
  {
   SabeDeusOque += 3;
  }//fim de FOR
 
  if ( tu ) != ( ele )
  {
   tu +=1;
  }// fim de tu és diferente dele
 }//fim de +outracoisa e SabeDeus
}//fim de outra e mais outra coisa!

if (Alguma_coisinha == 0)
{
 algo +=1;
}//fim de alguma coisinha!
}//fim de alguma_coisa!

usando comentários facilitam quando se possui um carnaval de IFs.


Desculpe qualquer coisa, quis deixar o mais bem explicado possível.
Se tiver mais alguma dúvida escreva.
avatar
Camin

Data de inscrição : 26/03/2011
Número de Mensagens : 101
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Duvidas

Mensagem por jose rocha em Qua 18 Jun 2014, 21:32

caraças, a sua explicação é melhor que um tutorial. Estou exclarecido mais uma vez obrigado.
avatar
jose rocha

Data de inscrição : 06/10/2013
Número de Mensagens : 76
Insígnias de JAM :

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ver perfil do usuário

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