Author Topic: Keyboard Input in Tinyptc?  (Read 2375 times)

0 Members and 1 Guest are viewing this topic.

Offline Hotshot

  • DBF Aficionado
  • ******
  • Posts: 2114
  • Karma: 91
    • View Profile
Keyboard Input in Tinyptc?
« on: January 22, 2009 »
Hiya all,

I would like have Keyboard input such as when user press down,up,left and right. Does anyone know Keyboard input look like?

It is keyhit?  as I am not sure which why I ask.



p.s. I do know that there is scan code lists in help files  ;)

Offline Shockwave

  • good/evil
  • Founder Member
  • DBF Aficionado
  • ********
  • Posts: 17414
  • Karma: 498
  • evil/good
    • View Profile
    • My Homepage
Re: Keyboard Input in Tinyptc?
« Reply #1 on: January 22, 2009 »
There is a multikey command but I am not sure if that would work with tinyptc which you are using, there are otehr ways of detecting key presses though.

Here's one way;

Code: [Select]
'KEYBOARD INPUT
'
'WRITTEN FOR HOTSHOT BY SHOCKWAVE
'
'DETECT THE ARROWS AND SPACE.
'
'-------------------------------------------------------------------------------

'   LIBS:

    #INCLUDE "TINYPTC_EXT.BI"
    #INCLUDE "WINDOWS.BI"

'-------------------------------------------------------------------------------   
'   KEYBOARD SUBS+ VARS;
'-------------------------------------------------------------------------------

    DIM SHARED AS STRING LEFT_KEY
    DIM SHARED AS STRING RIGHT_KEY
    DIM SHARED AS STRING UP_KEY   
    DIM SHARED AS STRING DOWN_KEY
    DIM SHARED AS STRING SPACE_KEY
   
    DECLARE SUB READ_KEYS()
    DECLARE SUB SHOW_INPUT()

'-------------------------------------------------------------------------------   
'   SCREEN SETUP;   
'-------------------------------------------------------------------------------

    CONST   XRES    =    640
    CONST   YRES    =    480


    DIM SHARED AS UINTEGER BUFFER ( XRES * YRES )
    PTC_ALLOWCLOSE(0)
    PTC_SETDIALOG(1,"WWW.RETRO-REMAKES.NET"+CHR$(13)+"FULL SCREEN?",0,1)               
    IF (PTC_OPEN("Remake code by Shockwave",XRES,YRES)=0) THEN
    END-1
    END IF     


WHILE(GETASYNCKEYSTATE(VK_ESCAPE)<> -32767)   

    READ_KEYS()
    SHOW_INPUT()
    PTC_UPDATE@BUFFER(0)   
    SLEEP 5
    ERASE BUFFER
WEND

EXITPROCESS(0)
END



SUB READ_KEYS()

    '---------------------------------------------------------------------------
    'CHECK LEFT
    '---------------------------------------------------------------------------
   
    IF GETASYNCKEYSTATE(VK_LEFT)= -32767 THEN
        LEFT_KEY="TRUE"
    ELSE
        LEFT_KEY="FALSE"
    END IF

    '---------------------------------------------------------------------------
    'CHECK RIGHT
    '---------------------------------------------------------------------------

    IF GETASYNCKEYSTATE(VK_RIGHT)= -32767 THEN
        RIGHT_KEY="TRUE"
    ELSE
        RIGHT_KEY="FALSE"
    END IF

    '---------------------------------------------------------------------------
    'CHECK UP
    '---------------------------------------------------------------------------

    IF GETASYNCKEYSTATE(VK_UP)= -32767 THEN
        UP_KEY="TRUE"
    ELSE
        UP_KEY="FALSE"
    END IF

    '---------------------------------------------------------------------------
    'CHECK DOWN
    '---------------------------------------------------------------------------

    IF GETASYNCKEYSTATE(VK_DOWN)= -32767 THEN
        DOWN_KEY="TRUE"
    ELSE
        DOWN_KEY="FALSE"
    END IF

    '---------------------------------------------------------------------------
    'CHECK SPACE
    '---------------------------------------------------------------------------

    IF GETASYNCKEYSTATE(VK_SPACE)= -32767 THEN
        SPACE_KEY="TRUE"
    ELSE
        SPACE_KEY="FALSE"
    END IF

END SUB



SUB SHOW_INPUT()
   
    IF SPACE_KEY="TRUE" THEN
        BUFFER(XRES SHR 1 +((YRES SHR 1 ) * XRES )) = &HFFFFFF
    END IF
   
    IF LEFT_KEY="TRUE" THEN
        BUFFER((XRES SHR 1) +((YRES SHR 1 ) * XRES )-10) = &HFFFFFF
    END IF
   
    IF RIGHT_KEY="TRUE" THEN
        BUFFER((XRES SHR 1) +((YRES SHR 1 ) * XRES )+10) = &HFFFFFF
    END IF
   
    IF UP_KEY="TRUE" THEN
        BUFFER((XRES SHR 1) +(((YRES SHR 1 )-10) * XRES )) = &HFFFFFF
    END IF
   
    IF DOWN_KEY="TRUE" THEN
        BUFFER((XRES SHR 1) +(((YRES SHR 1 )+10) * XRES )) = &HFFFFFF
    END IF


END SUB
Shockwave ^ Codigos
Challenge Trophies Won:

Offline Hotshot

  • DBF Aficionado
  • ******
  • Posts: 2114
  • Karma: 91
    • View Profile
Re: Keyboard Input in Tinyptc?
« Reply #2 on: January 22, 2009 »
Thanks for code and I will try that.  :)