May-18-2020, 03:49 PM
Hello, I have recently started following a pygame flappy bird tutorial series.
In the code that he shows in the tutorial he loads a few images, I have downloaded them and put them in a file just like he did but whenever I run the code that is in the tutorial I get this error:
Error:Traceback (most recent call last):line 10, in <module>
bird_imgs = [pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "bird1.png")))]
pygame.error: Couldn't open imgs\bird1.png
here is the code that i wrote by now:
import os import random import pygame import time import neat win_width = 600 win_height = 800 bird_imgs = [pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "bird1.png"))), pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "bird2.png"))), pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "bird3.png")))] pipe_img = pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "pipe.png"))) base_img = pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "base.png"))) bg_img = pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "bg.png"))) class Bird: imgs = bird_imgs max_rotation = 25 rotation_velocity = 20 animation_time = 5 def __init__(self, x, y): self.x = x self.y = y self.tilt = 0 self.tick_count = 0 self.vel = 0 self.height = self.y self.img_count = 0 self.img = self.imgs[0] def jump(self): self.vel = -10.5 self.tick_count = 0 self.height = self.y def move(self): self.tick_count += 1 d = self.vel*self.tick_count + 1.5*self.tick_count**2 if d >= 16: d = 16 if d < 0: d -= 2 self.y = self.y + d if d < 0 or self.y < self.height + 50: if self.tilt < self.max_rotation: self.tilt = self.max_rotation else: if self.tilt > -90: self.tilt -= self.rotation_velocity def draw(self, win): self.img_count *= 1 if self.img_count < self.animation_time: self.img = self.imgs[0] elif self.img_count < self.animation_time*2: self.img = self.imgs[1] elif self.img_count < self.animation_time*3: self.img = self.imgs[2] elif self.img_count < self.animation_time*4: self.img = self.imgs[1] elif self.img_count == self.animation_time*4 + 1: self.img = self.imgs[0] self.img_count = 0 if self.tilt <= -80: self.img = self.imgs[1] self.img_count = self.animation_time*2 rotated_image = pygame.transform.rotate(self.img, self.tilt) new_rect = rotated_image.get_rect(center=self.img.get_rect(topleft = (self.x, self.y)).center) win.blit(rotated_image, new_rect.topleft) def get_mask(self): return pygame.mask.from_surface(self.img) def draw_window(win, bird): win.blit(bg_img, (0,0)) pygame.display.update() def main(): bird = Bird (200, 200) win = pygame.display.set_mode((win_width, win_height)) run = True while run: for event in pygame.event.get(): if event.type == pygame.QUIT: run = False draw_window(win, bird) pygame.quit() quit()
here are the links to the episodes of the series that i watched by now:
https://www.youtube.com/watch?v=MMxFDaIOHsE&t=213shttps://www.youtube.com/watch?v=ps55secj7iU
If it helps, I use the pycharm IDE.
Can someone please help me or tell me if im doing something wrong?