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

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 04:00
    关注

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    炉是一把火 2022-06-13 04:53

    感谢问哥!!

    回复
    请叫我问哥 回复 炉是一把火 2022-06-13 04:54

    仔细看了一下,你的这个代码好像没写全吧?后面少了update(),你是看不到图像的

    回复
    炉是一把火 回复 请叫我问哥 2022-06-14 07:24

    这个我已经自己发现了,感谢

    回复
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 6月20日
  • 已采纳回答 6月13日
  • 创建了问题 6月13日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部