Python 我在pygame中有几个错误,需要帮助

Python 我在pygame中有几个错误,需要帮助,python,pygame,Python,Pygame,这是我的第一篇帖子,请原谅我的错误。我使用的是Python版本3.8.2,代码中有一些错误我还没有弄清楚。我正在使用windows电脑。我是Python新手。我一直在努力学习一个制作飞禽AI的教程。完整的代码在底部。我想如果把我有错误的地方隔开会更容易。希望有人能帮助我,因为我不确定我能做些什么来修正我的错误 当我输入(dir(pygame))时,它表示无法启动设备PRN 我正在尝试从我的C驱动器上的文件中获取图像。我遇到的第一个错误是: Exception has occurred:

这是我的第一篇帖子,请原谅我的错误。我使用的是Python版本3.8.2,代码中有一些错误我还没有弄清楚。我正在使用windows电脑。我是Python新手。我一直在努力学习一个制作飞禽AI的教程。完整的代码在底部。我想如果把我有错误的地方隔开会更容易。希望有人能帮助我,因为我不确定我能做些什么来修正我的错误

当我输入(dir(pygame))时,它表示无法启动设备PRN

我正在尝试从我的C驱动器上的文件中获取图像。我遇到的第一个错误是:

    Exception has occurred: error
Couldn't open
"C:\Python\Flapy_bird_ai.py" line 12, in <module>


BIRD_IMGS = [pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "C:/Python/Flappy.zip/imgs/bird1.png"))), 

pygame.transform.scale2x(pygame.image.load(os.path.join("imgs","C:/Python/Flappy.zip/imgs/bird2.png,


pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "C:/Python/Flappy.zip/imgs/bird3.png" )))]
这是我所有的代码

import pygame
import neat
import os
import random

WIN_WIDTH = 500
WIN_HEIGHT = 800


BIRD_IMGS = [pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "C:/Python/Flappy.zip/imgs/bird1.png"))), pygame.transform.scale2x(pygame.image.load(os.path.join("imgs","C:/Python/Flappy.zip/imgs/bird2.png"))), pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "C:/Python/Flappy.zip/imgs/bird3.png" )))]
PIPE_IMG = pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "C:/Python/Flappy.zip/imgs/pipe.png")))
BASE_IMG = pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "C:/Python/Flappy.zip/imgs/base.png")))
BG_IMG = pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "C:/Python/Flappy.zip/imgs/bg.png")))

class Bird:
    IMGS = BIRD_IMGS
    MAX_ROTATION = 25
    ROT_VEL = 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.ROT_VEL

    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

        rotaded_image = pygame.transform.rotate(self.img, self.tilt)
        new_rect = rotaded_image.get_rect(center=self.img.get_rect(topLeft = (self.x, self.y)).center)
        win.blit(rotaded_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))
    bird.draw(win)
    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
        bird.move()

        draw_window(win, bird)

    pygame.quit()
    quit()

main()
导入pygame
输入整洁
导入操作系统
随机输入
宽度=500
WIN_高度=800
BIRD_IMGS=[pygame.transform.scale2x(pygame.image.load(os.path.join(“IMGS”、“C:/Python/Flappy.zip/IMGS/bird1.png”)))、pygame.transform.scale2x(pygame.image.load(os.path.join(“IMGS”、“C:/Python/Flappy.zip/IMGS/bird2.png”))、pygame.transform.scale2x(pygame.image.load(os.path.join(“IMGS”、“C:/Python/Flappy.zip/IMGS/bird3.png”))]
PIPE\u IMG=pygame.transform.scale2x(pygame.image.load(os.path.join(“imgs”,“C:/Python/Flappy.zip/imgs/PIPE.png”))
BASE_IMG=pygame.transform.scale2x(pygame.image.load(os.path.join(“imgs”,“C:/Python/Flappy.zip/imgs/BASE.png”))
BG_IMG=pygame.transform.scale2x(pygame.image.load(os.path.join(“imgs”,“C:/Python/Flappy.zip/imgs/BG.png”))
类鸟:
IMGS=鸟
最大旋转=25
ROT_等级=20
动画时间=5
定义初始化(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\u计数=0
self.img=self.IMGS[0]
def跳转(自):
self.vel=-10.5
self.tick_count=0
self.height=self.y
def移动(自我):
self.tick_count+=1
d=自我水平*self.tick\u计数+1.5*self.tick\u计数**2
如果d>=16:
d=16
如果d<0:
d-=2
self.y=self.y+d
如果d<0或self.y-90:
自倾斜-=自旋转水平
def抽签(自我,赢):
self.img_计数+=1
如果self.img\u计数如果self.tilt我没有发表评论的名声,那么如果有人能发表评论,那他会很有帮助

@亚历克斯,安装pygame是
pip安装pygame
import pygame
是一个Python命令,用于导入pygame模块,允许您使用pygame函数

编辑:我不认为PyGame可以在进一步检查错误后将zip文件作为常规目录打开


编辑2:@Alex,您是否使用支持Python的visual studio代码版本?VS在2017年或更高版本上支持Python开箱即用。(我想)

我没有发表评论的名声,所以如果有人能发表评论,他会非常有帮助

@亚历克斯,安装pygame是
pip安装pygame
import pygame
是一个Python命令,用于导入pygame模块,允许您使用pygame函数

编辑:我不认为PyGame可以在进一步检查错误后将zip文件作为常规目录打开


编辑2:@Alex,您是否使用支持Python的visual studio代码版本?VS在2017年或更高版本上支持Python开箱即用。(我想)

除了第76行的语法错误(
topleft
,而不是
topleft
),这个代码对我来说“有效”。(它只是在窗口上显示垃圾,但没有引用错误。)您使用的是某种IDE(比如PyCharm)吗?看起来PyGame没有正确安装。当您只需键入
导入pygame
,Python控制台中会发生什么情况?@Kingsley我正在Windows上使用Visual Studio代码。当我在VisualStudio终端中键入import pygame时,它说导入:术语“导入”不能识别为cmdlet、函数、脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。在第1行char:1+import pygame+CategoryInfo:ObjectNotFound:(import:String)[],CommandNotFoundException+FullyQualifiedErrorId:CommandNotFoundException“我不知道这是什么意思。@Kingsley当我转到命令提示符并执行“pip import pygame”时,我得到”已满足要求:c:\python\python下载\lib\site软件包(1.9.6)“错误链接:除了第76行的语法错误(
topleft
,而不是
topleft
)之外,这段代码对我来说“有效”(它只是在窗口上显示垃圾,但没有给出引用的错误)。你在使用某种IDE(比如PyCharm)吗?PyGame似乎未正确安装。当您仅键入
导入PyGame
时,Python控制台中会发生什么情况?@Kingsley我正在Windows上使用Visual Studio代码。当我在Visual Studio终端中键入import PyGame时,它说“导入:术语“导入”不能识别为cmdlet、函数、脚本文件的名称,或可操作程序。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。在第1行char:1+import pygame+CategoryInfo:ObjectNotFound:(import:String)[],CommandNo
import pygame
import neat
import os
import random

WIN_WIDTH = 500
WIN_HEIGHT = 800


BIRD_IMGS = [pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "C:/Python/Flappy.zip/imgs/bird1.png"))), pygame.transform.scale2x(pygame.image.load(os.path.join("imgs","C:/Python/Flappy.zip/imgs/bird2.png"))), pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "C:/Python/Flappy.zip/imgs/bird3.png" )))]
PIPE_IMG = pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "C:/Python/Flappy.zip/imgs/pipe.png")))
BASE_IMG = pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "C:/Python/Flappy.zip/imgs/base.png")))
BG_IMG = pygame.transform.scale2x(pygame.image.load(os.path.join("imgs", "C:/Python/Flappy.zip/imgs/bg.png")))

class Bird:
    IMGS = BIRD_IMGS
    MAX_ROTATION = 25
    ROT_VEL = 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.ROT_VEL

    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

        rotaded_image = pygame.transform.rotate(self.img, self.tilt)
        new_rect = rotaded_image.get_rect(center=self.img.get_rect(topLeft = (self.x, self.y)).center)
        win.blit(rotaded_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))
    bird.draw(win)
    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
        bird.move()

        draw_window(win, bird)

    pygame.quit()
    quit()

main()