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 Ralphed Ontem à(s) 18:28

» 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

» Versionamento de código com GitHub
por GabrielXavier Seg 08 Jan 2024, 07:32

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por kolesovsup Sex 29 Dez 2023, 07:16


Destruir variável

+2
LCS
Math Maker
6 participantes

Ir para baixo

Destruir variável Empty Destruir variável

Mensagem por Math Maker Sáb 19 Mar 2011, 19:37

Aproveitando o fim de semana, estou idealizando um projeto no GM. Mas surgiu a necessidade de destruir uma variável local. Minha necessidade seria algo como:

Código:
a = 10;
draw_rectangle(a,a,2*a,2*a,0);

// destruir variável a

Eu sei como contornar o problema, mas quero saber se vocês conhecem uma função ou algo semelhante que possa destruir uma variável, isso facilitaria muito meu projeto.

Obrigado.
Math Maker
Math Maker

Data de inscrição : 26/02/2011
Reputação : 6
Número de Mensagens : 107
Prêmios : Destruir variável 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

Destruir variável Empty Re: Destruir variável

Mensagem por LCS Sáb 19 Mar 2011, 21:01

olha cara se existe função e tal eu não sei mas pode ser que de para tu fazer uma var global e coloca-la em outro obj para que quando ocorra a ação nesse objeto destrua o outro mas nao sei se funcionaria mas pode tentar mas ai o problema seria que o gm ia acusar que a variavel nao existe e dai é certo que vai dar bug pois como tu ta usando ele apara desenhar esse retangulo
mas tenta ai vai que da sei la
obs: porque tu quer destruir tal variavel?
vou dar uma procurada pra ti cara se achar te aviso com um edit aqui

flws
LCS
LCS

Games Ranking : Nota A

Notas recebidas : A
Data de inscrição : 09/03/2010
Reputação : 43
Número de Mensagens : 1035
Prêmios : Destruir variável Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 2 Prata x 1 Bronze x 1

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

http://www.www.ww.www

Ir para o topo Ir para baixo

Destruir variável Empty Re: Destruir variável

Mensagem por Markituh Sáb 19 Mar 2011, 23:05

Cara, você está usando essa var no draw. Se você excluir ela no draw, como vai se desenhar o retângulo? Até porque, nem adianta, já que a é igual a 10 no começo do código. O Draw NUNCA para de ser executado, é digamos, "infinito".
Código:
a = 10 // Executou aqui, definiu a var 10
draw_rectangle(a,a,a,a) // E depois aqui, desenho o retangulo
a = 0 // Então chega aqui, e já parte lá pra cima e começa tudo denovo.
NÃO EXISTE e NÃO HÁ uma função que delete uma variável. Tudo o que você pode fazer é definir a variável como zero, ou como um string vazia(""). No C++ você pode definir como NULL, mas o Game Maker não é C++... O Game Maker executa cada linha de código a 0,4 segundos, realmente muito rápido, por isso dá tempo de fazer mais algo depois que se deleta uma instância.
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : Destruir variável Empty

Medalhas x 0 Tutoriais x 1 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

Destruir variável Empty Re: Destruir variável

Mensagem por .:Allison:. Sáb 19 Mar 2011, 23:08

se você usar o evento exit não funciona não ?
.:Allison:.
.:Allison:.

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 25/07/2010
Reputação : 4
Número de Mensagens : 630
Prêmios : Destruir variável Empty

Medalhas x 0 Tutoriais x 14 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://clubmaker.forumeiros.com

Ir para o topo Ir para baixo

Destruir variável Empty Re: Destruir variável

Mensagem por Markituh Sáb 19 Mar 2011, 23:11

X-Games escreveu:se você usar o evento exit não funciona não ?
Rapaz, acho que não. Pois se você "exitasse" do Draw, certamente seria pampz voltar a ele. O exit só é permitido a códigos executados cada um por sua vez, mas o Draw é diferente. Você pode dar exit, mas ele vai voltar a ser executado de qualquer maneira.
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : Destruir variável Empty

Medalhas x 0 Tutoriais x 1 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

Destruir variável Empty Re: Destruir variável

Mensagem por ricaun Dom 20 Mar 2011, 00:06

Markituh escreveu:NÃO EXISTE e NÃO HÁ uma função que delete uma variável. Tudo o que você pode fazer é definir a variável como zero, ou como um string vazia(""). No C++ você pode definir como NULL, mas o Game Maker não é C++... O Game Maker executa cada linha de código a 0,4 segundos, realmente muito rápido, por isso dá tempo de fazer mais algo depois que se deleta uma instância.

Acho que vc esta enganado, pelo que sei se vc utilizar o comando de declarar a variável ela no final do código é eliminada!

Não acredita? Tente isso!

Create:
Código:
var test;

test = 200;
test2 = 100;
score = test*test2;
Draw:
Código:
room_caption = "Test = "+string(variable_local_exists("test"))+" | Test2 = "+string(variable_local_exists("test2"));

Bem se vc notar a variável test não vai existir, entretanto a variável test2 existe. É isso...

Té.
ricaun
ricaun

Data de inscrição : 23/09/2008
Reputação : 9
Número de Mensagens : 169
Prêmios : Destruir variável 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

Destruir variável Empty Re: Destruir variável

Mensagem por .:Allison:. Dom 20 Mar 2011, 00:14

você poderia usar tambem uma variável temporária, vê nas aulas do Dharrison mais pelo oque eu entendi, essa variável fica até a função que ela está presente acabar, se coloca assim:
var nome_da_variável=20
é mto usada em scripts, ela só funciona quando o script é execultado, quando ele acaba, ela acaba tbm!
.:Allison:.
.:Allison:.

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 25/07/2010
Reputação : 4
Número de Mensagens : 630
Prêmios : Destruir variável Empty

Medalhas x 0 Tutoriais x 14 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

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

http://clubmaker.forumeiros.com

Ir para o topo Ir para baixo

Destruir variável Empty Re: Destruir variável

Mensagem por Markituh Dom 20 Mar 2011, 00:26

Acho que vc esta enganado, pelo que sei se vc utilizar o comando de declarar a variável ela no final do código é eliminada!

Não acredita? Tente isso!

[...].
Cara, isso aí é uma variável temporária, o comando var é isto. É diferente de declarar uma variável local, sem o var. E X-Games, se você fizer isso vai dar um erraço, o var só declara as variáveis, você define o valor depois:
Código:
var variavel;
variavel = 10
Até onde sei, você pode declarar uma variável em que evento quiser, desde que esse não se repita, como o Step ou o Draw. Mas usando o esquema certo é possível driblar isso, só é saber ;) Um exemplo:
Código:
tempo = 0
if keyboard_check(vk_space){
tempo+=1
}
if tempo=100
{
game_end()
}
Um esquema de executar ação depois de x segundos pressionando uma tecla, é basicamente este.
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : Destruir variável Empty

Medalhas x 0 Tutoriais x 1 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

Destruir variável Empty Re: Destruir variável

Mensagem por GameMakerTutoriais Dom 20 Mar 2011, 11:42

Existe sim uma maneira de realmente apagar uma variável da memória... mas isso não é uma função e sim um método que realmente funciona. Pra isso você deve criar um objeto e usá-lo como ponte para variáveis.

Por exemplo, você poderia criar um objeto "temp" e declarar todas as variáveis da seguinte forma:

Código:
temp.nome = 'Ninja8086';
temp.dado = $FF;
temp.valor = 20 * pi;

Para limpar essas variáveis, bastaria destruir o objeto na room da seguinte forma:

Código:
instance_destroy(temp);

Toda instância possui eventos e variáveis próprias que são executados e lidas enquanto o objeto estiver activo. Há como desactivar o objeto, mas destruí-lo é a melhor maneira. Quando a instância é destruída, todo evento e variáveis são descartados.


Última edição por Ninja8086 em Sáb 31 Mar 2012, 20:39, editado 1 vez(es)
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Destruir variável Empty

Medalhas x 0 Tutoriais x 4 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

Destruir variável Empty Re: Destruir variável

Mensagem por Math Maker Dom 20 Mar 2011, 12:27

Muito obrigado a todos pela atenção.

Sobre destruir a variável no draw, ele é declarada novamente no começo, ou seja, meu esquema seria: criar variável > usar variável > destruir variável > criar variável > usar variável > destruir variável > [...].

Este processo se repetiria até que o evento não existisse mais (destruindo o objeto como disse o Ninja8086, assim a variável não existe mais mesmo) ou o evento parar de ser executado (parte dele sendo mais exato, com o uso de uma condicional "if'). Destruir a variável me ajudaria e muito (estou criando minha próprias funções que possuem ID dentro de uma variável, com return e tal), irei tentando algumas coisas daqui.

Se alguém tiver uma ideia, favor me informar. Obrigado.
Math Maker
Math Maker

Data de inscrição : 26/02/2011
Reputação : 6
Número de Mensagens : 107
Prêmios : Destruir variável 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

Destruir variável Empty Re: Destruir variável

Mensagem por GameMakerTutoriais Dom 20 Mar 2011, 12:44

(parte dele sendo mais exato, com o uso de uma condicional "if'). Destruir a variável me ajudaria e muito (estou criando minha próprias funções que possuem ID dentro de uma variável, com return e tal), irei tentando algumas coisas daqui.

Neste caso, bastaria checar se o objeto temp existe com instance_exists() e caso exista, a variável também existe. Também pode usar a função variable_local_exists() que confere a existência ou não da variável. Enfim, boa sorte!
avatar
GameMakerTutoriais

Data de inscrição : 29/01/2011
Reputação : 26
Número de Mensagens : 800
Prêmios : Destruir variável Empty

Medalhas x 0 Tutoriais x 4 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

Destruir variável Empty Re: Destruir variável

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

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