Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有人能告诉我我的代码有什么问题吗?我在调试时遇到问题_Python_Pygame - Fatal编程技术网

Python 有人能告诉我我的代码有什么问题吗?我在调试时遇到问题

Python 有人能告诉我我的代码有什么问题吗?我在调试时遇到问题,python,pygame,Python,Pygame,我正在尝试为学校项目制作一个游戏,你可以在屏幕的另一边射击敌人。我在调试时遇到了问题。我正在使用python和pygame。错误来自图像和播放器图像,我认为主要问题在于显示背景,因为这是我试图做的,这里是我的代码: import pygame, sys class Player(pygame.sprite.Sprite): def __init__(self): super().__init__(image) self.image = image

我正在尝试为学校项目制作一个游戏,你可以在屏幕的另一边射击敌人。我在调试时遇到了问题。我正在使用python和pygame。错误来自图像和播放器图像,我认为主要问题在于显示背景,因为这是我试图做的,这里是我的代码:

import pygame, sys

class Player(pygame.sprite.Sprite):
    def __init__(self):
        super().__init__(image)
        self.image = image
        self.rect = self.image.get_rect(center = (screen_width//2, screen_height//2))


        def update(self):
            self.rect.center = pygame.mouse.get_pos()

        def create_bullet(self):
            return Bullet(pygame.mouse.get_pos()[0].pygame.mouse.get_pos()[1])


class Bullet (pygame.sprite.Sprite):
    def __init__(self,pos_x,pos_y):
        super().def__init__()
        self.image = pygame.Surface((50,10))
        self.image.fill((255,0,0))
        self.rect = self.image.get_rect(center = (pos_x,pos_y))

    def update(self):
        self.rect.x += 5

# general setup
pygame.init()
clock = pygame.time.Clock()


# game screen
screen_width = 1920
screen_height = 1080
screen = pygame .display.set_mode((screen_width, screen_height))
background = pygame.image.load("BackGround.png")

# player
player = pygame.image.load("spriteshd00.png")
player = Player(player_image)
player_group = pygame.sprite.Group()
player_group.add(player)

bullet_group = pygame.sprite.Group()

# caption
pygame.display.set_caption("Wild-West Shooter")



# makes game quit
while True:
        for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame:quit()
                    sys.exit()
                if event.type == pygame.MOUSEBUTTONDOWN:
                    bullet_group.add(player.create_bullet())

        while True:
            # handel events
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    pygame: quit()
                    sys.exit()

            # update the game states and positions of objects
            player_group.update()

            # draw the background
            screen.blit(background, (0, 0))

            # draw objects
            player_group.draw(screen)

            # update display
            pygame.display.flip()

            clock.tick(120)


    #drawing
        pygame.display.flip()
        player_group.draw(screen)
        bullet_group.draw(screen)
        player_group.update()
        bullet.group.update()
        screen.blit(background,(0,0))
        clock.tick(120)





if __name__ == "__main__" :
        theApp = App()
        theApp.on_execute()


image
必须是
Player
的构造函数的参数:

职业玩家(pygame.sprite.sprite):
定义初始化(自):
super()。\uuuu init\uuuu(图像)
self.image=image
# [...]
_曲面的名称为
player_image


player=pygame.image.load(“spriteshd00.png”)

player\u image=pygame.image.load(“spriteshd00.png”)
player=player(player\u图像)
项目符号的构造函数中还有另一个输入错误

super()

super()
此外,还有一些结构性和结构性问题。完整的工作代码:

import pygame,sys
职业玩家(pygame.sprite.sprite):
定义初始化(自我,图像):
super()。\uuuu init\uuuuu()
self.image=image
self.rect=self.image.get_rect(中心=(屏幕宽度//2,屏幕高度//2))
def更新(自我):
self.rect.center=pygame.mouse.get_pos()
def创建_项目符号(自身):
返回项目符号(*pygame.mouse.get_pos())
类子弹(pygame.sprite.sprite):
定义初始(自我,位置x,位置y):
super()。\uuuu init\uuuuu()
self.image=pygame.Surface((50,10))
self.image.fill((255,0,0))
self.rect=self.image.get_rect(中心=(位置x,位置y))
def更新(自我):
自校正x+=5
#一般设置
pygame.init()
clock=pygame.time.clock()
#游戏屏幕
屏幕宽度=1920
屏幕高度=1080
screen=pygame.display.set_模式((屏幕宽度、屏幕高度))
background=pygame.image.load(“background.png”)
#玩家
player\u image=pygame.image.load(“spriteshd00.png”)
player=player(player\u图像)
player\u group=pygame.sprite.group()
玩家组。添加(玩家)
bullet\u group=pygame.sprite.group()
#标题
pygame.display.set_标题(“西部野手”)
#让游戏退出
尽管如此:
对于pygame.event.get()中的事件:
如果event.type==pygame.QUIT:
pygame:quit()
sys.exit()
如果event.type==pygame.MOUSEBUTTONDOWN:
bullet\u group.add(player.create\u bullet())
player_group.update()
bullet_group.update()
屏幕光点(背景,(0,0))
玩家组。抽签(屏幕)
bullet_组绘制(屏幕)
pygame.display.flip()
时钟滴答(120)

错误消息是什么?请显示错误跟踪。当您尝试运行代码时,到底发生了什么,这与应该发生的有什么不同?如果您收到错误消息,请将其复制并粘贴到问题中,格式为代码。如果视觉上出现了错误,请酌情提供屏幕截图和图表。我们只能帮助您解决我们实际知道的问题。
player=pygame.image.load(“spriteshd00.png”)
->
player\u image=pygame.image.load(“spriteshd00.png”)
第40行,在player=player(player\u image)name中错误:未定义名称“player\u image”