Entrar
Últimos assuntos
» Alguém aqui já ganha dinheiro com seus games?por theguitarmester Ter 30 Abr 2024, 11:43
» Colisões não funcionando
por theguitarmester Ter 30 Abr 2024, 10:16
» Como ajustar velocidade de cada frame da animação no game maker
por pequetux Sex 26 Abr 2024, 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
» 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
[Resolvido]Código Bugado ?
5 participantes
Página 1 de 1
[Resolvido]Código Bugado ?
Então pessoal, estou com meu projeto na ativa daí comecei a programar e fiz este código !
A finalidade deste código é controlar a velocidade (vtime) em que o personagem lança os projeteis em relação a quantidade de pontos que ele tem (obj_general.ponto) e o xangle é uma var que determina a velocidade de rotação de um obj qualquer ...
O problema é que .. quando a pontuação do personagem ultrapassa 150 ele para de lançar projeteis ! Teve uma hora que eu testando ele continuou lançando, mas depois parou .. mas sempre que testo, quando ultrapassa os 150 ele para de lançar !
Qual seria o problema ? ( p.s: o game maker n trava, nem mostra error )
- Código:
//config vtime
if obj_general.pont > 20 {vtime=50 xangle=3};
if obj_general.pont > 60{vtime=35 xangle=5};
if obj_general.pont > 90{vtime=25 xangle=6};
if obj_general.pont > 100{vtime=20 xangle=7};
if obj_general.pont > 150{vtime=11 xangle=10};
if obj_general.pont > 250{vtime=6 xangle=15};
A finalidade deste código é controlar a velocidade (vtime) em que o personagem lança os projeteis em relação a quantidade de pontos que ele tem (obj_general.ponto) e o xangle é uma var que determina a velocidade de rotação de um obj qualquer ...
O problema é que .. quando a pontuação do personagem ultrapassa 150 ele para de lançar projeteis ! Teve uma hora que eu testando ele continuou lançando, mas depois parou .. mas sempre que testo, quando ultrapassa os 150 ele para de lançar !
Qual seria o problema ? ( p.s: o game maker n trava, nem mostra error )
luan.alc- Games Ranking :
Notas recebidas : B
Data de inscrição : 13/03/2012
Reputação : 3
Número de Mensagens : 294
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 1
x 0 x 0 x 0
Re: [Resolvido]Código Bugado ?
Talvez seja problema em vtime=6 e xangle=15 e não diretamente no valor do ponto. Você ja testou alterar estes valores para 20 e 7 por exemplo que são os do 100 ? Se funcionar recalibre estes valores.
Flws!
Flws!
Re: [Resolvido]Código Bugado ?
Bom eu dei uma analisada e percebi que não tem nada de errado nesse script. Creio que o problema seja no script de tiro. Caso não encontre o problema coloca o script aqui para eu ver se está tudo certo. Espero ter ajudado.
Superbomber_MuyMacho- Data de inscrição : 22/03/2014
Reputação : 9
Número de Mensagens : 103
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Código Bugado ?
Tenta:
- Código:
if obj_general.pont > 20 {vtime=50 xangle=3};
else if obj_general.pont > 60{vtime=35 xangle=5};
else if obj_general.pont > 90{vtime=25 xangle=6};
else if obj_general.pont > 100{vtime=20 xangle=7};
else if obj_general.pont > 150{vtime=11 xangle=10};
else if obj_general.pont > 250{vtime=6 xangle=15};
Gabreel- Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
- Javascript
- Outros
Re: [Resolvido]Código Bugado ?
Talvez não tenham notado, mas a forma como ele dispôs as condições é que está causando isso. Perceba que ele compara sempre do menor valor até o maior:
Dúvidas é só falar.
Flws...
- Código:
if (valor>10){
//Ação
}else if (valor>20){
//Ação
}else if (valor>30){
//Ação
}
- Código:
if (valor>30){
//Ação
}else if (valor>20){
//Ação
}else if (valor>10){
//Ação
}
Dúvidas é só falar.
Flws...
Última edição por Willy em Ter 01 Abr 2014, 19:49, editado 1 vez(es) (Motivo da edição : Letra comida.)
Re: [Resolvido]Código Bugado ?
Willy isso seria desnecessário, porque ele coloca do menor ao maior. Ex:
se for > 50, mas também > 60(ou seja é 65), quando ele der verdadeiro para 50 e mudar o valor lá...ele tbm vai dar verdadeiro para o 60...e o ultimo ke mudou(o 60), é o ke vai ficar...é oke eu disse esse script naum tem nada de errado...
se for > 50, mas também > 60(ou seja é 65), quando ele der verdadeiro para 50 e mudar o valor lá...ele tbm vai dar verdadeiro para o 60...e o ultimo ke mudou(o 60), é o ke vai ficar...é oke eu disse esse script naum tem nada de errado...
Eu (segundo post) escreveu:Bom eu dei uma analisada e percebi que não tem nada de errado nesse script. Creio que o problema seja no script de tiro. Caso não encontre o problema coloca o script aqui para eu ver se está tudo certo. Espero ter ajudado.
luan.alc escreveu:
- Código:
//config vtime
if obj_general.pont > 20 {vtime=50 xangle=3};
if obj_general.pont > 60{vtime=35 xangle=5};
if obj_general.pont > 90{vtime=25 xangle=6};
if obj_general.pont > 100{vtime=20 xangle=7};
if obj_general.pont > 150{vtime=11 xangle=10};
if obj_general.pont > 250{vtime=6 xangle=15};
Superbomber_MuyMacho- Data de inscrição : 22/03/2014
Reputação : 9
Número de Mensagens : 103
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Código Bugado ?
Não, estou certo. Veja:
Se isso não resolver o problema, provavelmente o mesmo está em outro lugar, provavelmente no código de atirar como você sugeriu, mas estou certo que isto resolverá.
Logo, conclui-se que ele precisa que apenas uma dessas condições seja verdadeira, que no caso, a mais adequada em relação aos seus pontos. Note que ele só usou if if if if, e nenhum if-else, portanto, todas as condições atendidas serão executadas. Pela lógica, a ultima condição atendida seria executada por ultimo, logo, o que for definido nela valerá justamente por ser alterado por ultimo (conforme você disse ou acho que disse), mas nada garante isso. Prevenir nunca é de mais, devemos sempre - mesmo que pareça desnecessário - polir o código e deixa-lo enxuto com a finalidade de evitar bugs e facilitar a manutenção do mesmo.Autor escreveu:A finalidade deste código é controlar a velocidade (vtime) em que o personagem lança os projeteis em relação a quantidade de pontos que ele tem (obj_general.ponto) e o xangle é uma var que determina a velocidade de rotação de um obj qualquer ...
Se isso não resolver o problema, provavelmente o mesmo está em outro lugar, provavelmente no código de atirar como você sugeriu, mas estou certo que isto resolverá.
Re: [Resolvido]Código Bugado ?
Cara você deveria ter testado o script como eu...Ele funciona corretamente eu vou explicar por que:
Quando o primeiro if der verdadeiro e o sengundo...(Todos deu verdadeiro)
Bom dai todos vaum mudar o vtime...Mas o ultimo ke vai mudar é o de 250(Ou seja...no final vai dar ke é maior ke 250)...ou seja vtime vai ser 6, como deveria... e isso vai aconteçer em qualquer possibilidade
Eu já disse que testei???...E já disse que o script NÃO tem nada de errado?
luan esse script está funcionando... é outra coisa que está errado. Como eu disse no segundo post...
Quando o primeiro if der verdadeiro e o sengundo...(Todos deu verdadeiro)
Bom dai todos vaum mudar o vtime...Mas o ultimo ke vai mudar é o de 250(Ou seja...no final vai dar ke é maior ke 250)...ou seja vtime vai ser 6, como deveria... e isso vai aconteçer em qualquer possibilidade
Eu já disse que testei???...E já disse que o script NÃO tem nada de errado?
luan esse script está funcionando... é outra coisa que está errado. Como eu disse no segundo post...
Eu(Segundo post) escreveu:Bom eu dei uma analisada e percebi que não tem nada de errado nesse script. Creio que o problema seja no script de tiro. Caso não encontre o problema coloca o script aqui para eu ver se está tudo certo. Espero ter ajudado.
Superbomber_MuyMacho- Data de inscrição : 22/03/2014
Reputação : 9
Número de Mensagens : 103
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Código Bugado ?
Então pessoal, eu pensava como o @superbomber , de que mesmo a citação anterior fosse verdadeira a próxima citação seria a que iria prevalecer ..
Segui a dica do willy juntamente com o Gabreel o que resultou isto .
e mesmo assim apenas do 150 ele para de jogar bolas ..
No create tenho :
No step :
E o script é : (ps> Script provisório vou arrumar muito ainda)
Segui a dica do willy juntamente com o Gabreel o que resultou isto .
- Código:
if obj_general.pont > 250 {vtime=6 xangle=15}
else if obj_general.pont > 150{vtime=11 xangle=10}
else if obj_general.pont > 100{vtime=20 xangle=7}
else if obj_general.pont >80{vtime=25 xangle=6}
else if obj_general.pont >50{vtime=35 xangle=5}
else if obj_general.pont >25{vtime=50 xangle=3}
e mesmo assim apenas do 150 ele para de jogar bolas ..
No create tenho :
- Código:
time=0
vtime=60
xangle=2
No step :
- Código:
time+=1
image_angle -= xangle
///
if time = vtime{
time =0
scr_randomBall();
instance_create(x,y,final)
};
// JUNTAMENTE COM O CÓDIGO ACIMA
E o script é : (ps> Script provisório vou arrumar muito ainda)
- Código:
randomize()
final=obj_ball1
i=irandom(100);
if i = 0 {i=irandom(100);};
if i <=49 {final=obj_ball1}; // 0 - 49
if i >49 {final=obj_ball2}; // 50 - 70
if i >70 {final=obj_ball5}; // 71 - 79
if i >79 {final=obj_ball10}; // 80 - 86
if i >86 {final=obj_ballPlus}; //87 - 93
if i >93 {final=obj_ballX}
return final;
luan.alc- Games Ranking :
Notas recebidas : B
Data de inscrição : 13/03/2012
Reputação : 3
Número de Mensagens : 294
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 1
x 0 x 0 x 0
Re: [Resolvido]Código Bugado ?
Você não me explicou nada, apenas repetiu o que eu disse. E só pra ressaltar:
Não, eu não testei o código. Não vejo necessidade disso. Sem querer parecer arrogante ou exibido, tenho experiencia, portanto, reconheço problemas simplesmente lendo o código, a menos que seja um algorítimo mais complexo que consequentemente precisará de testes.
Edit - Autor respondeu:
O problema do código que você postou primeiramente se repete no script. Lembre-se, sempre que precisar ter apenas um único resultado, assegure-se disso usando if-else.
[Edit]
Outra coisa:
Willy escreveu: Pela lógica, a ultima condição atendida seria executada por ultimo, logo, o que for definido nela valerá justamente por ser alterado por ultimo (conforme você disse ou acho que disse), mas nada garante isso.
Não, eu não testei o código. Não vejo necessidade disso. Sem querer parecer arrogante ou exibido, tenho experiencia, portanto, reconheço problemas simplesmente lendo o código, a menos que seja um algorítimo mais complexo que consequentemente precisará de testes.
Eu não teria tanta certeza. Eu já apontei o erro, mas você se recusa a reconhecer que está errado.Superbomber escreveu:Eu já disse que testei???...E já disse que o script NÃO tem nada de errado?
Edit - Autor respondeu:
O problema do código que você postou primeiramente se repete no script. Lembre-se, sempre que precisar ter apenas um único resultado, assegure-se disso usando if-else.
[Edit]
Outra coisa:
- Código:
if time = vtime{
- Código:
if time >= vtime{
Re: [Resolvido]Código Bugado ?
Só para encerrar a discussão do SuperBomber com o Willy:
Por exemplo, quando x = 5 e você faça isso:
No final do step o y não vai ter adicionado apenas 3, mas sim 6 unidades!
TODOS os ifs serão verdade, assim como estava ocorrendo com o código inicial.
#Topic
Independente de ter mudado algo ou não, luan, deixe o código que eu e o Willy colocamos para fins de melhor processamento.
Mas vamos tentar resolver isso, mas antes, passe o código que seta a variável pont no obj_general!
Por exemplo, quando x = 5 e você faça isso:
- Código:
if(x>1){
y+=1
}
if(x>3){
y+=2
}
if(x>4){
y+=3
}
No final do step o y não vai ter adicionado apenas 3, mas sim 6 unidades!
TODOS os ifs serão verdade, assim como estava ocorrendo com o código inicial.
#Topic
Independente de ter mudado algo ou não, luan, deixe o código que eu e o Willy colocamos para fins de melhor processamento.
Mas vamos tentar resolver isso, mas antes, passe o código que seta a variável pont no obj_general!
Gabreel- Data de inscrição : 02/10/2009
Reputação : 52
Número de Mensagens : 2232
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Plataformas :- Game Maker 8.0 ou 8.1
- Game Maker Studio 1.4
- Game Maker Studio 2.0
- Javascript
- Outros
Re: [Resolvido]Código Bugado ?
luan.alc o script do step está funcionando...
E o script eu testei e está funcionando também...ele faz tudo como deveria
então certifique-se, se qualquer outro evento ou código está funcionando...
Willy, a menos que no script der 2 passos, no inicio e apenas 1 no meio por vez...É impossível acontecer o que você disse...mas se quiser tentar luan...
Eu não estou errado e o luan já confirmou...Lembra deu na mesma:
E antes de achar que é melhor que eu em scripts...Não esqueça que você está aqui para ajudar o luan não para se achar o máximo para cima de min(E por favor não responda a isso...Vai floodar atoa).
E outra coisa, eu aprendi GML sozinho, eu nem tinha internet para ver tutoriais...Os meu algoritmos eu sempre tive que criar do zero(Eu programo em GML a 6 anos...)
- Código:
time+=1
image_angle -= xangle
///
if time = vtime{
time =0
scr_randomBall();
instance_create(x,y,final)
};
// JUNTAMENTE COM O CÓDIGO ACIMA
E o script eu testei e está funcionando também...ele faz tudo como deveria
- Código:
randomize()
final=obj_ball1
i=irandom(100);
if i = 0 {i=irandom(100);};
if i <=49 {final=obj_ball1}; // 0 - 49
if i >49 {final=obj_ball2}; // 50 - 70
if i >70 {final=obj_ball5}; // 71 - 79
if i >79 {final=obj_ball10}; // 80 - 86
if i >86 {final=obj_ballPlus}; //87 - 93
if i >93 {final=obj_ballX}
então certifique-se, se qualquer outro evento ou código está funcionando...
Willy escreveu:As vezes o valor de vtime pode ser maior que time sem necessariamente em um momento ser igual ao time. Para se assegurar que o código seja executado, verifique se vtime é maior ou igual a time:
Willy, a menos que no script der 2 passos, no inicio e apenas 1 no meio por vez...É impossível acontecer o que você disse...mas se quiser tentar luan...
Wlly escreveu:Eu não teria tanta certeza. Eu já apontei o erro, mas você se recusa a reconhecer que está errado.
Eu não estou errado e o luan já confirmou...Lembra deu na mesma:
luan.alc escreveu:e mesmo assim apenas do 150 ele para de jogar bolas ..
E antes de achar que é melhor que eu em scripts...Não esqueça que você está aqui para ajudar o luan não para se achar o máximo para cima de min(E por favor não responda a isso...Vai floodar atoa).
E outra coisa, eu aprendi GML sozinho, eu nem tinha internet para ver tutoriais...Os meu algoritmos eu sempre tive que criar do zero(Eu programo em GML a 6 anos...)
Superbomber_MuyMacho- Data de inscrição : 22/03/2014
Reputação : 9
Número de Mensagens : 103
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Re: [Resolvido]Código Bugado ?
Willy, o problema foi resolvido apenas com a adição do " > "...
Obrigado !
- Edit -
Superbomb, não confirmei que estava certo, falei que pensava como você .
Obrigado !
- Edit -
Superbomb, não confirmei que estava certo, falei que pensava como você .
luan.alc- Games Ranking :
Notas recebidas : B
Data de inscrição : 13/03/2012
Reputação : 3
Número de Mensagens : 294
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 1
x 0 x 0 x 0
Re: [Resolvido]Código Bugado ?
Isso encerra nossa discussão Superbomber. Bons estudos.luan.alc escreveu:Willy, o problema foi resolvido apenas com a adição do " > "...
Obrigado !
- Edit -
Superbomb, não confirmei que estava certo, falei que pensava como você .
Re: [Resolvido]Código Bugado ?
Cara...luan eu não disse que, você disse que eu estava certo...Disse que, o que você disse confirmou que eu estava certo...
E antes de alguém achar que está escrito errado...da uma estudada em português.
__
Editado por Gabreel: +15% por flood. O assunto do tópico já acabou e você ainda está discutindo isso?
E antes de alguém achar que está escrito errado...da uma estudada em português.
__
Editado por Gabreel: +15% por flood. O assunto do tópico já acabou e você ainda está discutindo isso?
Superbomber_MuyMacho- Data de inscrição : 22/03/2014
Reputação : 9
Número de Mensagens : 103
Prêmios :
x 0 x 0 x 0
x 0 x 0 x 0
x 0 x 0 x 0
Tópicos semelhantes
» Código bugado
» código de animação bugado
» [Resolvido]Meu Gamemaker ta Bugado?
» [RESOLVIDO] [HTML5] Movimento de background bugado
» [Resolvido]Eziste Posibilidade de Um Game Maker Pro estar bugado?LIte não?
» código de animação bugado
» [Resolvido]Meu Gamemaker ta Bugado?
» [RESOLVIDO] [HTML5] Movimento de background bugado
» [Resolvido]Eziste Posibilidade de Um Game Maker Pro estar bugado?LIte não?
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|