GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Hoje à(s) 16:45

» Preciso de ajuda
por AftonDuGrau Dom 21 Abr 2024, 20:18

» Como faz o evento drawn GUI, não se repetir?
por aminaro Sex 19 Abr 2024, 20:30

» PROBLEMAS COM FÍSICAS DE ÁGUA
por aminaro Ter 16 Abr 2024, 10:07

» Retorno da GMBR!!!
por Ralphed Sex 12 Abr 2024, 22:45

» JOGADOR PARANDO NO AR QUANDO ATACA
por aminaro Qua 10 Abr 2024, 13:51

» Problemas com texto interativo
por Kaaru72 Dom 07 Abr 2024, 11:31

» Erro escondido e indecifrável
por dev_gabize.azv Qui 04 Abr 2024, 10:11

» Mudar cor de apenas uma palavra
por Ralphed Sáb 30 Mar 2024, 00:39

» Procuro Programador de game maker
por Wou Sex 15 Mar 2024, 10:27

» Mod APK
por gamerainha Qua 13 Mar 2024, 06:30

» Aceito pedidos de sprites (Com exemplos meus)
por Sevilha Qua 28 Fev 2024, 12:17

» Inventário simples
por Isquilo_Roedor Qui 22 Fev 2024, 15:18

» Problemas na programaçnao de inimigo [jogo DOOM LIKE]
por Black Mirror Dom 11 Fev 2024, 13:34

» ANDROID MULTI TOUCH
por DiegoBr Dom 04 Fev 2024, 12:13

» Servidor de Discord do fórum?
por Lighter Sáb 27 Jan 2024, 17:18

» Save e Load Json
por Klinton Rodrigues Qui 25 Jan 2024, 11:12

» Colisão com mais de um objeto
por aminaro Seg 22 Jan 2024, 15:02

» Oi sou novo aqui
por Thiago Silveira Alexandre Sáb 20 Jan 2024, 20:55

» Como acessar conteudo comprado no marketplace
por macmilam Sex 19 Jan 2024, 07:42

» Devlogs em vídeos do Block Room
por Joton Seg 15 Jan 2024, 16:56

» Alguém aqui já ganha dinheiro com seus games?
por Joton Seg 15 Jan 2024, 16:49

» ACERVO GMBR MAGAZINE
por Joton Qui 11 Jan 2024, 19:21

» como aumentar o obj sem aumentar a colisão??
por GabrielXavier Qua 10 Jan 2024, 07:21

» Asteroid Core - Early Acesse Update [0.2.0.0]
por JOZ. Seg 08 Jan 2024, 14:39


[Resolvido] Problema com montes de "Ifs"

4 participantes

Ir para baixo

[Resolvido] Problema com montes de "Ifs" Empty [Resolvido] Problema com montes de "Ifs"

Mensagem por Mr.Rafael Seg 13 Dez 2010, 15:42

Estou criando pequenos projetos para, aos poucos, começar em GML. Começando pela movimentação, existem 2 pequenas ações que ando criando (esquerda e direita). Meu código:

Código:
// Objeto
effect_create_above(ef_star,self.x,self.y,1,255)
//----------------------------------------------
//
// Movimentação
if keyboard_check (vk_left) {
x -=4
}
else {
x -=0
}
////////////////////////////////////////////////
if keyboard_check (vk_right) {
x +=4
}
else {
x +=0
}

Vejam que utilizei 2 Ifs... mas eu acho que isso foi meio que uma "gambiarra". Pois bem, eu quero usar essas 2 ações em um IF só. Além de economizar espaço, seria melhor e mais organizado. (pelo menos eu acharia)

"Não entendi a sua pergunta..."

Bem, vou colocar 2 códigos aqui. Consiste em, quando você apertar Enter, aparecer um efeito:

A "gambiarra" que estou falando:
Código:
if keyboard_check (vk_enter) {
effect_create_above(ef_star,self.x,self.y,1,255)
}
////////////////////////////////////////////////
if keyboard_check_released (vk_enter) {
//Não faz nada
}

A ação com apenas 1 IF:
Código:
if keyboard_check (vk_enter) {
effect_create_above(ef_star,self.x,self.y,1,255)
}
else {
//Não faz nada
}

Uma observação é que eu tentei, mas o depurador julgava o código como errado.

Bem... é possível criar essas ações usando apenas 1 IF? Se possível, mostrem com 3 ou mais ações. Isso me ajudaria muito a criar um bom código. Não precisaria mais de ficar criando IFs contínuos \o/

o/
* Se esta pergunta já foi feita por alguém, peço o Link do tópico por MP e que deletem/fechem este .-. E desculpem qualquer coisa :B


Última edição por Mr.Rafael em Seg 13 Dez 2010, 16:33, editado 1 vez(es) (Motivo da edição : Tópico resolvido)
Mr.Rafael
Mr.Rafael

Games Ranking : Nota A

Notas recebidas : A-C-B-A-A
Data de inscrição : 05/10/2010
Reputação : 94
Número de Mensagens : 502
Prêmios : [Resolvido] Problema com montes de "Ifs" Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 3

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

Ir para o topo Ir para baixo

[Resolvido] Problema com montes de "Ifs" Empty Re: [Resolvido] Problema com montes de "Ifs"

Mensagem por JOZ. Seg 13 Dez 2010, 15:48

Não precisa colocar else em tudo.

Ao invés de:
Código:
//----------------------------------------------
//
// Movimentação
if keyboard_check (vk_left) {
x -=4
}
else {
x -=0
}
////////////////////////////////////////////////
if keyboard_check (vk_right) {
x +=4
}
else {
x +=0
}

Coloque:
Código:
if keyboard_check (vk_left) {x+=-4}
if keyboard_check (vk_right) {x+=4}
JOZ.
JOZ.

Games Ranking : Nota B

Notas recebidas : B - C - C - A - A - B - B - A - C - C - A
Data de inscrição : 15/11/2010
Reputação : 11
Número de Mensagens : 421
Prêmios : [Resolvido] Problema com montes de "Ifs" Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 1 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker Studio 1.4


https://www.patreon.com/jozgames

Ir para o topo Ir para baixo

[Resolvido] Problema com montes de "Ifs" Empty Re: [Resolvido] Problema com montes de "Ifs"

Mensagem por donte Seg 13 Dez 2010, 15:53

que tal usar uma variavel pra detectar se pode criar o afeito tipo:
no create:
Código:
global.cria=false
no step:
Código:
//caso true...
if global.cria=true{effect_create_above(efeito,x,y,1,0)}
//pode cria(ou não)...
if keyboard_check (vk_enter) {
global.cria=true
}else{global.cria=false}

edit:
joz. se ele fizer isso o player vai andar pra sempre...
avatar
donte

Data de inscrição : 22/12/2009
Reputação : 0
Número de Mensagens : 1165
Prêmios : [Resolvido] Problema com montes de "Ifs" Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker Studio 2.0
  • Unity


Ir para o topo Ir para baixo

[Resolvido] Problema com montes de "Ifs" Empty Re: [Resolvido] Problema com montes de "Ifs"

Mensagem por Mr.Rafael Seg 13 Dez 2010, 16:01

Obrigado, JOZ.. Eu uso esses "elses" porque, quando eu tentei criar a movimentação pela primeira vez, ele ficava andando de forma contínua, então passei a usá-los. Mas já não precisa... Valeu, então. Very Happy

Isso resolveu o problema que tive... mas a minha curiosidade quanto a isso continua @_@. Mas obrigado, você me deu uma ótima dica para economizar espaço. (além de resolver meu problema)

E... donte, eu testei o código, é funcional. Essa de criar uma variável com true e false é interessante, mas acho que se limitaria a apenas 2 ações (quando ele é true e quando ele é false). No caso, acho que teria que colocar um valor para ele (por exemplo, 0, 1 e 2) e dizer quais ações ele teria se tivesse tais valores. Isso seria funcional? Porque se for, minha dúvida acaba aqui mesmo. Especifico tudo num código enorme para fazê-los sem muito esforço depois.

o/
Mr.Rafael
Mr.Rafael

Games Ranking : Nota A

Notas recebidas : A-C-B-A-A
Data de inscrição : 05/10/2010
Reputação : 94
Número de Mensagens : 502
Prêmios : [Resolvido] Problema com montes de "Ifs" Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 3

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

Ir para o topo Ir para baixo

[Resolvido] Problema com montes de "Ifs" Empty Re: [Resolvido] Problema com montes de "Ifs"

Mensagem por Mannoroth Seg 13 Dez 2010, 16:04

donte escreveu:joz. se ele fizer isso o player vai andar pra sempre...
Errado, segundo o código o player so anda pra direita se estiver pressionando(segurando) right e só anda pra esquerda se estiver pressionando left. Se nao estiver pressionando nenhum dos dois, ele fica parado.
Mannoroth
Mannoroth

Games Ranking : Nota D

Notas recebidas : D+D
Data de inscrição : 05/10/2010
Reputação : 12
Número de Mensagens : 841
Prêmios : [Resolvido] Problema com montes de "Ifs" Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

Ir para o topo Ir para baixo

[Resolvido] Problema com montes de "Ifs" Empty Re: [Resolvido] Problema com montes de "Ifs"

Mensagem por donte Seg 13 Dez 2010, 16:14

ahh é verdade só li a "GAMBIARRA"(não to chamando a duvida dele de gambiarra apenas o titulo que ele pois)...

e funcionaria sim mais ia ter que usar no step if global.cria>0 no key e usaria mais de 1 tipo ia ficar assim:
Create:
Código:
global.cria=100//pode criar até 100
no Step:
Código:
//caso menor que 100...
if global.cria<100{effect_create_above(efeito,x,y,1,0)}
//pode cria(ou não)...
if keyboard_check (vk_enter) {if global.cria>=0{global.cria-=1}
}else{global.cria=100}
o que usaria +1 if Shocked
avatar
donte

Data de inscrição : 22/12/2009
Reputação : 0
Número de Mensagens : 1165
Prêmios : [Resolvido] Problema com montes de "Ifs" Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Plataformas :
  • Game Maker Studio 2.0
  • Unity


Ir para o topo Ir para baixo

[Resolvido] Problema com montes de "Ifs" Empty Re: [Resolvido] Problema com montes de "Ifs"

Mensagem por Mr.Rafael Seg 13 Dez 2010, 16:32

Então parece que é praticamente impossível criar várias funções usando um if só.

Mas ao menos isso reduz e muito os códigos que eu estava usando. O que eu estava pensando era +/- assim:

Código:
// Opções de função
global.option = 0;
///////////////////////
// Ações pre-definidas
if global.option = 0 {effect_create_above(ef_flare,self.x,self.y,1,300)}
if global.option = 1 {x+=1}
if global.option = 2{x-=1}
///////////////////////
// Movimentação:
if keyboard_check (vk_left) {global.option = 2}
if keyboard_check (vk_right) {global.option = 1}
if keyboard_check (vk_nokey) {global.option = 0}

Eu teria comandos pré-definidos. Caso eu quisesse usá-los mais de uma vez, eu não teria que repetir o comando, apenas setar o valor da variável que ela se encarregaria do resto. Mesmo assim, eu ia gastar mais código com isso... e deu um total de 6 ifs.

Bem... acho que realmente vou ter que usar esses montes de ifs para criar algo. Obrigado a quem conseguiu reduzir o tamanho dos codes, era isso que eu queria fazer quando perguntei Very Happy

•- Tópico resolvido -•

o/
Mr.Rafael
Mr.Rafael

Games Ranking : Nota A

Notas recebidas : A-C-B-A-A
Data de inscrição : 05/10/2010
Reputação : 94
Número de Mensagens : 502
Prêmios : [Resolvido] Problema com montes de "Ifs" Empty

Medalhas x 0 Tutoriais x 2 Moedas x 0

Ouro x 1 Prata x 1 Bronze x 3

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

Ir para o topo Ir para baixo

[Resolvido] Problema com montes de "Ifs" Empty Re: [Resolvido] Problema com montes de "Ifs"

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos