- Ranking :
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :x 0
x 0
x 0
Reputação : 35
Prêmios: 1
: 0
: 0
[Resolvido] codigo não funciona sem motivo aparente
em Dom 23 Nov 2014, 14:52
Olá galera é o seguinte:
CREATE:
STEP:
QUando aperto shift primeiramente funciona o state muda pra st_fly mas quando aperto de novo ele não volta pra st_normal, alguém pode me ajudar?
CREATE:
- Código:
st_normal = 0;
st_fly = 1;
state = st_normal;
STEP:
- Código:
if bt_shift_press && state = st_normal
{
state = st_fly
}
if bt_shift_press && state = st_fly
{
state = st_normal
}
QUando aperto shift primeiramente funciona o state muda pra st_fly mas quando aperto de novo ele não volta pra st_normal, alguém pode me ajudar?
- Data de inscrição : 15/08/2010
Número de Mensagens : 1599
Insígnias de JAM :x 0
x 0
x 0
Reputação : 147
Prêmios: 0
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Dom 23 Nov 2014, 16:52
STEP:
Acho que da certo...
- Código:
if(keyboard_check_released(vk_shift)){ if(state = st_fly){state = st_normal keyboard_clear(vk_shift)}else if(state = st_normal){state = st_fly keyboard_clear(vk_shift)}else {state = st_normal keyboard_clear(vk_shift)}
}
Acho que da certo...
Re: [Resolvido] codigo não funciona sem motivo aparente
em Dom 23 Nov 2014, 23:02
Eu faria assim:
e
- Código:
st_normal = 0;
st_fly = 1;
state = st_normal;
e
- Código:
if bt_shift_press and state = st_normal
{
state = st_fly
}
if bt_shift_press and state = st_fly
{
state = st_normal
}
- Data de inscrição : 08/10/2014
Número de Mensagens : 236
Insígnias de JAM :x 0
x 0
x 0
Reputação : 27
Prêmios: 0
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Seg 24 Nov 2014, 02:19
Tente assim:
- Código:
if bt_shift_press && state == st_normal
{
state = st_fly
}
if bt_shift_press && state == st_fly
{
state = st_normal
}
- Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :x 0
x 0
x 0
Reputação : 51
Prêmios: 1
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Seg 24 Nov 2014, 03:15
É só colocar um "exit" depois da troca de estado, pois quando acontece a troca de estado em cima a de baixo fica verdadeira e troca de novo.
- Data de inscrição : 15/08/2010
Número de Mensagens : 1599
Insígnias de JAM :x 0
x 0
x 0
Reputação : 147
Prêmios: 0
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Seg 24 Nov 2014, 11:11
@matheusco escreveu:É só colocar um "exit" depois da troca de estado, pois quando acontece a troca de estado em cima a de baixo fica verdadeira e troca de novo.
isso iria "parar" o step, qualquer codigo que tivesse depois destes não seriam executados...
- Ranking :
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :x 0
x 0
x 0
Reputação : 35
Prêmios: 1
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Seg 24 Nov 2014, 12:18
@icarodantas123 e @Sewer Crawler o codigo que vcs dois me passaram não vão mudar em nada pois o "&&" é a mesma coisa que "and" e colocar os operadores == e = no game maker é mesma coisa não muda nada, tanto faz ser == ou =. Mesmo assim vlw pela intenção de ajuda ;D
- Data de inscrição : 15/08/2010
Número de Mensagens : 1599
Insígnias de JAM :x 0
x 0
x 0
Reputação : 147
Prêmios: 0
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Seg 24 Nov 2014, 12:45
conseguiu arrumar seu código?
- Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :x 0
x 0
x 0
Reputação : 51
Prêmios: 1
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Seg 24 Nov 2014, 16:01
@Isaque Onix escreveu:@matheusco escreveu:É só colocar um "exit" depois da troca de estado, pois quando acontece a troca de estado em cima a de baixo fica verdadeira e troca de novo.
isso iria "parar" o step, qualquer codigo que tivesse depois destes não seriam executados...
É a intenção. A menos que esse step vá atrapalhar o jogo dele de alguma forma, no próximo ele já vai ser executado normalmente.
Se não quiser dessa maneira, é só usar if e else ao invés de dois if diferentes. Dessa maneira só um deles vai ser executado por vez.
- Data de inscrição : 08/10/2014
Número de Mensagens : 236
Insígnias de JAM :x 0
x 0
x 0
Reputação : 27
Prêmios: 0
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Seg 24 Nov 2014, 16:38
Já me aconteceu de um código não funcionar simplesmente por usar = em vez de == . Foi mal.
(Mas o icarodantas123 apenas usar 'and' no lugar de '&&' foi fod@)
(Mas o icarodantas123 apenas usar 'and' no lugar de '&&' foi fod@)
- Ranking :
Notas recebidas : B+B
Data de inscrição : 04/03/2012
Número de Mensagens : 1925
Insígnias de JAM :x 0
x 0
x 0
Reputação : 144
Prêmios: 1
: 2
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Seg 24 Nov 2014, 18:43
isso acontece por que você fez uma coisa errada você deixou st_fly e o st_normal como se fosse uma variavel booleana, o correto era chama-la como strings, dessa maneira:
Create:
- Código:
state = "st_normal";
Step
- Código:
if bt_shift_press && state = "st_normal"
{
state = "st_fly"
}
else
if bt_shift_press && state =" st_fly"
{
state = "st_normal";
}
- Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :x 0
x 0
x 0
Reputação : 51
Prêmios: 1
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Seg 24 Nov 2014, 19:02
@JoaoVanBlizzard escreveu:
isso acontece por que você fez uma coisa errada você deixou st_fly e o st_normal como se fosse uma variavel booleana, o correto era chama-la como strings, dessa maneira:
Create:
- Código:
state = "st_normal";
StepAssim certamente irá funcionar, ok
- Código:
if bt_shift_press && state = "st_normal"
{
state = "st_fly"
}
else
if bt_shift_press && state =" st_fly"
{
state = "st_normal";
}
Vai dar errado também porquê assim que o de cima for executado, o de baixo se torna verdadeiro e é executado também. Enfim, use "exit", mas se isso prejudicar seu código use "if - else".
"case" também não vai dar certo nessa situação.
EDIT: Tem uma solução melhor, agora que vi que você não usa keyboard_check, mas uma variável. É só fazer:
if bt_shift_press && state = st_normal
{
state = st_fly
bt_shift_press = false
}
if bt_shift_press && state = st_fly
{
state = st_normal
bt_shift_press = false
}
- Ranking :
Notas recebidas : C + B + A + A
Data de inscrição : 08/06/2009
Número de Mensagens : 1846
Insígnias de JAM :x 0
x 0
x 0
Reputação : 254
Prêmios: 2
: 1
: 1
Re: [Resolvido] codigo não funciona sem motivo aparente
em Seg 24 Nov 2014, 20:11
As duas condições são executadas! SEMPRE que quiser que seja obrigatoriamente "um ou outro" código, utilize o else. Faça disso um hábito!
Seu código step deve ficar assim:
) e mais fácil de fazer manutenção.
Ou ainda, pode simplificar a isso:
Flws...
Seu código step deve ficar assim:
- Código:
if (bt_shift_press){
if (state == st_normal){
state = st_fly
}else{
state = st_normal
}
}

Ou ainda, pode simplificar a isso:
- Código:
if (bt_shift_press){
state *=-1;
}
Flws...

- Ranking :
Notas recebidas : B+B
Data de inscrição : 04/03/2012
Número de Mensagens : 1925
Insígnias de JAM :x 0
x 0
x 0
Reputação : 144
Prêmios: 1
: 2
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Seg 24 Nov 2014, 20:53
Vai dar errado também porquê assim que o de cima for executado, o de baixo se torna verdadeiro e é executado também. Enfim, use "exit", mas se isso prejudicar seu código use "if - else".
Não vai não, eu uso codigos assim, o else é justamente para evitar que o de baixo se torne verdadeiro, agora , se o else for tirado, ai sim esse problema iria surgir.
todavia a sugestão do willy é a mais em conta para esse caso , o unico porém é que ela só vai funcionar se você precisar apenas dessas duas funções, se precisar adicionar novos comandos, ai vai precisar redefinir o código, mas se for só para esses dois, o jeito que ele ensinou já da e sobra para isso.

- Data de inscrição : 10/08/2014
Número de Mensagens : 395
Insígnias de JAM :x 0
x 0
x 0
Reputação : 51
Prêmios: 1
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Seg 24 Nov 2014, 21:45
@JoaoVanBlizzard escreveu:Vai dar errado também porquê assim que o de cima for executado, o de baixo se torna verdadeiro e é executado também. Enfim, use "exit", mas se isso prejudicar seu código use "if - else".
Não vai não, eu uso codigos assim, o else é justamente para evitar que o de baixo se torne verdadeiro, agora , se o else for tirado, ai sim esse problema iria surgir.
todavia a sugestão do willy é a mais em conta para esse caso , o unico porém é que ela só vai funcionar se você precisar apenas dessas duas funções, se precisar adicionar novos comandos, ai vai precisar redefinir o código, mas se for só para esses dois, o jeito que ele ensinou já da e sobra para isso.
Ah, não tinha visto o "else" ali. Perdão pelo erro.
- Data de inscrição : 15/08/2010
Número de Mensagens : 1599
Insígnias de JAM :x 0
x 0
x 0
Reputação : 147
Prêmios: 0
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Seg 24 Nov 2014, 23:44
@matheusco escreveu:@Isaque Onix escreveu:@matheusco escreveu:É só colocar um "exit" depois da troca de estado, pois quando acontece a troca de estado em cima a de baixo fica verdadeira e troca de novo.
isso iria "parar" o step, qualquer codigo que tivesse depois destes não seriam executados...
É a intenção. A menos que esse step vá atrapalhar o jogo dele de alguma forma, no próximo ele já vai ser executado normalmente.
Se não quiser dessa maneira, é só usar if e else ao invés de dois if diferentes. Dessa maneira só um deles vai ser executado por vez.
pois é, mais o problema dele é que quando ele pressiona a tecla "shift" no caso, a ação é repetida até a tecla ser solta, ou seja normal>fly>normal>fly... ele poderia apenas adicionar o keyboard_clear(vk_shift) que daria certo, mais fiz um codigo de maneira mais manipulável para ele trabalhar com isso, mas, o exit quase que a pior forma de fazer isso.
- Data de inscrição : 25/10/2013
Número de Mensagens : 8
Insígnias de JAM :x 0
x 0
x 0
Reputação : 0
Prêmios: 0
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Qua 26 Nov 2014, 17:56
Meu modo de troca é diferente...
Eu faria assim:
Tente esse

Eu faria assim:
- Create:
st_normal = 0;
st_fly = 1;
trocar=0
state = 0;
- Step:
if keyboard_check_pressed (vk_shift ) { trocar +=1}
if trocar>1{ trocar=0}
if trocar=0{ state=st_normal}
if trocar=1{ state=st_fly}
Tente esse


- Ranking :
Notas recebidas : C
Data de inscrição : 10/07/2012
Número de Mensagens : 621
Insígnias de JAM :x 0
x 0
x 0
Reputação : 35
Prêmios: 1
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Qua 26 Nov 2014, 23:08
Caraca nunca tive um topico que gerasse tanto discução (ufa ainda bem que foi saudável kkk).
Então galera olhando o codigo que todo mundo passou o que serviu aqui foi o do manolo @willy acho que o do @Isaque Onix e @JoaoVanBlizzard vão funcionar tbm, mas futricando aqui eu achei um problema muito bobo que era esse:
bt_shift_press , por algum motivo funciona mas não retorna a mesma coisa que keyboard_check_pressed(vk_shift) então testei com esse codigo mais longo e pronto, funcionou kkkk acredtiam, dai o que eu fiz pra poder continuar usando o meu bt_shift_press, eu simplismente iniciei o script que trabalha com ele que no caso é assim:
init_controls();
Então é isso ai vlw todo mundo, e digo que estou impressionado que mesmo com todo esse tempo o forum ainda ser bem ativo e estar bem saudável ainda ;D s2
Então galera olhando o codigo que todo mundo passou o que serviu aqui foi o do manolo @willy acho que o do @Isaque Onix e @JoaoVanBlizzard vão funcionar tbm, mas futricando aqui eu achei um problema muito bobo que era esse:
bt_shift_press , por algum motivo funciona mas não retorna a mesma coisa que keyboard_check_pressed(vk_shift) então testei com esse codigo mais longo e pronto, funcionou kkkk acredtiam, dai o que eu fiz pra poder continuar usando o meu bt_shift_press, eu simplismente iniciei o script que trabalha com ele que no caso é assim:
init_controls();
Então é isso ai vlw todo mundo, e digo que estou impressionado que mesmo com todo esse tempo o forum ainda ser bem ativo e estar bem saudável ainda ;D s2
RESOLVIDO
- Data de inscrição : 15/08/2010
Número de Mensagens : 1599
Insígnias de JAM :x 0
x 0
x 0
Reputação : 147
Prêmios: 0
: 0
: 0
Re: [Resolvido] codigo não funciona sem motivo aparente
em Qui 27 Nov 2014, 02:50
cara, não sei exatamente quem te ajudou, mais, se não for pedir de mais, dê um JOINHA pra este que te ajudou. (seja quem for)
acho que este negocio de joinha num ta dando muito certo não... quase ninguem tem o costume de clicar neles ao ser ajudado ou ver algo interessante...
@Offtopic
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum