喜欢学习的轮子 2019-07-20 19:10 采纳率: 0%
浏览 849
已采纳

我用python搭建游戏为什么黑屏有一个解决方案吗?各位大佬

我创建的那个一张图片上下移动和敌机.但是屏幕一直黑.和别人的代码一样到底哪不行



    def __create_sprites(self):
        bg1 = BackGround()
        bg2 = BackGround(True)
        bg2.rect.y= -bg2.rect.height
        self.back_group = pygame.sprite.Group(bg1,bg2)
        self.enemy_group= pygame.sprite.Group



    def __event_handler(self):#监听
        for event in pygame.event.get():
            # 判断是否是点击了退出按钮
            if event.type == pygame.QUIT:
                PlaneGame.__game_over()
            elif event.type==CREATE_ENEMY:
                print("敌机出场")
                evemy = Enemy()
                self.enemy_group.add(1)

    def __check_collied(self):#碰撞检测
        pass
    def __update_sprites(self):#更新精灵
        self.back_groud.update()
        self.back_groud.draw(self.screen)

        self.enemy_group.update()
        self.enemy_group.draw(self.screen)

**游戏精灵模块**
import random

import pygame


SCREEN_RECT = pygame.Rect(0,0,400,600)

CREATE_ENEMY=pygame.USEREVENT


class GameSprites(pygame.sprite.Sprite):
    """飞机大战游戏精灵"""
    def __init__(self,image_name,speed=1):
        super().__init__()   #定义父类的初始化方法
        self.image = pygame.image.load(image_name)
        self.rect = self.image.get_rect() #get_rect设置窗口大小和图片大小一样
        self.speed = speed

    def update(self, *args):
        #在屏幕垂直方向上移动
        self.rect.y += self.speed

class BackGround(GameSprites):
    """游戏背景"""
    def __init__(self,is_out = False):
        pygame.display.set_caption("周彬大战菊花怪")
        if is_out:
            self.rect.y = -self.rect.y
    def update(self, *args):
        super().update()
        if self.rect.y >= SCREEN_RECT.height:
            self.rect.y = -self.rect.height



  • 写回答

2条回答 默认 最新

  • 毕小宝 博客专家认证 2019-07-21 05:57
    关注

    别人的代码能正常运行吗?如果是的话,还是要仔细比对一下区别。找个文本比对工具比对一下。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵