为什么这不起作用
import pygame
pygame.init()
while True:
pressed = pygame.key.get_pressed()
for event in pygame.event.get():
if event.type == pygame.KEYDOWN:
if pressed[pygame.K_w]:
print("w is pressed")
elif pressed[pygame.K_s]:
print("s is pressed")
我今天安装了pygame和python。从理论上讲,它应该是pygame和python的最新版本。这段代码经过了多次迭代,但都没有成功。我什至尝试过:
print(pygame.key.get_pressed()[pygame.K_w])
并且仅打印0。即使按住w。我已经尝试了一切。 我尝试使用:
pygame.event.pump()
但是什么也没做。
没有错误或任何东西,什么都没有发生。它只是在屏幕上打印我输入的内容。
我以前从未发布过stackoverflow信息,对不起,如果我做错了什么。
编辑: 我从这里的某个地方更改了代码
import pygame
pygame.init()
while True:
for event in pygame.event.get() :
if event.type == pygame.KEYDOWN :
if event.key == pygame.K_SPACE :
print ("Space bar pressed down.") #Here you should put you program in the mode associated with the pressed SPACE key
elif event.key == pygame.K_ESCAPE :
print ("Escape key pressed down.")
elif event.type == pygame.KEYUP :
if event.key == pygame.K_SPACE :
print ("Space bar released.")
elif event.key == pygame.K_ESCAPE :
print ("Escape key released.") #Time to change the mode again
什么都没有。绝对没有。
答案 0 :(得分:1)
pygame.key.get_pressed()
将评估pygame.event.get()
返回的状态。
此人<!DOCTYPE html>
<html>
<head>
<title> Multiplication Table </title>
</head>
<body>
<form method="POST" action="#">
Enter Multiplier: <input type="text" name="mult"> <br>
<input type="submit" name="m" value="Multiply">
</form>
<table border="1">
<?php
if(isset($_POST["m"])){
$mult = 0;
$x = 1;
$mulpli = 1;
$pro = 0;
$mult=$_POST["mult"];
while($mulpli <= $mult)
{
echo "<tr>". "<th>". " ";
echo "<th>". $mulpli;
while($x <= $mult)
{
$pro=$x*$mulpli;
echo "<tr>";
echo "<th>". $x;
echo "<th>". $pro;
$x=$x+1;
}
$x = $x-$mult;
$mulpli=$mulpli+1;
}
}
?>
</th></th></tr></th></th></tr>
</table>
</body>
</html>
必须首先完成。请注意,如果您按相反的顺序进行操作,并且发生按键事件,则事件循环将运行,但是pygame.event.get()
已返回不赞成使用的状态。因此状态pygame.key.get_pressed()
和pressed[pygame.K_w]
永远不会在循环的同一轮中被实现。该操作将在2个连续的运行循环中完成。
像这样更改代码,以解决该问题:
event.type == pygame.KEYDOWN
答案 1 :(得分:0)
您没有创建屏幕。我不确定这是否重要,但我怀疑确实如此。
此外,您正在混合“ pygame.event.get()中的for事件”模式和“ pygame.key.get_pressed()”模式。