当前位置: 首页 > 知识库问答 >
问题:

如何让pygame在玩家触摸屏幕一侧时发出警告?

阎淮晨
2023-03-14

我使用pygame创建了一个游戏,我想让pygame在玩家触摸屏幕一侧时给出一个错误,例如“您无法触摸屏幕侧面”。我尝试在互联网上搜索,但我没有找到任何好的结果。我想过在屏幕上添加一个方块,当玩家触摸方块时,它会发出警告,但这花了很长时间,无论如何都不起作用。我也不知道如何发出警报,然后在发出警报后,让游戏重新开始。有人知道如何做到这一点吗?

共有1个答案

邹海超
2023-03-14

定义pygame。播放器的矩形对象:

player_rect = pygame.Rect(w, y, width, height)

或者从玩家图像中获取一个矩形(player_image):

player_rect = player_image.get_Rect(topleft = (x, y))

获取显示面的矩形(< code>screen)

screen_rect = screen.get_rect()

评估播放器是否超出屏幕:

if player_rect.left < screen_rect.left or player_rect.right < screen_rect.right or \
   player_rect.top < screen_rect.top or player_rect.bottom < screen_rect.bottom:
    printe("You can't touch the screen sides")

分别参见pygame.Rect.clamp()pygame.Rect.clamp_ip()

返回一个新的矩形,该矩形被移动到参数Rect中。

有了这个功能,一个对象可以完全保持在窗口中:

player_rect.clamp_ip(screen_rect)

您可以使用固定的矩形来评估玩家是否接触到窗口的边缘:

screen_rect = screen.get_rect()
player_rect = player_image.get_Rect(topleft = (x, y))

clamped_rect = player_rect.clamp(screen_rect)
if clamped_rect.x != player_rect.x or clamped_rect.y != player_rect.y:
    printe("You can't touch the screen sides")

player_rect = clamped_rect
x, y = player_rect.topleft
 类似资料:
  • 我有一个游戏,我希望当玩家触摸婴儿时,游戏能增加一分。我知道如何加分数,但我不知道如何让系统理解它们之间的冲突。 这是我的代码的主要部分: 感谢您的所有帮助。(如果您需要更多代码,请告诉我)

  • 所以我正在制作一个简单的寻宝游戏。我已经实现了SurfaceHolder.Callback和OnTouchListener方法。当触摸屏幕以挖掘宝藏时,应用程序崩溃。 下面是 DrawSurface 类的代码: 以下是我收到的错误消息: E/AndroidRuntime: FATAL EXCEPTION: main Process:justinrhinehart.cse.fullsail.trea

  • 我是pygame的新手,我需要一些帮助,因为我的代码工作不正常。 好的,问题是:我希望屏幕在运行时变为白色,但它仍然是黑色的,但是当我按下退出按钮时,它会变为白色大约一秒钟,然后关闭。 当我放一张图片(像player.png)时,也会发生这种情况,它会在退出前出现大约一秒钟。我不知道我做错了什么, 请帮助修复代码并解释为什么会发生这种情况? 代码如下: 另外,我没有发现任何错误

  • 好的,我有一个手臂和旋转关节相连的球员。我想要的是手臂身体向接触点旋转。 我试图计算接触点与身体的角度,并用 但它在更新方法上表现得很奇怪。它绕着手臂身体的中心旋转,而不是绕着旋转关节连接的身体旋转。 我也在考虑一个关节,但我不知道哪个能像我想要的那样工作。 我将不胜感激任何帮助!

  • 点击一次屏幕,就会出现一个不断扩大的圆圈效果。可以自定义圆圈颜色。Gif动画是小编不断点击屏幕产生的类似水纹的效果。 [Code4App.com]

  • 我试图移动这个图像: 在我的PyGame屏幕上,从右到左再向后,但是随着图像的移动,每隔一秒左右我就会有一点屏幕撕裂,就像这样: 我使用的代码是类似于此的循环: 到目前为止,我已经尝试了以下方法来解决这个问题: 在创建屏幕时使用,,标志,这没有效果,我也调整了更新为(因为使用?)时建议使用此选项) 在GPU和CPU之间拆分内存(我在raspberry pi 2上运行此功能)我尝试过为这两个处理器提