- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我最近开始使用 python 并决定使用 pygame 创建一个游戏,其中基本上有方 block 掉落,你必须越过它们。您可以使用向左键和向右键移动,但如果您按住它们,什么也不会发生,我不知道为什么,因为在我的代码中,我相信我已经在第 114 到 122 行之间涵盖了这一点。
虽然不是游戏结束:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
x = player_pos[0]
y = player_pos[1]
keys = pygame.key.get_pressed() # Check if a key is pressed
if keys[pygame.K_LEFT] and x != 0:
x -= 25
print("move left")
if keys[pygame.K_RIGHT] and x != 750:
print("move right")
x += 25
player_pos = [x, y]
draw_enemies(enemy_list)
pygame.draw.rect(screen, RED, (player_pos[0], player_pos[1], player_size, player_size))
clock.tick(30)
pygame.display.update()
我希望在按下左右按钮时能够移动,但我不能,我只能在按下然后松开时移动。
最佳答案
这个问题是因为位置的改变是在事件循环中完成的,但是事件循环只在事件发生时执行,比如 pygame.KEYDOWN
或 pygame.键上键
。所以位置不会连续变化,如果按下任何键或释放任何键,它只会改变一次。
请注意,如果按住 K_LEFT
或 K_RIGHT
并且发生其他事件(如 MOUSEMOTION
),位置甚至会改变。您可以验证,按下 K_LEFT
并移动鼠标,播放器 将会移动。
将改变位置的代码移出事件循环并在主循环范围内执行:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
#<--
#<--
x = player_pos[0]
y = player_pos[1]
keys = pygame.key.get_pressed() # Check if a key is pressed
if keys[pygame.K_LEFT] and x != 0:
x -= 25
print("move left")
if keys[pygame.K_RIGHT] and x != 750:
print("move right")
x += 25
player_pos = [x, y]
#<--
#<--
关于python - pygame.key.get_pressed() 在我的代码中不起作用,我不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55751662/
我的程序中的键盘事件遇到一些问题。长话短说,我正在使用 pygame.KEYDOWN 事件,但后来几乎每个人都听说 get_pressed() 是一个更合适的选项。我相应地更改了代码,但遇到了一些问题
代码如下 import pygame pygame.init() info = pygame.display.Info() win = pygame.display.set_mode(((info.c
我知道已经有一些关于同一问题的问题,但提出的解决方案对我没有帮助。 我想在任何给定时间监视箭头键的状态(按下/未按下),因此我有以下代码: import pygame pygame.init() a=
我在 pygame 中遇到了一个“简单”的问题,这让我完全抓狂。基本上,当我尝试读取键盘的状态时,pygame.get_pressed() 内的所有值都为零。我已经尝试了一切但没有任何结果。这是我的代
pygame.get_keypressed() 为每个按下的按键返回一个由 0 和 1 组成的长列表,可以由 pygame 映射。下面的示例,是否有直接的方法来提取按下的按键的字母表示? 我试图避免使
我有一个程序可以绘制一个收缩的绿色圆圈,当您按p时,圆圈消失并出现一条红线。但是当我再次按 p 时,绿色圆圈应该重新出现,但事实并非如此。 每当我第一次按 p 后调用 pygame.event.get
我正在尝试使用 Python 中的 pygame 为应用程序制定简单的控件。我已经掌握了基础知识,但我遇到了奇怪的墙:我正在使用箭头键来控制我的角色。如果我按住一个箭头键,然后按住另一个箭头键(沿对角
我在 Stack Overflow 上阅读过与此类似的问题,但没有帮助。这是我的代码: import pygame from pygame.locals import * pygame.init()
这是我的蛇游戏代码的开头。在按下箭头键和蛇的实际转弯之间有一个恼人的延迟。 很难准确地转动并捕获“苹果”。 我希望这更具响应性。如何调整我的代码以使转弯更灵敏? import random impor
我是 Python 新手,但我决定尝试在 Pygame 中制作一款格斗游戏。我的角色只会向左移动,并且只有在强制更新时才会移动。 我尝试过: 按下按键 if event.key == pygame.K
我最近开始使用 python 并决定使用 pygame 创建一个游戏,其中基本上有方 block 掉落,你必须越过它们。您可以使用向左键和向右键移动,但如果您按住它们,什么也不会发生,我不知道为什么,
我正在编写一款自上而下的射击游戏,最近试图找出一种在按住某个键的同时连续移动我的角色的方法。我在互联网上搜索一种方法,发现了 pygame.key.get_pressed() ,这非常有效,直到我尝试
尽管四处寻找,我似乎找不到这个看似简单问题的答案: 我是 pygame 的新手(但不是 python),并且正在尝试通过连续按下按钮来获取一些代码 - 但 get_pressed 似乎对我不起作用。我
正在做print pygame.key.get_pressed()打印出很多 0的,但是有什么办法可以打印这些 0作为一个字母输出,然后将该字母标记为变量? 这就是我的意思: import pygam
好的,所以我正在制作一个基本的 spaceship 游戏。 我无法让旋转工作,因为它扰乱了位图,但这是另一个问题。我应该使用 gif 吗?还有其他文件类型建议吗? 回到正题,所以: k = pygam
我是 python 编码新手,需要一些单元测试方面的帮助。我想测试我的模块,根据用户按下的内容移动 Pygame 中的图像位置。这是我的模块: def moveRight(self): sel
这个问题在这里已经有了答案: How to get keyboard input in pygame? (11 个答案) How can I make a sprite move when key
我正在尝试创建一个函数,如果按下一个键,变量就会发生变化。这将被放入一个在屏幕上移动 Sprite 的类中。当松开按键时,while 循环被破坏。然而,什么也没有发生。 while 循环正在运行,我没
我的程序有两个问题: 关闭程序时出现错误:keys = pygame.key.get_pressed() pygame.error: video system not initialized 当我按“
我是一名优秀的程序员,十分优秀!