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

PyGame窗口显示没有响应的消息

竺绍辉
2023-03-14
import pygame
import sys
W,H = 500,500
win = pygame.display.set_mode((500,500))#Display initialisation
pygame.display.set_caption("E")#Display caption
bg = pygame.image.load("scrolltest.png").convert()#bg image
bgWidth, bgHeight = bg.get_rect().size
run = True
clock = pygame.time.Clock()
def events():
     for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
            sys.exit()    
class camera:
    def __init__(self,rel_x,x):
        self.x = 0
        self.rel_x = self.x % bgWidth
        self.scrolling = True
    def scroll(self,x):
        while self.scrolling == True:
            self.x -= 1
    def draw(self,win):
        win.blit(bg,(self.rel_x - bgWidth,0))
camo = camera(0,0)
while run:
    clock.tick(60)
    events()
    camo.scroll(0)
    camo.draw(win)

这是完整的代码,这是一个滚动程序的原型,它被打破了(尽管如此),但是每当我试图点击它时,我都会看到没有响应的窗口

共有1个答案

蒋高扬
2023-03-14

它的方法scroll摄像机是一个无尽的循环:

class camera:
   def __init__(self,rel_x,x):
       self.x = 0
       self.rel_x = self.x % bgWidth
       self.scrolling = True
   def scroll(self,x):
       while self.scrolling == True:
           self.x -= 1
   # [...]

注意,self。滚动将保持true,循环将永远不会终止。

方法scroll在主应用程序循环中调用,因此无需在scroll中实现循环。进行选择(如果)而不是迭代()就足够了:

class camera:
    # [...]

    def scroll(self,x):
        if self.scrolling == True:
            self.x -= 1

    # [...]

此外,您还可以通过win清除显示。填充(0)以通过pygame更新显示。陈列更新()<代码>自我。rel_x也必须更新:

class camera:
    def __init__(self,rel_x,x):
        self.x = 0
        self.rel_x = self.x % bgWidth
        self.scrolling = True
    def scroll(self,x):
        if self.scrolling == True:
            self.x -= 1
            self.rel_x = self.x % bgWidth
    def draw(self,win):
        win.blit(bg,(self.rel_x-bgWidth,0))

camo = camera(0,0)

while run:
    clock.tick()
    events()
    camo.scroll(0)
    win.fill(0)
    camo.draw(win)
    pygame.display.update()
 类似资料:
  • 当我运行我的pyplay程序的游戏窗口显示没有反应,我也写了退出功能,但我不知道为什么它再次广告再次显示没有反应,我的笔记本电脑是Windows 8和32位

  • 我正在为平台游戏做教程,但我的Pygame窗口显示一个黑屏。 我不知道怎么解决这个问题。 我尝试再次关闭和打开Visual Studio Code,但没有任何结果。

  • 我是一个ameatur编码器,我最近开始使用pyplay,我一直在编码一些例子,我刚刚找到一个执行时无法正常加载的例子。我很确定我写对了,但我不知道为什么它不会运行。我运行Python 3.6和Pygame1.9.3。** *我知道pygame的版本是1.9,但我不知道最后一个数字。 这是代码:

  • 我是一个对使用python相当陌生的爱好者。自从我安装 Pygame 以来已经一周了,经过多次尝试,当我运行任何程序时,我仍然无法启动或打开 Pygame 窗口。我已经看了尽可能多的教程,并阅读了我能找到的关于类似问题的所有文章。我已经复制了在其他网站上找到的所有解决方案,但问题仍然存在。然而,更奇怪的是,我正在使用的IDE(Pycharm)很少输出错误消息,而是简单地继续运行,但从未启动Pyga

  • 这是我的代码,请记住,我在几天前学习了python,所以我的代码可能制作不正确,等等。我正在尝试制作一个窗口,该窗口将显示一些文本(测试版),并将显示两个小矩形,我想成为按钮。

  • 问题内容: 我想在ubuntu上运行的python脚本中显示一个信息窗口。我正在使用以下代码: 这可以工作,但是会显示一个空窗口,顶部是消息框。我如何摆脱窗口而只将消息框居中放在屏幕上(窗口管理器是gnome 2)? 这只是为了显示命令行脚本中的一些信息(密码,这就是为什么我不想仅将其回显到控制台)。 问题答案: Tkinter必须具有根窗口。如果您不创建一个,则会为您创建一个。如果您不需要此根窗