Teclado numérico digital
 

Imagine que na sua aventura exista a necessidade do jogador/leitor informar um determinado número. Há pelo menos umas 2 formas de resolver isso, mas vamos propor aqui um modelo elegante para essa questão: um teclado numérico usando apenas uma imagem. Clique na imagem ao lado com o botão direito do mouse para baixá-la para o seu computador.

Normalmente usariamos uma instrução do tipo link: fig,x,y,w,h,figura,script onde ao ser clicada, ocorrerá o devio para o script informado. No caso faremos a instrução, ao ter a imagem clicada, retornar ao mesmo script e em seguida capturamos onde ocorreu o clique na figura. Para que isso ocorra basta trocar o "fig" na instrução link: para "crd". Assim:

link: crd,50,50,200,250,teclado.gif,$entrada&Ptx=5&Pty=6

O nome do script que estamos criando é "entrada" e acrescentamos a ele a indicação dos registradores que receberão as coordenadas x,y do local exato do clique, dentro da imagem. Portanto, não importa em que posição a imagem é colocada pois as coordenadas x,y são referentes a ela e não ao contexto da página/tela.

Se prestar atenção verá que a imagem foi criada de tal forma que cada tecla possui a resolução 50x50 pixels e portanto podemos arredondar as coordenadas para identificar qual célula 50x50 recebeu o clique. Primeiro dividimos os valores por 50 e depois multiplicamos o y por 4, somando x e subtraindo a fileira do visor. A tecla "7" será o número 0, a "8" o número 1, "9" será 2 e a primeira metade do "CLS" será 4. A tecla "4" será 5 e assim por diante.

O destaque deste script fica por conta também de uma instrução especial: reg@ 7,1 .Ela diz para o sistema obter o conteúdo do registrador 7 (que é onde estamos colocando as teclas digitadas) e desconsiderar (1) caracteres do final da string. É o nosso backspace.

Ao ser pressionada a tecla ENTER, o processamento do script segue para o label Lp1.

 


 
//=== nome do script: entrada =================================
// controle um teclado numérico, com apenas uma imagem
//-------------------------------------------------------------

//- coloca a imagem na tela (as coordenadas x,y não importam)
  link: crd,50,50,200,250,teclado.gif,$entrada&Ptx=5&Pty=6

  //- calcula a posição relativa da clicada
  reg: 5,50
  reg: 6,50
  reg* 6,4
  reg+ 5,#6
  reg- 5,4

  //- verifica qual "tecla" foi pressionada
  if= 5,0,reg$,7,7
  if= 5,1,reg$,7,8
  if= 5,2,reg$,7,9
  if= 5,3,reg=,7,

  if= 5,4,reg$,7,4
  if= 5,5,reg$,7,5
  if= 5,6,reg$,7,6
  if= 5,7,reg=,7,~

  if= 5,8,reg$,7,1
  if= 5,9,reg$,7,2
  if= 5,10,reg$,7,3
  if= 5,11,goto,Lp1

  if= 5,12,reg$,7,0
  if= 5,13,reg$,7,0
  if= 5,14,reg@,7,1
  if= 5,15,goto,Lp1

  //- mostra o resultado no visor
  link: reg,60,61,178,28,5,7,Biu000000
  fim

  :Lp1
  link: txt,60,61,178,28,5,PROCESSANDO,Biu000000
  fim