Kinsures > Creations > Game Maker examples
Your Ad Here
Full Version: Script: Returns string based on key value
Eggman891
Useful script that I made a fair old while ago. This returns a string specifying the name of the key whose value was passed to the script. Useful for visually showing control settings in a menu for example.

CODE
/*getKeyString(keyCode);

argument0   = ASCII code of the key to return the string representation of.

By Eggman891 (Scrambled Eggman)*/

if argument0 >= ord("A") && argument0 <= ord("Z")
{
   return chr(argument0);
   exit;
}

if argument0 >= 48 && argument0 <= 57
{
   return chr(argument0);
   exit;
}

if argument0 >= 96 && argument0 <= 105
{
   return "Numpad "+string(argument0-96);
}

if argument0 >= 112 && argument0 <= 124
{
   return "F"+string(argument0-111);
}

switch (argument)
{
   case vk_enter:
       return "Enter";
   break;
   
   case vk_space:
       return "Space";
   break;
   
   case vk_backspace:
       return "Backspace";
   break;
   
   case vk_up:
       return "Up Arrow";
   break;
   
   case vk_down:
       return "Down Arrow";
   break;
   
   case vk_left:
       return "Left Arrow";
   break;
   
   case vk_right:
       return "Right Arrow";
   break;
   
   case vk_insert:
       return "Insert";
   break;
   
   case vk_home:
       return "Home";
   break;
   
   case vk_pageup:
       return "Page Up";
   break;
   
   case vk_delete:
       return "Delete";
   break;
   
   case vk_end:
       return "End";
   break;
   
   case vk_pagedown:
       return "Page Down";
   break;
   
   case vk_shift:
       return "Shift";
   break;
   
   case vk_control:
       return "Control";
   break;
   
   case vk_alt:
       return "Alt";
   break;                                
}

return string(argument0);


Example of usage. (My system here used a global array that holds all of the control values. The CAPITAL indexes are constants that I used for coherency.

CODE
draw_set_color(c_yellow);
draw_set_font(fnt_bigger)
draw_text(room_width/2,96+(72*menuZoom),"Start Button: " + getKeyString(global.key[START]));
draw_set_color(c_gray);
draw_set_font(fnt_display)
draw_text(room_width/2,96-(48*menuZoom),"Move Left: " + getKeyString(global.key[LEFT]));
draw_text(room_width/2,96-(24*menuZoom),"Move Right: " + getKeyString(global.key[RIGHT]));
draw_text_transformed(room_width/2,96,"Jump: " + getKeyString(global.key[JUMP]));
draw_text(room_width/2,96+(24*menuZoom),"Duck: " + getKeyString(global.key[DUCK]));
draw_text(room_width/2,96+(48*menuZoom),"Attack: " + getKeyString(global.key[ATTACK]));
draw_text(room_width/2,96+(96*menuZoom));
tophunter7
Hmmm, that actually seems a useful script indeed, a more simple way would be :

QUOTE
return string(chr(argument0));


But obviously this way does not tell you what the key is, where it is, etc.

Useful script, may come in handy.

~TH7
Powered by IP.Board v1.3 © 2003 - iPBFree v.2.1 © 2007