だから、私は Pygame を使って Python で 2D トップビュー ゲームを作っています。プレイヤーが画面の中央に留まるようなカメラの動きを作成しようとしています。どうすればいいですか?画面の表面にブリットされる単一の表面に「マップ」を入れたいと思います。そうすることで、一度マップを作成してから、プレイヤーが常に画面の中央に留まるように位置を調整することができます。私のプレーヤーは、次のように位置を更新します。
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。私がここで尋ねていることを理解していただければ幸いです。英語は私の母国語ではありません。=)