Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Melaksanakan Tatal Lancar dalam Permainan Platformer Pygame?
Tambah Tatal ke Platformer dalam Pygame
Dalam permainan platformer, pemain menavigasi melalui tahap sementara kedudukan mereka pada skrin kekal di tengah. Kesan ini dicapai melalui penatalan, yang membolehkan dunia permainan bergerak secara bebas daripada kedudukan pemain.
Melaksanakan Penatalan:
Untuk melaksanakan penatalan dalam Pygame, gunakan Kamera kelas yang mentakrifkan offset antara dunia permainan dan kedudukan pemain. Offset ini kemudiannya digunakan pada kedudukan semua entiti permainan apabila ia dilukis pada skrin.
Mencipta Kelas Kamera:
class Camera: def __init__(self, camera_func, width, height): self.camera_func = camera_func self.state = Rect(0, 0, width, height) def apply(self, target): return target.rect.move(self.state.topleft) def update(self, target): self.state = self.camera_func(self.state, target.rect)
Fungsi Kamera:
Ada adalah pelbagai cara untuk melaksanakan camera_func:
Memusatkan Pemain:
def simple_camera(camera, target_rect): l, t, _, _ = target_rect # l = left, t = top _, _, w, h = camera # w = width, h = height return Rect(-l + HALF_WIDTH, -t + HALF_HEIGHT, w, h)
Mengekalkan Tahap Sempadan:
def complex_camera(camera, target_rect): x = -target_rect.center[0] + WIN_WIDTH/2 y = -target_rect.center[1] + WIN_HEIGHT/2 camera.topleft += (pygame.Vector2((x, y)) - pygame.Vector2(camera.topleft)) * 0.06 # add some smoothness coolnes camera.x = max(-(camera.width-WIN_WIDTH), min(0, camera.x)) camera.y = max(-(camera.height-WIN_HEIGHT), min(0, camera.y)) return camera
Memohon Tatal ke Entiti:
Untuk menggunakan penatalan, nyatakan kelas Kamera dan panggil kemas kininya dan gunakan kaedah dalam gelung permainan utama:
# Create the camera camera = Camera(complex_camera, total_level_width, total_level_height) # Update the camera camera.update(player) # Apply scrolling to all entities for e in entities: screen.blit(e.image, camera.apply(e))
Tambahan Pertimbangan:
Dengan mengikuti langkah ini, anda boleh melaksanakan penatalan dalam platformer Pygame anda dan mencipta pengalaman yang lancar dan menarik untuk pemain.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Tatal Lancar dalam Permainan Platformer Pygame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!