问题描述:mac下python3版本安装pygame后开发小游戏时,背景和角色在画布上不加载,创建游戏循环执行时,一直加载背景不刷新;

pygame相对比较简单,直接上代码:

import pygame

# 游戏的初始化

pygame.init()

# 创建游戏的窗口 480 * 700

screen = pygame.display.set_mode((480, 700))

# 绘制背景图像

bg = pygame.image.load("./images/background.png")

screen.blit(bg, (0, 0))

# pygame.display.update()

# 绘制英雄的飞机

hero = pygame.image.load("./images/me1.png")

screen.blit(hero, (150, 300))

# 可以在所有绘制工作完成之后,统一调用update方法

pygame.display.update()

# 创建时钟对象

clock = pygame.time.Clock()

# 1. 定义rect记录飞机的初始位置

hero_rect = pygame.Rect(150, 300, 102, 126)

# 游戏循环 -> 意味着游戏的正式开始!

while True:

# 可以指定循环体内部的代码执行的频率

clock.tick(60)

# 2. 修改飞机的位置

hero_rect.y -= 1

# 判断飞机的位置

if hero_rect.y <= 0:

hero_rect.y = 700

# 3. 调用blit方法绘制图像

screen.blit(bg, (0, 0))

screen.blit(hero, hero_rect)

# 4. 调用update方法更新显示

pygame.display.update()

pygame.quit()

问题分析&解决:

1、开始设置画布时候就感觉到有些不对,一直感觉加的while循环不太对,后来尝试time.sleep还是一直加载画布,后来前边去掉while循环,画布上设置的飞机和背景一闪即逝,当时想反正闪的那一下看到了,方法没问题,不管继续干,后来终于干不下去了;

2、弄到windows跑完全没问题,然后linux也没问题;

最后想了下还是网上找了下结果,然后说是mac下不兼容,要不系统降级(然后心头一凉,开啥玩笑)。

然后另一套方案是安装conda虚拟一套环境,当时我就否决了;一套conda环境能吃掉多少内存从我windows下红红的磁盘空间我就怕怕了,而且mac下我本身虚拟了三套virtualenv环境,外加虚拟机我是决然不会冒这个风险的,再次否决二连;

后来终于看到有人说while循环部分加上如下代码就可以:

import pygame

while True:

event = pygame.event.poll()

if event.type == pygame.QUIT():

pygame.quit()

exit()

clock.tick(60)

然后我加了,然后给我报了一个:

if event.type == pygame.QUIT():

TypeError: 'int' object is not callable

至此已经给了我否认三连,最终我分析了代码,既然event监听时间在这里起了作用,不妨一试,于是按照event方法加上如下代码:

event_list = pygame.event.get()

if len(event_list) > 0:

print(event_list)

捕获以下时间看看,然后竟然就ok之前while循环问题就解决了;

关键部分就是while循环中的事件捕获;

import pygame

# 游戏的初始化

pygame.init()

# 创建游戏的窗口 480 * 700

screen = pygame.display.set_mode((480, 700))

# 绘制背景图像

bg = pygame.image.load("./images/background.png")

screen.blit(bg, (0, 0))

# pygame.display.update()

# 绘制英雄的飞机

hero = pygame.image.load("./images/me1.png")

screen.blit(hero, (150, 300))

# 可以在所有绘制工作完成之后,统一调用update方法

pygame.display.update()

# 创建时钟对象

clock = pygame.time.Clock()

# 1. 定义rect记录飞机的初始位置

hero_rect = pygame.Rect(150, 300, 102, 126)

# 游戏循环 -> 意味着游戏的正式开始!

while True:

# 可以指定循环体内部的代码执行的频率

# 捕获事件

event_list = pygame.event.get()

if len(event_list) > 0:

print(event_list)

# event = pygame.event.poll()

# if event.type == pygame.QUIT():

# pygame.quit()

# exit()

clock.tick(60)

# 2. 修改飞机的位置

hero_rect.y -= 1

# 判断飞机的位置

if hero_rect.y <= 0:

hero_rect.y = 700

# 3. 调用blit方法绘制图像

screen.blit(bg, (0, 0))

screen.blit(hero, hero_rect)

# 4. 调用update方法更新显示

pygame.display.update()

pygame.quit()

#修改后的代码,继续完善中;

python3 pygame load图片不显示_Python——mac下pygame踩坑,绘制图像不加载相关推荐

  1. Mac下Charles踩坑记录

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  2. Github图片无法显示解决(Mac版)

    标题Github图片无法显示解决(Mac版) [问题如下]: [解决] 及时更新github.com等一些域名对应的ip地址 ip地址查询网址,在该网址查询对应域名对应的ip,如: mac下:执行命令 ...

  3. Atitit.png 图片不能显示 php环境下

    Atitit.png 图片不能显示 php环境下 1.1. 不能显示png 下载png 检查使用bcompare与正常png对比.. 多了bom头 , "\xEF\xBB\xBF" ...

  4. 绿联USB对拷线MAC版使用经验踩坑分享(支持macOS11 BigSur系统及以下)

    目录 绿联USB对拷线MAC版使用经验踩坑分享 官网安装说明 准确的安装流程 注意事项 资源下载 绿联USB对拷线MAC版使用经验踩坑分享 不得不说因为这个对拷线的使用说明极其简陋,导致我一度怀疑人生 ...

  5. gmail cid图片不显示_python爬虫:爬取男生喜欢的图片

    任务目标: 1.抓取不同类型的图片 2.编写一个GUI界面爬虫程序,打包成exe重新文件 3.遇到的难点 1.分析如何抓取不同类型的图片 首先打开网站,可以看到有如下6个类型的菜单 在这里插入图片描述 ...

  6. Mac下pygame代码没有错误,但是游戏窗口死活不出现,程序坞小火箭闪动

    第一篇博客: 写了一个pygame的代码,但是运行后连最基本的游戏界面都不出现,控制台代码没有错,截图如下: 转存失败重新上传取消正在上传-重新上传取消出现这种原因是python版本和pygame版本 ...

  7. mac安装python环境教程_python mac下安装虚拟环境的图文教程

    Mac 下 Flask 框架 workon命令找不到 ---- 最终解决方案(详解具体实现操作过程中遇到的坑)2018年08月17日 00:02:05Jasonmes阅读数:622 Mac 下 Fla ...

  8. mac python3.8怎样安装scrapy_Python爬虫与mac下Scrapy配置

    用Python开发爬虫很方便. 本质:抓取---分析---存储 要点: (1)get请求:最基本抓取.用到 urllib  urllib2  requests  httplib2 . (2)表单登陆: ...

  9. Mac 下安装 Python-OpenCV Python-OpenCV 处理图像(一):基本操作

    首先确保已经安装了Python Mac 下可以直接使用 brew 来安装OpenCV,具体步骤如下: # add opencv brew tap homebrew/science# install o ...

最新文章

  1. exec函数族的使用
  2. php css下划线,如何自定义下划线的样式
  3. Java 线程池的介绍以及工作原理
  4. 数据库原理及应用【三】DBMS+SQL
  5. 下面选项中不是开发java程序的步骤是_Java基础试题及其答案2
  6. ddt python_python-ddt实践
  7. SpringBoot之获取配置文件中的数据
  8. 三层架构+ajax分页实例,ASP.NET存储过程实现分页效果(三层架构)
  9. python decorator. decorator_decorator在Python中的作用
  10. iPad常用的目录路径
  11. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(6)- Bootable image格式与加载(elftosb/.bd)...
  12. Python中利用scipy库进行最小二乘回归分析(金融相关)
  13. 【UE编辑器怎么添加新的语法高亮】
  14. xpath爬取美女图片
  15. 新世纪音乐——天籁之音
  16. 小米路由器 mini 有线中继设置教程
  17. 关于‘\0’,‘0’,“0”,0的区别
  18. 关于《深圳市龙华区技能人才扶持办法(试行)》的政策解读
  19. HDU 6608 FansBlog(粉丝博客)(MillerRabin算法+威尔逊算法)
  20. java包图标变白纸怎么解决_桌面图标变成一张白纸怎么办?

热门文章

  1. 带你掌握不同平台下,探索JDK源码所需的native方法
  2. Linux如何进行GPIO读写操作的?
  3. 30亿参数,华为云发布全球最大预训练模型,开启工业化AI开发新模式
  4. 【乘风破浪的开发者】丁一超:从AI实战营出发探索未知的AI世界
  5. 华为:与全球180万云与计算开发者共成长,共创行业新价值
  6. 干货分享丨玩转物联网IoTDA服务系列五-智能家居煤气检测联动
  7. 【华为云技术分享】【论文阅读】增量学习近期进展及未来趋势预测
  8. 机器学习笔记(十一)----降维
  9. 老兵的十年职场之路(一)
  10. 人人学IoT 助学思维导图