我正在制作一个平台,我想让用户调整屏幕大小,但没有边界(因此游戏不是固定比例)。但是我不知道最好的实现方法,我所有的版本都非常慢(大约8 fps)
这是我的尝试
def video_resize(self):
self.fit_to_rect = self.blit_surf.get_rect().fit(self.screen.get_rect()) # fit the surface to the screen
self.fit_to_rect.size = self.fit_to_rect.width * self.neutralizerZoom * self.zoom, self.fit_to_rect.height * self.neutralizerZoom * self.zoom # add zoom
def update(self):
scaled = transform.scale(self.blit_surf, (self.fit_to_rect.width, self.fit_to_rect.height)) # scale surface to screen
self.fit_to_rect.topleft = self.screen.get_rect().top + self.cameraPos[0], self.screen.get_rect().left + self.cameraPos[1] # center surface & camera pos
self.mousePos[0] = (mouse.get_pos()[0] / (scaled.get_width() / self.blit_surf.get_width())) - (self.cameraPos[0] / (scaled.get_width() / self.blit_surf.get_width())) # scale x axis mouse pos
self.mousePos[1] = (mouse.get_pos()[1] / (scaled.get_height() / self.blit_surf.get_height())) # scale y axis mouse pos
#scaled = scaled.subsurface(self.fit_to_rect.x, self.fit_to_rect.y, self.fit_to_rect.x + self.fit_to_rect.width, self.fit_to_rect.y + self.fit_to_rect.height)
#self.screen.blit(scaled ,(0, 0)) # blit surface to screen
self.screen.blit(scaled, (self.fit_to_rect.x, self.fit_to_rect.y, self.fit_to_rect.width, self.fit_to_rect.height))
display.flip() # update screen
self.clock.tick(60)
这样调整屏幕大小最有效的方法是什么
不要在每一帧中缩放曲面。调整大小时缩放曲面一次:
相关问题 更多 >
编程相关推荐