如何将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)
答案 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()
中尝试的任何事情。