我有两个用keboard控制的对象,一个用WASD控制,另一个用箭头控制。 (想象一个2D游戏)
我最近编写了代码,使它们在按下键的同时继续运动,但是如果我同时按住W和向上箭头,则只有一个起作用,而另一个则停止。 我想知道一个解决方法。
这是移动代码:
if e.type == pygame.KEYDOWN:
if e.key==K_d:
PX += movimentenpx
EnergiaD +=energiapermoviment
if e.key==K_a:
PX -= movimentenpx
EnergiaD +=energiapermoviment
if e.key==K_w:
PY -= movimentenpx
EnergiaD +=energiapermoviment
if e.key==K_s:
PY += movimentenpx
EnergiaD +=energiapermoviment
if e.key ==K_UP:
PY2 -= movimentenpx
EnergiaD2 +=energiapermoviment
if e.key ==K_LEFT:
PX2 -= movimentenpx
EnergiaD2 +=energiapermoviment
if e.key ==K_DOWN:
PY2 += movimentenpx
EnergiaD2 +=energiapermoviment
if e.key ==K_RIGHT:
PX2 +=movimentenpx
EnergiaD2 +=energiapermoviment
答案 0 :(得分:2)
抓住pygame.key.get_pressed()
上的按键一次只能一次获得一次按键。您需要使用pressed_keys = pygame.key.get_pressed()
if pressed_keys[pygame.K_w]:
# do stuff
if pressed_keys[pygame.K_s]:
# do stuff
来获取整个键盘状态的数组。
<button
name="btn1"
id="btn1"
type="submit"
class="btn btn-primary btn-block button-size"
>
Click Here!
</button>
<script type="text/javascript">
const btn = document.getElementById("btn1");
btn.onclick = function(e) {
btn.innerHTML =
"<span><i class='fa fa-spinner fa-spin'></i> Loading</span>";
btn.disabled = true;
setTimeout(() => {
btn.disabled = false;
btn.innerText = "Click here again!";
}, 3000);
};
</script>
这一切都发生在主游戏循环中。如果您想按住键,这也是抓住键的方法。
有关更多文档:https://www.pygame.org/docs/ref/key.html#pygame.key.get_pressed