我正在创建一个第一人称视角 RPG,我想在移动鼠标时在 PyOpenGL 中旋转相机(就像其他一些游戏,如 Minecraft)。我可以使用什么功能来做到这一点以及如何做到这一点?
我尝试使用gluLookAt()但我不明白它是如何工作的,尽管我经历了不同的来源。我什至不知道它是否有帮助。
import sys,pygame
from OpenGL.GL import *
from OpenGL.GLU import *
cmddown = False
#...
keypress = pygame.key.get_pressed()#Move using WASD
if keypress[pygame.K_w]:
glTranslatef(0,0,0.1)
if keypress[pygame.K_s]:
glTranslatef(0,0,-0.1)
if keypress[pygame.K_d]:
glTranslatef(-0.1,0,0)
if keypress[pygame.K_a]:
glTranslatef(0.1,0,0)
mouse_movement = pygame.mouse.get_rel()#Get mouse event
#This is where the "look around" should be happen
pygame.display.flip()
Run Code Online (Sandbox Code Playgroud) 我正在 PyOpenGL 中制作游戏,并希望将一些图像作为一些叠加(例如,暂停按钮)显示在屏幕上。我怎样才能做到这一点?
我试过使用glBitmap(),但它不起作用。
这就是我所拥有的:
pauseimg = pygame.image.load(path + "pause.png").convert_alpha()
def blit_image(x,y,w,h,img,r,g,b):
glColor3f(r,g,b)
glWindowPos2f(x,y)
glBitmap(w,h,0,0,0,0,img)
blit_image(300,300,313,115,pauseimg,1,1,1)
Run Code Online (Sandbox Code Playgroud)
我预计它会 blit 图像,但它抛出了一个异常:
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/OpenGL/latebind.py", line 41, in __call__
return self._finalCall( *args, **named )
TypeError: 'NoneType' object is not callable
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File ".py", line 438, in <module>
blit_image(300,300,313,115,pauseimg,1,1,1)
File ".py", line 135, in blit_image
glBitmap(w,h,0,0,0,0,img)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/OpenGL/latebind.py", line 45, in __call__
return self._finalCall( *args, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Pygame在Python中制作全屏游戏。我的问题是,在全屏模式下,我无法使用Command + Tab Mac系统组合键(已退出)。我也无法隐藏它。这是我的代码:
display = (1440,900)
pygame.init()
screen = pygame.display.set_mode(display, pygame.DOUBLEBUF | pygame.FULLSCREEN)
Run Code Online (Sandbox Code Playgroud)
我尝试过使用pygame.display.iconify()隐藏和最小化窗口的方式来跳出程序,但是它不能在全屏模式下工作,因为它会创建一个全屏黑色窗口。我也不想在执行此操作时切换全屏。