![](templates/Jet/images/c_left_top.gif) |
![](templates/Jet/images/c_right_top.gif) |
![](templates/Jet/images/spacer.gif) |
Autor |
Mensagem |
yuri
Usuário
![Usuário Usuário](images/2.gif)
![](images/avatars/190051699253bc1cc3b3b3b.jpg)
Registrado: 07/07/14 Mensagens: 162 Localização: Santarem PA |
|
como fazer uma troca de scripts usando a mesma tecla ??? |
|
Tipo e assim o eu aperto backspace e o cara fica em crstand mais quando ele andar vai exibir a animacao crwalk
dai se aperta backspace de no ele volta a ficar em stand mais se quiser ele pode voltar para crstand...
_________________ Metallica
the unforgiven |
|
Ter Set 30, 2014 11:09 pm |
![Exibir perfil de usuários Exibir perfil de usuários](templates/Jet/images/lang_english/icon_profile.gif) |
![](templates/Jet/images/spacer.gif) |
welgomes
Usuário
![Usuário Usuário](images/3.gif)
![](images/avatars/95998694250d5d6cb51a5e.png)
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
|
No evento oncreate
![](templates/Jet/images/code_header.gif) | ![](templates/Jet/images/spacer.gif) | const BACKSPACE=8;
SetWaitKeyUp(BACKSPACE);
WriteGlobalVar('alternar', false);
|
No evento mainloop
![](templates/Jet/images/code_header.gif) | ![](templates/Jet/images/spacer.gif) | const BACKSPACE=8;
var alternar : boolean;
if IsKeyPress(BACKSPACE) and GetWaitKeyIsUp then
begin
alternar := ReadGlobalVar('alternar');
if(alternar) then
begin
SetLabelText('label0', 'Instruções do bloco A');
end
else
begin
SetLabelText('label0', 'Instruções do bloco B');
end;
WriteGlobalVar('alternar', not alternar);
SetWaitKeyUp(BACKSPACE);
end;
|
|
|
Qua Out 01, 2014 12:33 am |
![Exibir perfil de usuários Exibir perfil de usuários](templates/Jet/images/lang_english/icon_profile.gif) |
![](templates/Jet/images/spacer.gif) |
welgomes
Usuário
![Usuário Usuário](images/3.gif)
![](images/avatars/95998694250d5d6cb51a5e.png)
Registrado: 10/07/11 Mensagens: 827 Localização: São Paulo - Capital |
|
|
|
Segue o código do mainloop mais compacto:
![](templates/Jet/images/code_header.gif) | ![](templates/Jet/images/spacer.gif) |
const BACKSPACE=8;
if IsKeyPress(BACKSPACE) and GetWaitKeyIsUp then
begin
if ReadGlobalVar('alternar') then
begin
SetLabelText('label0', 'Instruções do bloco A');
end
else
begin
SetLabelText('label0', 'Instruções do bloco B');
end;
WriteGlobalVar('alternar', not alternar);
SetWaitKeyUp(BACKSPACE);
end;
|
Uma breve explicação sobre SetWaitKeyUp(CODIGO_DE_TECLA) e GetWaitKeyIsUp.
O evento MainLoop ocorre muito rápido.
No simples apertar de tecla o seu script pode rodar várias vezes.
Não é isso que queremos.
Queremos que quando se aperte uma tecla o script rode uma única vez.
Lembrando que uma instrução de controle de fluxo "if" somente executa o primeiro bloco, caso a expressão retorne true (verdadeiro/sim).
Primeiro damos a instrução SetWaitKeyUp( 8 ), algo como "Espere a tecla backspace ser solta", ou qualquer outro código de tecla.
Enquanto a tecla não for solta a instrução GetWaitKeyIsUp, algo como "A tecla que eu mandei esperar foi solta?" irá retorna false (falso/não).
Deste modo a expressão é processada da seguinte forma enquanto o usuário está segurando a tecla.
![](templates/Jet/images/code_header.gif) | ![](templates/Jet/images/spacer.gif) |
IsKeyPress(8) and GetWaitKeyIsUp
true and false
false
|
Como vemos enquanto o usuário segurar a tecla backspace o bloco "if" não será executado, ou seja, o MainLoop irá passar várias vezes pelo bloco sem executá-lo.
Agora vamos ver como a expressão é processada quando o usuário solta a tecla.
![](templates/Jet/images/code_header.gif) | ![](templates/Jet/images/spacer.gif) |
IsKeyPress(8) and GetWaitKeyIsUp
true and true
true
|
Como vemos quando o usuário solta a tecla backspace o bloco "if" será executado, pois temos um true.
|
|
Qua Out 01, 2014 11:27 am |
![Exibir perfil de usuários Exibir perfil de usuários](templates/Jet/images/lang_english/icon_profile.gif) |
![](templates/Jet/images/spacer.gif) |
yuri
Usuário
![Usuário Usuário](images/2.gif)
![](images/avatars/190051699253bc1cc3b3b3b.jpg)
Registrado: 07/07/14 Mensagens: 162 Localização: Santarem PA |
|
|
|
Valeu cara... ![Laughing](images/smiles/icon_lol.gif)
_________________ Metallica
the unforgiven |
|
Qua Out 01, 2014 11:27 pm |
![Exibir perfil de usuários Exibir perfil de usuários](templates/Jet/images/lang_english/icon_profile.gif) |
![](templates/Jet/images/spacer.gif) |
|
|
![](templates/Jet/images/spacer.gif) |
![](templates/Jet/images/c_left_bottom.gif) |
![](templates/Jet/images/c_right_bottom.gif) |
|