Merhabalar ben bir vdeodan izleyerek hareketli kamera mantığını anlamaya çalışıyordum buraya kadar geldim ve videodaki kişi kod bu durumdayken çalıştırdığında bir hata almadan çalıştı ama ben alttaki ss’deki hatayı alıyorum. Ayrıca bu kodların tamamı o videodan alıntıdır.
import pygame
import sys
sys.path.append("/")
from random import randint
class Tree(pygame.sprite.Sprite):
def __init__(self, pos, group) -> None:
super().__init__(group)
self.image = pygame.image.load("tree.png")
self.rect = self.image.get_rect(topleft = pos)
class Player(pygame.sprite.Sprite):
def __init__(self, pos, group) -> None:
super().__init__(group)
self.image = pygame.image.load("player.png").convert_alpha()
self.rect = self.image.get_rect(center = pos)
self.direction = pygame.math.Vector2()
self.speed = 5
def input(self):
keys = pygame.key.get_pressed()
if keys[pygame.K_UP]:
self.direction.y = -1
elif keys[pygame.K_DOWN]:
self.direction.y = 1
else:
self.direction.y = 0
if keys[pygame.K_RIGHT]:
self.direction.x = 1
elif keys[pygame.K_LEFT]:
self.direction.x = -1
else:
self.direction.x = 0
def update(self):
self.input()
self.rect.center += self.direction * self.speed
class CameraGroup(pygame.sprite.Sprite):
def __init__(self) -> None:
super().__init__()
pygame.init()
pencere = pygame.display.set_mode((1280,720))
clock = pygame.time.Clock()
# setup
camera_group = pygame.sprite.Sprite()
Player((640,360), camera_group)
for i in range(20):
random_x = randint(0, 1000)
random_y = randint(0, 1000)
Tree((random_x, random_y), camera_group)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
pencere.fill(("#71ddee"))
camera_group.update()
camera_group.draw(pencere)
pygame.display.update()
clock.tick(60)
Hata Mesajı:
Gerekli Fotoğraflar: