Pygame空白的白色屏幕

时间:2018-04-02 19:07:59

标签: python pygame

我是pygame的新手,并试图模拟一个学校项目的乒乓球桌,首先绘制顶点和线条。当我运行代码时,pycharm只在pygame窗口中显示一个空白的白色屏幕,python不会给我任何错误,不知道我做错了什么。有什么建议吗?

import pygame
from pygame.locals import *
from OpenGL.GL import *
from OpenGL.GLU import *

verts = (
    (-1,-1,-1),
    (-1,-1,1),
    (-1,1,-1),
    (-1,1,1),
    (1,-1,-1),
    (1,-1,1),
    (1,1,-1),
    (1,1,1)
    )
edges = (
    (0,1),
    (0,2),
    (0,3),
    (0,4),
    (2,1),
    (2,3),
    (2,7),
    (6,3),
    (6,4),
    (6,7),
    (5,1),
    (5,4),
    (5,7)
    )
areas = (
    (0,1,2,3),
    (3,2,7,6),
    (4,5,1,0),
    (1,5,7,2),
    (4,0,3,6)
    )
def table():
    glBegin(GL_QUADS)

    for surf in areas:
        glColor3fv((0,0,255))
        for vert in surf:
            glVertex3fv(verts[vert])
    glEnd()


def main():
    pygame.init()
    display = (1000,800)
    screen = pygame.display.set_mode(display,DOUBLEBUF|OPENGL)
    gluPerspective(45,(display[0]/display[1]), 0.1,50.0)
    glTranslatef(-20,-10,-50)
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()
        glRotatef(0,0,0,0)
        glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT)
        table()
        pygame.display.flip()
        pygame.time.wait(60)
        red = [255,0,0]
        screen.fill(red)
        display.fill[red]

main()

3 个答案:

答案 0 :(得分:0)

您的代码缩进看起来很糟糕。 Python缩进是运行代码的基础。

在您的代码中,某些函数名称和函数似乎也很奇怪。与调用 Table() 一样,例如调用 table() (python区分大小写)。

答案 1 :(得分:0)

def main():的最后三行更改为:

red = [255,0,0]
screen.fill(red)
display.fill[red]

到两行:

glClearColor(0.7, 0, 0, 1)
glClear(GL_COLOR_BUFFER_BIT)

答案 2 :(得分:0)

我不知道您面对的是什么,但是我已经运行了很多游戏,而pygame的效果很好。

最近,我的Mac进行了更新,并使用python固定。我再次安装了pygame,并尝试运行我创建的游戏,该游戏之前非常有效。屏幕全是白色的。音乐运行良好,游戏也运行正常,因为我可以听到按钮按键发出的声音。

在终端中没有日志记录错误可以解释。您会认为游戏运行良好。

如果您的问题像我的一样,则可能有人搞砸了发布。