Please login or register.

Login with username, password and session length
Advanced search  

News:

IRC channel - server: waelisch.de  channel: #wme (read more)

Author Topic: Disabling keyboard  (Read 3293 times)

0 Members and 1 Guest are viewing this topic.

Chaos

  • supporter
  • Lurker
  • *
  • Karma: 1
  • Offline Offline
  • Gender: Male
  • Posts: 45
  • "WME rocks!"
    • View Profile
Disabling keyboard
« on: June 04, 2014, 06:50:00 AM »

Hello guys! I know exactly how to lock the mouse, and actually I've been using this for years by using
"Game.LockMouseRect(0,0,0,0);"
But now I wonder, is there any way to disable an specific key from the keyboard (or the whole keyboard) in a specific
scene, in this case the "Main Menu"? Thanks for your help...  :)

« Last Edit: June 04, 2014, 06:51:42 AM by Chaos »
Logged

ciberspace

  • Regular poster
  • ***
  • Karma: 1
  • Offline Offline
  • Gender: Male
  • Posts: 116
    • View Profile
    • Tele Juego
Re: Disabling keyboard
« Reply #1 on: June 04, 2014, 02:32:51 PM »

Can it be?
Keyboard object
The Keyboard object represents the current state of the keyboard. There is always one and only Keyboard object available. It's accessible via the Game.Keyboard attribute. For the convenience the templates automatically store the keyboard object in a global variable named Keboard.



Methods
IsKeyDown Queries whether a specified key is pressed.

Attributes
Type (read only) Returns always "keyboard"
Key (read only) Returns a string with the name of the pressed key (if the key is a printable character)
Printable (read only) Returns true if the pressed key is a printable character
KeyCode (read only) Returns a numeric code of a pressed key.
IsShift (read only) Returns true if the SHIFT key has been hold down when the key was pressed
IsAlt (read only) Returns true if the ALT key has been hold down when the key was pressed
IsControl (read only) Returns true if the CONTROL key has been hold down when the key was pressed

Azrael

  • Regular poster
  • ***
  • Karma: 9
  • Offline Offline
  • Gender: Male
  • Posts: 155
    • View Profile
    • Mad Orange
Re: Disabling keyboard
« Reply #2 on: June 05, 2014, 07:59:09 AM »

If you need only to disable the main menu there is a simple way, in your game.script you should have something like:
Code: WME Script
  1. on "Keypress"
  2. {
  3.   // on Esc or F1 key
  4.   if(Keyboard.KeyCode==VK_ESCAPE || Keyboard.KeyCode==VK_F1)
  5.   {
  6.     // load and display the main menu window
  7.     WinCaption.Visible = false;
  8.     var WinMainMenu = Game.LoadWindow("interface\system\mainmenu.window");
  9.     WinMainMenu.Center();
  10.     WinMainMenu.GoSystemExclusive();
  11.     Game.UnloadObject(WinMainMenu);
  12.   }
  13. }

So simply change it on something like:
Code: WME Script
  1. on "Keypress"
  2. {
  3.   // on Esc or F1 key
  4.   if((Keyboard.KeyCode==VK_ESCAPE || Keyboard.KeyCode==VK_F1) && Scene.Name != "NameOfTheScene")
  5.   {
  6.     // load and display the main menu window
  7.     WinCaption.Visible = false;
  8.     var WinMainMenu = Game.LoadWindow("interface\system\mainmenu.window");
  9.     WinMainMenu.Center();
  10.     WinMainMenu.GoSystemExclusive();
  11.     Game.UnloadObject(WinMainMenu);
  12.   }
  13. }


If you have to do it on many scenes you could also use a scene variable. So on your scene.init add somewhere:
Code: WME Script
  1. Scene.DontDisplayMenu = true;

And on the game.script:
Code: WME Script
  1. on "Keypress"
  2. {
  3.   // on Esc or F1 key
  4.   if((Keyboard.KeyCode==VK_ESCAPE || Keyboard.KeyCode==VK_F1) && Scene.DontDisplayMenu != true)
  5.   {
  6.     // load and display the main menu window
  7.     WinCaption.Visible = false;
  8.     var WinMainMenu = Game.LoadWindow("interface\system\mainmenu.window");
  9.     WinMainMenu.Center();
  10.     WinMainMenu.GoSystemExclusive();
  11.     Game.UnloadObject(WinMainMenu);
  12.   }
  13. }

Also remember to set "Scene.DontDisplayMenu" on "false", "null" or something else not "true" on the other scenes, maybe adding it on "base.inc" so it will be always active except when you don't want
Logged
 

Page created in 0.066 seconds with 22 queries.