Conectar-se

Esqueci minha senha

Últimos assuntos
» colisão de queda após outra colisão dando problema
Hoje à(s) 20:18 por Willy

» [Duvida] O que aprender
Ontem à(s) 15:32 por Markituh

» BUILD FAILED: Cannot find BUILD.xml
Ontem à(s) 14:50 por ReisBlender

» Nota de esclarecimento - GMBR voltou!
Sex 23 Jun 2017, 20:33 por Willy

» Regras do Fórum
Sex 23 Jun 2017, 19:02 por GMBR

» Retorno da GMBR!!!
Ter 24 Jan 2017, 15:43 por GMBR

» Jogo Dengue HTML
Seg 30 Nov 2015, 16:17 por guga

» Criando IA Simples para inimigos
Qua 25 Nov 2015, 19:22 por DJDAVYD

» Ordenar variavel em ordem decrescente
Sex 28 Ago 2015, 21:09 por Kodained

» Crio Trilha Sonora para Games!
Qui 27 Ago 2015, 13:50 por Isaias Malafaia

» Problema com Colisão
Qui 27 Ago 2015, 12:30 por The_Game

» Quem quer Uma Engine, e de Quê?
Qui 27 Ago 2015, 09:22 por theguitarmester

» [RESOLV]Como adicionar 2 objetos na mesma posição?
Qua 26 Ago 2015, 11:38 por Bhryenno Kelvyn Carlson

» Sistema de porta!!!
Ter 25 Ago 2015, 21:29 por theguitarmester

» Venda de objetos em Inventário - Multiplicado
Seg 24 Ago 2015, 18:33 por AG Hydra

» Atirar na direção certa
Seg 24 Ago 2015, 09:03 por theguitarmester

» Western Duels
Seg 24 Ago 2015, 07:47 por theguitarmester

» Problemas na compilação android
Dom 23 Ago 2015, 23:43 por Zero.

» Dúvida sobre strings, lendo txt
Sab 22 Ago 2015, 20:31 por Pai véi

» Como estabilizar um som
Sab 22 Ago 2015, 19:03 por Isquilo_Roedor

» Janela Modal
Sab 22 Ago 2015, 09:23 por Pai véi

» Sobre instance Creation Code
Sab 22 Ago 2015, 08:39 por Pai véi

» LudumDare #33
Sex 21 Ago 2015, 21:17 por WellingtonBecker

» Como fazer um temporizador
Sex 21 Ago 2015, 19:02 por Isquilo_Roedor

» GMS sempre salva projeto ao compilar?
Sex 21 Ago 2015, 12:32 por Pai véi

Quem está conectado
39 usuários online :: 2 usuários cadastrados, Nenhum Invisível e 37 Visitantes

Marsupilami, Willy

[ Ver toda a lista ]


O recorde de usuários online foi de 324 em Ter 05 Out 2010, 13:36

Qual é a causa do erro?

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

Qual é a causa do erro?

Mensagem por DUDU951 em Ter 01 Jul 2014, 03:37

Eu não estou conseguindo entender no que eu estou errando..

Objetivo:
Criar variável "variavel" com valor "false"
Em ambos objetos:
Caso o valor de variavel continue sendo false, image_index = 0
Caso o valor de variavel mude para true, image_index = 1
Info:
Códigos:
Create do obj_1
Código:
variavel = false
Step do obj_1
Código:
if variavel = false
{image_index = 0}
if variavel = true
{image_index = 1}
Create do obj_2
Código:
variavel = false
Código:
if variavel = false
{image_index = 0}
if variavel = true
{image_index = 1}

Adicional
Objetos no quarto: obj_1 / obj_2
spr_1 contém 2 imagens (0,1)
spr_2 contém 2 imagens (0,1)
Não há nenhum outro evento nos obj_1 e obj_2
Erro:
Em vez da sprite ficar ou só em image_index 0
ou então só em image_index 1,
ela fica "piscando" alternando entre a image_index 1/2
Causa do Erro:
falta de informação

DUDU951

Data de inscrição : 24/06/2014
Número de Mensagens : 90
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: Qual é a causa do erro?

Mensagem por 7hiagomp em Ter 01 Jul 2014, 06:12

Para a imagem não ficar piscando que nem louca, vc tem que por no create to objeto o codigo
image_speed = 0
Isso vai congelar sua imagem no primeiro frame.  Se não fizer isso ele vai entender que as imagens são uma animação e vai dar play
aí vc vai ter seu efeito "piscando loucamente"

no código falto o ELSE e você tá usando "=" que signfica "recebe"
o certo é usar "==" que é comparativo

variavel = false  < a variavel recebe false  (esse é uma afirmação)
if variavel == false < SE a variavel FOR IGUAL a false (esse é uma pergunta)

e na verdade você nem precisa declarar o segundo if, porque se no primeiro if ele já disse que ela não é "falsa" então só pode ser verdadeira, ja q ela so tem dois estados (no caso)

pode ser;

Código:
if variavel == false {image_index = 0}
else {image_index = 1}

Mas se quiser deixar como está o seu então pode ser

Código:
if variavel == false
{image_index = 0}
else if variavel == true
{image_index = 1}

ou melhor ainda, vc pode substituir TUDO isso por

Código:
image_index = variavel

se ela for true vai retonar 1, se for false vai retornar 0.
(é isso mesmo galera? sempre me enrolo no zero e um hehe)
avatar
7hiagomp

Data de inscrição : 21/04/2014
Número de Mensagens : 124
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: Qual é a causa do erro?

Mensagem por Rodrigo Santiago em Ter 01 Jul 2014, 07:42

Só querendo lembrar:

no código falto o ELSE e você tá usando "=" que signfica "recebe"
o certo é usar "==" que é comparativo
O gamemaker consegue entender mesmo sem o '=='.
Ou seja, mesmo que você use :
Código:

    if variavel == false
    {image_index = 0}
    else if variavel == true
    {image_index = 1}
ou
Código:

    if variavel = false
    {image_index = 0}
    else if variavel = true
    {image_index = 1}
No game maker isto não tem diferença, ou seja, pra que você não se engane use sempre apenas '=' .
avatar
Rodrigo Santiago

Ranking : Nota B
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Número de Mensagens : 1281
Insígnias de JAM :

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

Prêmios
   : 3
   : 1
   : 3

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Qual é a causa do erro?

Mensagem por DUDU951 em Ter 01 Jul 2014, 12:32

Obrigado 7hiagomp, Obrigado Rodrigo Santiago

Adicionei "speed = 0" e funcionou

Problema 1 resolvido

Problema 2:

Adicionados novos eventos:
Left Button do obj_1:

variavel = true

Left Button do obj_2:

variavel = false

Objetivo:
declarar a variavel com = true ou = false
e trocar de image_index

Resultado:
a image_index não está trocando, e provavelmente o valor da variavel também não






DUDU951

Data de inscrição : 24/06/2014
Número de Mensagens : 90
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: Qual é a causa do erro?

Mensagem por Rodrigo Santiago em Ter 01 Jul 2014, 12:59

Como esta o evento draw? Tem algum código diferente?

Obs quando vc falou speed vc quis dizer image_speed? Pq speed é outra coisa.
avatar
Rodrigo Santiago

Ranking : Nota B
Notas recebidas : C + C + B
Data de inscrição : 28/07/2012
Número de Mensagens : 1281
Insígnias de JAM :

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

Prêmios
   : 3
   : 1
   : 3

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Qual é a causa do erro?

Mensagem por DUDU951 em Ter 01 Jul 2014, 13:27

O evento Draw não tem nada

Os únicos Eventos/códigos que tem nos objetos são os que estão no 1 post, + os que eu falei agora no Problema 2.

Sim, é image_speed, eu errei aqui mais no GM tá certo


DUDU951

Data de inscrição : 24/06/2014
Número de Mensagens : 90
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: Qual é a causa do erro?

Mensagem por 7hiagomp em Ter 01 Jul 2014, 19:06

Cara, é o mesmo quesito do outro tópico, você não precisa de 2 objetos pra trocar o estado de uma váriável, vc só checa o estado a da variavel no mesmo objeto e a troca.  Como é mouse, usa 2 comados

mouse_check_button_pressed(mb_left)  <- checagem de click com botão esquerdo do mouse
distance_to_point(mouse_x, mouse_y)    <- checagem que diz se o mouse está sobre o objeto
&& <- significa "e", pra a ação a contecer, ambas as afirmações tem q ser verdadeiras.
(se não me andando pode escrever "and")

Isso fica no STEP;

Isso checa se o mouse foi clicado encima do objeto.
Código:
if mouse_check_button_pressed(mb_left) && distance_to_point(mouse_x, mouse_y) == 0
{
if variavel == true { variavel = false}
else variavel = true
}

na lógica seria:

o mouse foi clicado E está sobre o objeto?
SIM > ok, o estado da variavel é true?
|
|        SIM > "mude a variavel pra false"
|        NAO> "mude a variavel pra true"
|
NAO> não faça nada


Última edição por 7hiagomp em Qua 02 Jul 2014, 00:56, editado 1 vez(es)
avatar
7hiagomp

Data de inscrição : 21/04/2014
Número de Mensagens : 124
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: Qual é a causa do erro?

Mensagem por DUDU951 em Ter 01 Jul 2014, 22:56

Eu preciso alterar algo no lugar que está "mouse_x","mouse_y"?
Por que quando eu coloquei esse código no step dos objetos, (no obj_1 coloquei que a variável viraria true, e no obj_2 que viraria false)

a variavel ficou alternando entre true e false num loop infinito, mesmo sem eu ter dado nenhum clique com o mouse

DUDU951

Data de inscrição : 24/06/2014
Número de Mensagens : 90
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: Qual é a causa do erro?

Mensagem por 7hiagomp em Qua 02 Jul 2014, 00:55

A variavel ficou alterando ou a sprite ficou alterando infinitamente?
avatar
7hiagomp

Data de inscrição : 21/04/2014
Número de Mensagens : 124
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: Qual é a causa do erro?

Mensagem por DUDU951 em Qua 02 Jul 2014, 08:47

@7hiagomp escreveu:A variavel ficou alterando ou a sprite ficou alterando infinitamente?
a imagem da sprite, mas eu devia ter feito alguma coisa errada, porque eu re-coloquei os códigos e funcionou normalmente!

PROBLEMAS RESOLVIDOS!

DUDU951

Data de inscrição : 24/06/2014
Número de Mensagens : 90
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: Qual é a causa do erro?

Mensagem por Conteúdo patrocinado


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