blit pygame.Surface()到pygame.OPENGL显示

时间:2016-10-23 20:34:18

标签: python pygame

如何将pygame.Surface()对象blit到pygame.OPENGL显示并翻转显示?

import pygame

pygame.init()

RES = (640, 480)
display = pygame.display.set_mode(RES, pygame.FULLSCREEN | pygame.OPENGL)

bg_img = pygame.Surface(RES)
bg_img.fill((255, 255, 255))

display.blit(bg_img, (0, 0))
pygame.quit()
sys.exit()

给了我

Traceback (most recent call last):
  File "C:/Game Dev/TESTS/Clock Comparison/opengl_test.py", line 12, in <module>
    display.blit(bg_img, (0, 0))
error: Cannot blit to OPENGL Surfaces (OPENGLBLIT is ok)

1 个答案:

答案 0 :(得分:1)

你做不到。 为了避免这个错误,在运行如下代码之后,显示表面需要使用merge_test_1 = t(data.frame(cats = 1, dogs = 2, horses = 4)) merge_test_2 = t(data.frame(horses = 1, dogs = 3, rabbits = 2)) merge(merge_test_1, merge_test_2, by = 0, all = TRUE) #> Row.names V1.x V1.y #> 1 cats 1 NA #> 2 dogs 2 3 #> 3 horses 4 1 #> 4 rabbits NA 2 标志而不是pygame.OPENGLBLIT标志,但是

pygame.OPENGL

显示窗口仍为空白

pygame文档将此标志列为:

  

创建一个OpenGL渲染上下文/   并用它来进行blitting。已过时。

您需要找到一种方法来代替您在import pygame import sys pygame.init() RES = (640, 480) display = pygame.display.set_mode(RES, pygame.OPENGLBLIT) bg_img = pygame.Surface(RES). bg_img.fill((255, 255, 255)) display.blit(bg_img, (0, 0)) pygame.display.flip() input() pygame.quit() sys.exit() 中尝试的任何事情。