141 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!doctype html>
 | |
| <html>
 | |
|   <head>
 | |
|     <title>Townengine Wiki : Input System</title>
 | |
|     <link rel="stylesheet" href="style.css">
 | |
|   </head>
 | |
|   <body>
 | |
|     <h1 style="margin-bottom:0in">T2. Input System<span style="float:right">{twn}</span></h1>
 | |
|     <a href="index.html">Go back
 | |
|     <p><a name="design"></a><strong>T2.1 </strong><strong>Design</strong>
 | |
|     <blockquote>
 | |
|       <p>One of goals is to make system that has the least variance in handling. We combine mouse inputs with keys
 | |
|          and don't use keycodes whatsoever. Key combinations are supported. Everything is represented with an encoded string:
 | |
|          <pre>[control+]+control</pre>
 | |
|          Any variant should be combinable, even things like mouse movement + key press.
 | |
|       <p>One current limitation of such design is that actions will only be reported in next frame after they
 | |
|         were first declared, creating delay. It's possible to fix it in the future however.
 | |
|     </blockquote>
 | |
|     <p><a name="api"></a><strong>T2.2 </strong><strong>API</strong>
 | |
|     <blockquote>
 | |
|       <p>It's rather small:<pre>
 | |
| void input_action(const char *name
 | |
| bool input_action_pressed(const char *name);
 | |
| bool input_action_just_pressed(const char *name);
 | |
| bool input_action_just_released(const char *name);
 | |
| Vec2 input_action_position(const char *name);</pre>
 | |
| 
 | |
|       <p>Lists of controls, from src/twn_input.c:
 | |
|       <p>-- Keyboard --
 | |
|       <pre>
 | |
| "A"
 | |
| "B"
 | |
| "C"
 | |
| "D"
 | |
| "E"
 | |
| "F"
 | |
| "G"
 | |
| "H"
 | |
| "I"
 | |
| "J"
 | |
| "K"
 | |
| "L"
 | |
| "M"
 | |
| "N"
 | |
| "O"
 | |
| "P"
 | |
| "Q"
 | |
| "R"
 | |
| "S"
 | |
| "T"
 | |
| "U"
 | |
| "V"
 | |
| "W"
 | |
| "X"
 | |
| "Y"
 | |
| "Z"
 | |
| "1"
 | |
| "2"
 | |
| "3"
 | |
| "4"
 | |
| "5"
 | |
| "6"
 | |
| "7"
 | |
| "8"
 | |
| "9"
 | |
| "0"
 | |
| "RETURN"
 | |
| "ENTER" /* an alias */
 | |
| "ESCAPE"
 | |
| "BACKSPACE"
 | |
| "TAB"
 | |
| "SPACE"
 | |
| "MINUS"
 | |
| "EQUALS"
 | |
| "LEFTBRACKET"
 | |
| "RIGHTBRACKET"
 | |
| "BACKSLASH"
 | |
| "NONUSHASH"
 | |
| "SEMICOLON"
 | |
| "APOSTROPHE"
 | |
| "GRAVE"
 | |
| "COMMA"
 | |
| "PERIOD"
 | |
| "SLASH"
 | |
| "CAPSLOCK"
 | |
| "F1"
 | |
| "F2"
 | |
| "F3"
 | |
| "F4"
 | |
| "F5"
 | |
| "F6"
 | |
| "F7"
 | |
| "F8"
 | |
| "F9"
 | |
| "F10"
 | |
| "F11"
 | |
| "F12"
 | |
| "PRINTSCREEN"
 | |
| "SCROLLLOCK"
 | |
| "PAUSE"
 | |
| "INSERT"
 | |
| "HOME"
 | |
| "PAGEUP"
 | |
| "DELETE"
 | |
| "END"
 | |
| "PAGEDOWN"
 | |
| "RIGHT"
 | |
| "LEFT"
 | |
| "DOWN"
 | |
| "UP"
 | |
| "KPDIVIDE"
 | |
| "KPMULTIPLY"
 | |
| "KPMINUS"
 | |
| "KPPLUS"
 | |
| "KPENTER"
 | |
| "KP1"
 | |
| "KP2"
 | |
| "KP3"
 | |
| "KP4"
 | |
| "KP5"
 | |
| "KP6"
 | |
| "KP7"
 | |
| "KP8"
 | |
| "KP9"
 | |
| "KP0"
 | |
| "LCTRL"
 | |
| "LSHIFT"
 | |
| "LALT"
 | |
| "RCTRL"
 | |
| "RSHIFT"</pre>
 | |
| 
 | |
|     <p>-- Mouse --
 | |
|     <pre>
 | |
| "LCLICK"
 | |
| "MCLICK"
 | |
| "RCLICK"</pre>
 | |
| 
 | |
|     </blockquote>
 | |
|   </body>
 | |
| </html>
 |