File: Keymap.html

package info (click to toggle)
renpy 6.6.2.dfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: lenny
  • size: 8,740 kB
  • ctags: 3,407
  • sloc: python: 22,153; ansic: 3,724; makefile: 138; lisp: 128; sh: 14
file content (72 lines) | stat: -rw-r--r-- 9,429 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<html><head><title>renpy/doc/reference/Keymap - Ren'Py</title><link href="../shared.css" rel="stylesheet"><link href="../monobook.css" rel="stylesheet"><link href="../common.css" rel="stylesheet"><link href="../monobook2.css" rel="stylesheet"><link href="../docs.css" rel="stylesheet" /></link></link></link></link></head><body><div id="bodyContent">
			<p class="docnav"><a href="../index.html">documentation index</a> &#9702; <a href="Reference_Manual.html">reference manual</a> &#9702; <a href="Function_Index.html">function index</a></p><p><a id="Customizing_the_Keymap" name="Customizing_the_Keymap"></a></p>
<h2><span class="mw-headline">Customizing the Keymap</span></h2>
<p>The variable <a href="../reference/Configuration_Variables#config.keymap" title="renpy/doc/reference/Configuration Variables">config.keymap</a> contains a map from functions that can be performed by the various user-interface elements of Ren'Py to a list of keysyms (a keysym is a <b>key</b> <b>sym</b>bol) that actually perform those functions. Modifying the contents of the keymap can change the keys and mouse buttons that cause things to happen.</p>
<p>While this functionality has been added to Ren'Py at a user's request (and because it simplifies the Ren'Py code), it's not altogether clear that it should be used. Having a common set of keybindings makes games easier to play by reducing the learning curve of users. It's probably better to build consensus around a change in keybindings, rather than unilaterally making one game different from every other game.</p>
<p>Anyway, in Ren'Py keysyms are strings. The first kind of keysym is of the form 'mouseup_#' or 'mousedown_#', for a number between 1 and 5. These keysyms are generated by mouse button presses, releases, or turns of the mouse wheel. For example, "mousedown_1" is generally a press of the left mouse button, "mouseup_1" is a release of that button, and "mousedown_4" is a turn of the the mouse wheel to the top.</p>
<p>A second kind of keysym is a joystick keysym. These begin with joy_. They are defined in <a href="../reference/Configuration_Variables#config.joystick_keys" title="renpy/doc/reference/Configuration Variables">config.joystick_keys</a>, and mapped to actual joystick events by the user.</p>
<p>A third kind of keysym is a string containing a character that is generated when a key is pressed. This is useful for binding alphabetic keys and numbers. Examples of these keysyms include "a", "A", and "7".</p>
<p>The final kind of keysym is the symbolic name for the key. This can be any of the K_ constants taken from pygame.constants This type of keysym looks like "K_BACKSPACE", "K_RETURN", and "K_TAB".</p>
<p>To change a binding, update the appropriate list in <a href="../reference/Configuration_Variables#config.keymap" title="renpy/doc/reference/Configuration Variables">config.keymap</a>. The following code adds the 't' key to the list of keys that dismiss a say statement, and removes the space key from that list.</p>
<pre>
<span class="kwa">init</span><span class="sym">:</span>
    $ config<span class="sym">.</span>keymap<span class="sym">[</span><span class="str">'dismiss'</span><span class="sym">].</span><span class="kwd">append</span><span class="sym">(</span><span class="str">'t'</span><span class="sym">)</span>
    $ config<span class="sym">.</span>keymap<span class="sym">[</span><span class="str">'dismiss'</span><span class="sym">].</span><span class="kwd">remove</span><span class="sym">(</span><span class="str">'K_SPACE'</span><span class="sym">)</span>
</pre>
<p>The default keymap is contained inside the python code implementing Ren'Py, and as of version 5.6.4 is as follows:</p>
<pre>
config<span class="sym">.</span>keymap <span class="sym">=</span> <span class="kwb">dict</span><span class="sym">(</span>

    <span class="slc"># Bindings present almost everywhere, unless explicitly</span>
    <span class="slc"># disabled.</span>
    rollback <span class="sym">= [</span> <span class="str">'K_PAGEUP'</span><span class="sym">,</span> <span class="str">'mousedown_4'</span><span class="sym">,</span> <span class="str">'joy_rollback'</span> <span class="sym">],</span>
    screenshot <span class="sym">= [</span> <span class="str">'s'</span> <span class="sym">],</span>
    toggle_fullscreen <span class="sym">= [</span> <span class="str">'f'</span> <span class="sym">],</span>
    toggle_music <span class="sym">= [</span> <span class="str">'m'</span> <span class="sym">],</span>
    game_menu <span class="sym">= [</span> <span class="str">'K_ESCAPE'</span><span class="sym">,</span> <span class="str">'mouseup_3'</span><span class="sym">,</span> <span class="str">'joy_menu'</span> <span class="sym">],</span>
    hide_windows <span class="sym">= [</span> <span class="str">'mouseup_2'</span><span class="sym">,</span> <span class="str">'h'</span> <span class="sym">],</span>
    launch_editor <span class="sym">= [</span> <span class="str">'E'</span> <span class="sym">],</span>
    dump_styles <span class="sym">= [</span> <span class="str">'Y'</span> <span class="sym">],</span>
    debugger <span class="sym">= [</span> <span class="str">'D'</span> <span class="sym">],</span>


    <span class="slc"># Say.</span>
    rollforward <span class="sym">= [</span> <span class="str">'mousedown_5'</span><span class="sym">,</span> <span class="str">'K_PAGEDOWN'</span> <span class="sym">],</span>
    dismiss <span class="sym">= [</span> <span class="str">'mouseup_1'</span><span class="sym">,</span> <span class="str">'K_RETURN'</span><span class="sym">,</span> <span class="str">'K_SPACE'</span><span class="sym">,</span> <span class="str">'K_KP_ENTER'</span><span class="sym">,</span> <span class="str">'joy_dismiss'</span> <span class="sym">],</span>

    <span class="slc"># Focus.</span>
    focus_left <span class="sym">= [</span> <span class="str">'K_LEFT'</span><span class="sym">,</span> <span class="str">'joy_left'</span> <span class="sym">],</span>
    focus_right <span class="sym">= [</span> <span class="str">'K_RIGHT'</span><span class="sym">,</span> <span class="str">'joy_right'</span> <span class="sym">],</span>
    focus_up <span class="sym">= [</span> <span class="str">'K_UP'</span><span class="sym">,</span> <span class="str">'joy_up'</span> <span class="sym">],</span>
    focus_down <span class="sym">= [</span> <span class="str">'K_DOWN'</span><span class="sym">,</span> <span class="str">'joy_down'</span> <span class="sym">],</span>

    <span class="slc"># Button.</span>
    button_select <span class="sym">= [</span> <span class="str">'mouseup_1'</span><span class="sym">,</span> <span class="str">'K_RETURN'</span><span class="sym">,</span> <span class="str">'K_KP_ENTER'</span><span class="sym">,</span> <span class="str">'joy_dismiss'</span> <span class="sym">],</span>

    <span class="slc"># Input.</span>
    input_backspace <span class="sym">= [</span> <span class="str">'K_BACKSPACE'</span> <span class="sym">],</span>
    input_enter <span class="sym">= [</span> <span class="str">'K_RETURN'</span><span class="sym">,</span> <span class="str">'K_KP_ENTER'</span> <span class="sym">],</span>

    <span class="slc"># Viewport.</span>
    viewport_up <span class="sym">= [</span> <span class="str">'mousedown_4'</span> <span class="sym">],</span>
    viewport_down <span class="sym">= [</span> <span class="str">'mousedown_5'</span> <span class="sym">],</span>
    viewport_drag_start <span class="sym">= [</span> <span class="str">'mousedown_1'</span> <span class="sym">],</span>
    viewport_drag_end <span class="sym">= [</span> <span class="str">'mouseup_1'</span> <span class="sym">],</span>

    <span class="slc"># These keys control skipping.</span>
    skip <span class="sym">= [</span> <span class="str">'K_LCTRL'</span><span class="sym">,</span> <span class="str">'K_RCTRL'</span> <span class="sym">],</span>
    toggle_skip <span class="sym">= [</span> <span class="str">'K_TAB'</span><span class="sym">,</span> <span class="str">'joy_skip'</span> <span class="sym">],</span>
    fast_skip <span class="sym">= [</span> <span class="str">'&gt;'</span> <span class="sym">],</span>

    <span class="slc"># These control the bar.</span>
    bar_activate <span class="sym">= [</span> <span class="str">'mousedown_1'</span><span class="sym">,</span> <span class="str">'K_RETURN'</span><span class="sym">,</span> <span class="str">'K_KP_ENTER'</span><span class="sym">,</span> <span class="str">'joy_dismiss'</span> <span class="sym">],</span>
    bar_deactivate <span class="sym">= [</span> <span class="str">'mouseup_1'</span><span class="sym">,</span> <span class="str">'K_RETURN'</span><span class="sym">,</span> <span class="str">'K_KP_ENTER'</span><span class="sym">,</span> <span class="str">'joy_dismiss'</span> <span class="sym">],</span>
    bar_decrease <span class="sym">= [</span> <span class="str">'K_LEFT'</span><span class="sym">,</span> <span class="str">'joy_left'</span> <span class="sym">],</span>
    bar_increase <span class="sym">= [</span> <span class="str">'K_RIGHT'</span><span class="sym">,</span> <span class="str">'joy_right'</span> <span class="sym">],</span>
    <span class="sym">)</span>
</pre>


<div class="visualClear" />
		<hr /><p class="docnav"><a href="../index.html">documentation index</a> &#9702; <a href="Reference_Manual.html">reference manual</a> &#9702; <a href="Function_Index.html">function index</a></p></div>
	</body></html>