Ativar um comando através de variavel
Ir à página 1, 2, 3, 4  Próximo
 
   3D Game Builder - Índice » Programação
Ativar um comando através de variavel
Autor Mensagem
BielziimSM
Usuário
Usuário


Registrado: 15/12/13
Mensagens: 190

Ativar um comando através de variavel
Eu queria fazer o seguinte no 3dgb , Tenho uma variável que indica madeira que inicialmente é 0, ao coletar 1 madeira adicionar esse valor na variável , uma cabana custa 4 madeiras , como faço para só funcionar se a quantidade de madeira existente "valor da variável" for 4 ou acima disso para ativar um comando?

exemplo, vou usar um comando para criar um objeto em tal posição, quando obter as 4 madeiras ou mais, liberar a ação de um código ativado por uma tecla
ai essas 4 madeiras são deletadas apos o uso do código "-4 madeiras" alterando o valor da variável

Alguém poderia ajudar se souber? =D


Qui Jan 29, 2015 1:14 pm Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

Amanhã eu posto, estou fazendo um exemplo.
Qui Jan 29, 2015 7:51 pm Exibir perfil de usuários
BielziimSM
Usuário
Usuário


Registrado: 15/12/13
Mensagens: 190

Tudo bem, Obrigado =D
Qui Jan 29, 2015 8:08 pm Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

No evento OnCreate do mapa
Código:

//INICIALIZA A VARIÁVEL COM 0 (ZERO)
WriteGlobalVar('acumulador', 0);

//CONSTANTE PARA A TECLA 'G'
Const G = 71;

//QUANDO SOLTAR A TECLA 'G' GetWaitKeyIsUp RETORNARÁ True
//Precisa desta linha senão nunca entra no if, pois GetWaitKeyIsUp sempre retornará false.
SetWaitKeyUp(G);

//Precisa desta linha senão a primeira vez que apertar G nada acontecerá
SendKeys('G');


No evento MainLoop do mapa
Código:

//CONSTANTE PARA A TECLA 'G'
const G = 71;

//SE APERTOU A TECLA 'G'
if IsKeyPress(G) and GetWaitKeyIsUp then
begin     
    //SE POSSUI UM VALOR IGUAL OU MAIOR QUE 4
    if ReadGlobalVar('acumulador') >= 4 then
    begin
        //DESCONTA 4 DO ACUMULADOR
        WriteGlobalVar('acumulador', ReadGlobalVar('acumulador') - 4);
       
        //MOSTRA NA TELA
        SetLabelText('Label1', ReadGlobalVar('acumulador'));
       
        //MENSAGEM       
        SetLabelText('Label3', '');                       
    end
    else
    begin
        //MENSAGEM
        SetLabelText('Label3', 'Você não possui um valor suficiente para gastar!');           
    end;   
    SetWaitKeyUp(G);
end;


No evento OnInteract do botão
Código:

//ACUMULA MAIS 1
WriteGlobalVar('acumulador', ReadGlobalVar('acumulador') + 1);

//MOSTRA NA TELA
SetLabelText('Label1', ReadGlobalVar('acumulador'));


Só baixar
http://wsantos.eti.br/3d_game_builder/

O nome do arquivo é VariavelAcumuladora.rar
Sex Jan 30, 2015 12:05 pm Exibir perfil de usuários
BielziimSM
Usuário
Usuário


Registrado: 15/12/13
Mensagens: 190

Opa valeu mesmo =D muito obrigado
Sex Jan 30, 2015 4:30 pm Exibir perfil de usuários
BielziimSM
Usuário
Usuário


Registrado: 15/12/13
Mensagens: 190

Quando utilizo o código em um botão ele adiciona +1 a variável, quando utilizo no cubo área o valor não fica 1 , ao invés de adicionar só 1 na variável ele adiciona "32" "59"
muitos valores.
Tenho esse mesmo problema com inimigos , quando o inimigo colide o valor abaixa muito rápido ao invés de ir aos poucos .

Citação:
//ACUMULA MAIS 1
WriteGlobalVar('acumulador', ReadGlobalVar('acumulador') + 1);

//MOSTRA NA TELA
SetLabelText('Label1', ReadGlobalVar('acumulador'));

Sáb Jan 31, 2015 1:07 am Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

O jogo roda no MainLoop ou seja loop principal.
O número aumenta e diminui muito rápido porque no pequeno tempo de colisão o MainLoop executa várias vezes.
Pesquisa colisão no fórum acredito que alguém já deve ter dito este problema e solucionado.


Sáb Jan 31, 2015 9:14 pm Exibir perfil de usuários
BielziimSM
Usuário
Usuário


Registrado: 15/12/13
Mensagens: 190

No caso eu usei o on interact do cubo area!


Dom Fev 01, 2015 12:37 am Exibir perfil de usuários
   3D Game Builder - Índice » Programação Ir à página 1, 2, 3, 4  Próximo
Página 1 de 4