[PyGame] Error: Couldn't open image - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Game Development (https://python-forum.io/forum-11.html) +--- Thread: [PyGame] Error: Couldn't open image (/thread-26919.html) |
Error: Couldn't open image - DotGuy - May-18-2020 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:
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?
RE: Error: Couldn't open image - michael1789 - May-18-2020 Check to make sure that you have a folder called "imgs", not "images" or "img" in the same folder as the main python file your are writing. The code looks like it works, but the file it is looking for isn't where it is looking. See perhaps if the files you downloaded are still in a folder, inside the "imgs" folder. The error is something like this. It looks like your code matches his, so it is most likely a simple error/typo in how you named or located things. RE: Error: Couldn't open image - DotGuy - May-18-2020 thank you michael1789 it worked!
|