30 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.3 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</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, const char *control);
 | 
						|
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>
 | 
						|
    </blockquote>
 | 
						|
  </body>
 | 
						|
</html>
 |