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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
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?