因此,我正在使用 Pygame 在 Python 中制作一个 2d 顶视图游戏。我一直在尝试创建一个让玩家保持在屏幕中央的摄像机运动。我该怎么做?我想将“地图”放在一个单一的表面上,这将被 blit 到屏幕表面。如果这样做,我可以只构建一次地图,然后以某种方式调整它的位置,以便玩家始终保持在屏幕的中心。我的播放器更新它的位置是这样的:
def update(self, dx=0, dy=0):
newpos = (self.pos[0] + dx, self.pos[1] + dy) # Calculates a new position
entityrect = pygame.Rect(newpos, self.surface.get_size()) # Creates a rect for the player
collided = False
for o in self.objects: # Loops for solid objects in the map
if o.colliderect(entityrect):
collided = True
break
if not collided:
# If the player didn't collide, update the position
self.pos = newpos
return collided
我找到了这个,但那是针对侧视平台游戏的。所以我的地图看起来像这样:
map1 = pygame.Surface((3000, 3000))
img = pygame.image.load("floor.png")
for x in range(0, 3000, img.get_width()):
for y in range(0, 3000, img.get_height()):
map1.blit(img, (x, y))
那么我将如何进行相机移动呢?任何帮助,将不胜感激。
PS。我希望你能明白我在这里问什么,英语不是我的母语。=)