我是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()
答案 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,并尝试运行我创建的游戏,该游戏之前非常有效。屏幕全是白色的。音乐运行良好,游戏也运行正常,因为我可以听到按钮按键发出的声音。
在终端中没有日志记录错误可以解释。您会认为游戏运行良好。
如果您的问题像我的一样,则可能有人搞砸了发布。