Pygame 在 Mac 上无法绘制

5

首先,我使用的是macOS Mojave 10.14.1操作系统和pygame 1.9.4。

同时,我使用PyCharm集成开发环境,并且使用的是Python 3.7.1。

我决定尝试使用pygame,但是即使绘制一个简单的矩形或图像也无法实现。

下面是我尝试使用的代码,用于绘制一个矩形、绘制在与文件相同目录中的图像以及使用白色填充窗口。但都没有起作用。

import pygame

pygame.init()

win = pygame.display.set_mode((600, 600))
pygame.display.set_caption("Snake")
image = pygame.image.load("java_logo.png")

running = True

while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        win.fill((0, 255, 0))
        pygame.draw.rect(win, (255, 0, 0), (50, 50, 50, 50))
        win.blit(image, (200, 200))
        pygame.display.flip()

pygame.quit()

编辑:

这是使用的图片:https://i.imgur.com/OoSHkXX.png

该段文字讲述了一张图片的来源链接。

请提供您加载的图像,以使您的示例完整。谢谢。 - Mark Setchell
@MarkSetchell 完成了! - Gigi Bayte 2
1
谢谢。这边时间有点晚了,我明天会查看。 - Mark Setchell
你好,@MarkSetchell。你有时间研究这个问题了吗? - Gigi Bayte 2
抱歉,是的,我尝试了很久都没能让它正常工作。似乎有很多人在Mac上遇到了问题,从其他问题中也可以看出来。有一个人通过将其全屏来解决问题,另一个人则通过这种方式成功了:https://dev59.com/6Yrda4cB1Zd3GeqPHhJC#30651218 - Mark Setchell
@MarkSetchell 我明白了,这很不幸。感谢您的尝试! - Gigi Bayte 2
7个回答

7

这是一个已知问题:Pygame不兼容MacOS Mojave #555

根据评论,该问题只在pygame1.9.5版本中已修复。

更新: 它应该适用于python 3.6.5。


刚刚意识到这个错误在 Python 3.6.5 中无法重现。 - jctim

6

昨晚我也遇到了和你一样的问题。当执行一个非常简单的pygame代码来让小球在窗口中弹跳时,没有任何的窗口被加载。

其他成员提供的解决方法是安装一个新版本的pygame,在我的情况下,安装pygame库最新的beta版本v2.0。

这里有安装OS X Mojave上python3的shell代码:

pip3 install pygame=2.0.0.dev6

2

Pygame在Python 3.7.3上仍然无法正常工作,pygame版本为1.9.5,在OS X Mojave 10.14.3上也是如此。

因此,pygame 1.9.5并不能解决这个问题。

在一个简单的测试程序中(见下文),窗口打开,窗口标题有效,但没有任何内容被绘制。

最初的回答:

import pygame
import sys
pygame.init()

screen = pygame.display.set_mode((612,792))
pygame.display.set_caption("This works!")

red = (255,0,0)
screen.fill(red)

# point (0,0) is at upper left                                                             
pygame.draw.lines(screen,black,False,[(100,100),(150,200),(200,100)], 1)

pygame.display.update() #nothing is drawn

while (True):
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit(); sys.exit();


1
使用Python 3.8时无法加载图像。 在执行pip3 install pygame==2.0.0.dev10后正常工作。

这对我有用。现在所有pygame版本≥2.0.0都应该兼容(https://github.com/pygame/pygame/issues/555)```pip install pygame --upgrade```以获取最新版本。 - Damian Satterthwaite-Phillips

0

对我来说,我需要安装

Python 3.6 和 Pygame 1.9.6

在macOS Mojave 10.14.6上,此外我还需要添加pygame.display.update()


0

对我来说,我在使用pip3安装pygame版本1.9.6后,必须在Python页面上安装Python版本3.6.0。

这对我有效。


-1

我认为你忘记了使用pygame.display.update()来更新屏幕。 此外,对于pygame.draw.rect(win, (255,0,0), (50,50,50,50)), 这意味着你在(50,50)处绘制一个矩形(前两个参数),宽度和长度均为50像素(后两个参数)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接