炉是一把火 2022-06-13 11:06 采纳率: 100%
浏览 45
已结题

pygame blit函数

import pygame
import random
import itertools
import sys

SCREENWIDE = 822
SCREENHEIGHT = 199
FPS = 30  

class MyMap():

    def __init__(self, x, y):
        # 加载背景图片
        self.bg = pygame.image.load("image/bg.png").convert_alpha()
        self.x = x
        self.y = y

    def map_rolling(self):
        if self.x < -790:  # 小于-790说明地图已经完全移动完毕
            self.x = 800  # 给地图一个新的坐标点
        else:
            self.x -= 5  # 5个像素向左移动

    # 更新地图
    def map_update(self):
        SCREEN.blit(self.bg, (self.x, self.y))

def mainGame():
    score = 0
    over = False
    global SCREEN, FPSCLOCK  
    pygame.init()  # 初始化
    FPSCLOCK = pygame.time.Clock()
    SCREEN = pygame.display.set_mode((SCREENWIDE, SCREENHEIGHT))  # 设置窗体大小
    pygame.display.set_caption('玛丽冒险')  # 窗体标题
    bg1 = MyMap(0, 0)
    bg2 = MyMap(800, 0)
    while True:
        for event in pygame.event.get():  # 循环监听
            if event == pygame.quit():
                pygame.quit()
                sys.exit()
        if over == False:
               bg1.map_update()
               bg1.map_rolling()
               bg2.map_update()
               bg2.map_rolling()
     

if __name__ == '__main__':
    mainGame()


抄了一个pygame的案例,在使用blit函数让地图移动的时候为什么会报错啊

img

  • 写回答

1条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-06-13 12:00
    关注

    if event == pygame.quit():
    这句写错了,quit()是退出pygame,等于你还没运行,就把程序关了
    应该写成
    if event.type == pygame.QUIT:

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 6月21日
  • 已采纳回答 6月13日
  • 创建了问题 6月13日

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料