Closed noeinan closed 5 years ago
Per PyTom, RenPy does not currently support K_LEFT + K_UP at the same time. Only keys that can register multiple keys are any key + shift/ctrl/alt
https://lemmasoft.renai.us/forums/viewtopic.php?f=8&t=52537&p=499095&hilit=keybinding#p499095
Used following code, unfortunately, shift + K_LEFT/RIGHT doesn't work for some reason... alt + K_LEFT/RIGHT works just fine.
key "K_UP" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 0, -1), SetVariable("pc_dir", "back")]
key "repeat_K_UP" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 0, -1), SetVariable("pc_dir", "back")]
key "shift_K_LEFT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, -1, -1), SetVariable("pc_dir", "dback_left")]
key "repeat_shift_K_LEFT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, -1, -1), SetVariable("pc_dir", "dback_left")]
key "shift_K_RIGHT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 1, -1), SetVariable("pc_dir", "dback_right")]
key "repeat_shift_K_RIGHT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 1, -1), SetVariable("pc_dir", "dback_right")]
key "K_DOWN" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 0, 1), SetVariable("pc_dir", "front")]
key "repeat_K_DOWN" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 0, 1), SetVariable("pc_dir", "front")]
key "alt_K_LEFT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, -1, 1), SetVariable("pc_dir", "dfront_left")]
key "repeat_alt_K_LEFT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, -1, 1), SetVariable("pc_dir", "dfront_left")]
key "alt_K_RIGHT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 1, 1), SetVariable("pc_dir", "dfront_right")]
key "repeat_alt_K_RIGHT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 1, 1), SetVariable("pc_dir", "dfront_right")]
key "K_LEFT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, -1, 0), SetVariable("pc_dir", "left")]
key "repeat_K_LEFT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, -1, 0), SetVariable("pc_dir", "left")]
key "K_RIGHT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 1, 0), SetVariable("pc_dir", "right")]
key "repeat_K_RIGHT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 1, 0), SetVariable("pc_dir", "right")]
key "K_RETURN" action Function(pcInteracts)
This is a bit onerous, but it works for now at least.
` key "K_UP" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 0, -1), SetVariable("pc_dir", "back")] key "repeat_K_UP" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 0, -1), SetVariable("pc_dir", "back")]
key "alt_K_UP" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, -1, -1), SetVariable("pc_dir", "dback_left")]
key "repeat_alt_K_UP" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, -1, -1), SetVariable("pc_dir", "dback_left")]
key "alt_K_DOWN" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 1, -1), SetVariable("pc_dir", "dback_right")]
key "repeat_alt_K_DOWN" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 1, -1), SetVariable("pc_dir", "dback_right")]
key "K_DOWN" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 0, 1), SetVariable("pc_dir", "front")]
key "repeat_K_DOWN" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 0, 1), SetVariable("pc_dir", "front")]
key "alt_K_LEFT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, -1, 1), SetVariable("pc_dir", "dfront_left")]
key "repeat_alt_K_LEFT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, -1, 1), SetVariable("pc_dir", "dfront_left")]
key "alt_K_RIGHT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 1, 1), SetVariable("pc_dir", "dfront_right")]
key "repeat_alt_K_RIGHT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 1, 1), SetVariable("pc_dir", "dfront_right")]
key "K_LEFT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, -1, 0), SetVariable("pc_dir", "left")]
key "repeat_K_LEFT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, -1, 0), SetVariable("pc_dir", "left")]
key "K_RIGHT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 1, 0), SetVariable("pc_dir", "right")]
key "repeat_K_RIGHT" action [Function(cMap.moveDenizen, pc_sprite.x, pc_sprite.y, 1, 0), SetVariable("pc_dir", "right")]
key "K_RETURN" action Function(pcInteracts)
`
Add code to allow character to move diagonal up-left, diagonal up-right, diagonal down-left, and diagonal down-right