1.前言

由于前面学习了使用pygame的简单操作,现在学习当前的pygame怎么加载图片,并实现动画效果

2.首先在当前的界面中加载一个图片

使用的图片为:

# 使用当前的pygame加载图片import pygame, syspygame.init()
screen = pygame.display.set_mode([640, 480])
screen.fill([255, 255, 205])
img = pygame.image.load("noavatar_small.gif")
screen.blit(img, [50, 50])
pygame.display.flip()while True:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()

结果:

1.当前的加载图片需要使用pygame.image.load("noavatar_small.gif"),加载图片

2.将图片映射到界面上:screen.blit(img, [50, 50])

3.简单的让图片动起来

# 使用当前的pygame加载图片import pygame, syspygame.init()
screen = pygame.display.set_mode([640, 480])
screen.fill([255, 255, 205])
img = pygame.image.load("noavatar_small.gif")
screen.blit(img, [50, 50])
pygame.display.flip()
pygame.time.delay(2000)
screen.blit(img, [150, 50])
pygame.draw.rect(screen, [255, 255, 205], [50, 50, 90, 90], 0)
pygame.display.flip()while True:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()

结果:

1.当前的移动就是将原来的图片位置复制到移动的位置,然后将旧位置的图片变成背景颜色即可!

2.还是通过screen.blit(img, [150, 50])复制图片到新的位置,通过pygame.draw.rect将原来的位置的图片变为背景颜色

3.pygame.time.delay(20)就是表示动画刷新的时间

4.让图片循环的动起来(左右动起来)

# 使用当前的pygame加载图片import pygame, syspygame.init()
screen_x = 640
screen_y = 480
init_x = 50
init_y = 50
screen = pygame.display.set_mode([screen_x, screen_y])
screen.fill([255, 255, 205])
img = pygame.image.load("noavatar_small.gif")
img_width = 48
img_height = 48
screen.blit(img, [init_x, init_y])
pygame.display.flip()
# flag_reverse = True
x_speed = 5while True:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()pygame.time.delay(20)pygame.draw.rect(screen, [255, 255, 205], [init_x, init_y, 90, 90], 0)# if init_x >= screen_x - img_width:#     flag_reverse = False# elif init_x <= 0:#     flag_reverse = True# if flag_reverse:#     init_x = init_x + 5# else:#     init_x = init_x - 5init_x = init_x + x_speed# init_y = init_y + y_speedif init_x > screen.get_width() - img_width or init_x < 0:x_speed = -x_speedscreen.blit(img, [init_x, init_y])pygame.display.flip()

图片:

这里的动画就是判断边界即可

5.让当前的图片动起来2

# 使用当前的pygame加载图片import pygame, syspygame.init()
screen_x = 640
screen_y = 480
init_x = 50
init_y = 50
screen = pygame.display.set_mode([screen_x, screen_y])
screen.fill([255, 255, 205])
img = pygame.image.load("noavatar_small.gif")
img_width = 48
img_height = 48
screen.blit(img, [init_x, init_y])
pygame.display.flip()
x_speed = 5
y_speed = 5while True:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()pygame.time.delay(20)pygame.draw.rect(screen, [255, 255, 205], [init_x, init_y, 90, 90], 0)init_x = init_x + x_speedinit_y = init_y + y_speedif init_x > screen.get_width() - img_width or init_x < 0:x_speed = -x_speedif init_y > screen.get_height() - img_height or init_y < 0:y_speed = -y_speedscreen.blit(img, [init_x, init_y])pygame.display.flip()

6.创建障碍物

# 使用当前的pygame加载图片
# 让图片在指定的墙上反弹
import pygame, syspygame.init()
screen_x = 640
screen_y = 480
init_x = 50
init_y = 50
screen = pygame.display.set_mode([screen_x, screen_y])
screen.fill([255, 255, 205])
img = pygame.image.load("noavatar_small.gif")
img_width = 48
img_height = 48
screen.blit(img, [init_x, init_y])
# 创建一个 指定的墙
# pygame.draw.rect(screen, [0, 0, 0], [200, 200, 10, 200], 1)
pygame.display.flip()
flag_reverse = True
x_speed = 5
y_speed = 5while True:for event in pygame.event.get():if event.type == pygame.QUIT:sys.exit()pygame.time.delay(20)pygame.draw.rect(screen, [255, 255, 205], [init_x, init_y, 90, 90], 0)init_x = init_x + x_speedinit_y = init_y + y_speedif init_x > screen.get_width() - img_width or init_x < 0:x_speed = -x_speedif init_y > screen.get_height() - img_height or init_y < 0:y_speed = -y_speedif (init_x >= 320 - img_width and init_x <= 325) \and (init_y >= 80 - img_width and init_y <= 100):x_speed = -x_speedy_speed = -y_speedscreen.blit(img, [init_x, init_y])# 创建一个 指定的墙pygame.draw.rect(screen, [0, 0, 0], [320, 80, 5, 20], 1)pygame.display.flip()

注意这里使用的是集合的并集!
结果:

7.总结

1.在任何使用的时候都首先需要初始化当前的pygame:pygame.init()

2.在导入动画的时候需要使用:pygame.image.load()加载本地的图片

3.在需要在pygame.display.set_mode()设置当前的显示界面的大小

4.通过screen.fill()填充画布的背景颜色

5.通过pygame.draw.XXX方式画任何图形

6.如果想让指定的位置显示这个图片:screen.blit(img,[x,y])画这个图片在指定的位置

7.动画就是将原来的图片复制到新的位置,然后将原来的图片擦除(就是附上同样的背景颜色),需要pygame.time.delay(20),和pygame.draw.rect(screen)

Python3:pygame模块的简单的使用(加载图片并让图片动起来)相关推荐

  1. 简单的网络图片加载工具类

    简单的网络图片加载工具类 根据图片url网址解生成图片,首先解析图片的流信息,然后通过bitmapfactory工具类生成bitmap图片,设置到图片控件上即可,详情看代码 import androi ...

  2. c需要实现安装卸载Linux模块,Linux内核模块编译与加载

    Linux内核的整体结构非常庞大,其包含的组件也非常多,如何使用所需要的组件? 方法一: 把所有的组件都编译进内核文件,即Zlmage或bzlmage,但会导致两个问题:一是生成的内核文件过大:二是如 ...

  3. asp.net MVC发布iis无法加载css,js和图片

    今天真够郁闷的,遇到了在本地能运行的项目到了iis服务器那里就不行了,无法加载css,js和图片,这里说清楚一下先,关于asp.net 的MVC中这样的情况其实不少,但是之前遇到的是在visual s ...

  4. Android开发 - ImageView加载Base64编码的图片

    在我们开发应用的过程中,并不是所有情况下都请求图片的URL或者加载本地图片,有时我们需要加载Base64编码的图片.这种情况出现在服务端需要动态生成的图片,比如: 二维码 图形验证码 - 这些应用场景 ...

  5. 使用异步任务加载网络上的图片

    我们知道,如果要加载一个很耗时的操作,会阻塞主线程,这时我们可以想到开启一个新的线程,避免阻塞,在android中也有这样的问题,我们可以用异步任务来操作,异步任务也是开启一个线程,线程里面发一个消息 ...

  6. webview加载html图片不显示图片,WebView加载网页不显示图片解决办法

    对于大家来讲WebView肯定很熟悉,因为我们在日常开发中经常用到它.所以对于它的一些基本用法我就不在这啰嗦了,直接进入正题. 我遇到的问题就是在使用WebView加载网页的时候图片不显示(我手机系统 ...

  7. iframe懒加载_如何实现图片懒加载

    背景 图片懒加载是针对图片加载时机的一种优化,在一些图片量比较大的网站(比如电商网站首页,或者团购网站.小游戏首页等),如果我们尝试在用户打开页面的时候,就把所有的图片资源加载完毕,那么很可能会造成白 ...

  8. untiy加载一张本地图片到Image 精灵

    image组件需要一个精灵sprite来显示图片,所以我们要做的是把本地图片转为精灵 byte[] imgBuff = File.ReadAllBytes("图片的地址,带后缀") ...

  9. 什么事图片懒加载?如何实现图片懒加载?

    随着移动设备和网络技术的不断发展,网页设计也在不断地进化.其中,一项重要的技术就是图片懒加载(Lazy Load),它可以提高网站的加载速度和用户体验.本文将深入探讨图片懒加载的定义.原理.优势.实现 ...

最新文章

  1. Linux下PS1设置
  2. js通过ajax发送header信息php接收
  3. java mvc模式_Java MVC模式
  4. Java中Semaphore(信号量) 数据库连接池
  5. 关于pycharm+opencv没有代码提示的问题解决方法记录
  6. python访问数据库
  7. 线程知识点(一)—— 程序、进程、线程之间的区别与联系、Java的线程状态和生命周期
  8. flowable实现流程回退功能
  9. c语言文件读写_学生信息管理系统(C语言\单向链表\文件读写)
  10. 学习CGI之前,需要配置阿帕奇---windows
  11. java课设 五子棋_Java课程设计 ————五子棋 (个人博客)
  12. springmvc配置不拦截静态资源
  13. opencv裁剪图像(不规则裁剪)
  14. sql 获取当前日期的季度,年份,月份等日期部分
  15. php限制选择图片数量,ImagePicker组件,限制选择图片数量上限(selectable={images.length 3} )失败...
  16. html js聊天对话源码,javascript实现简易聊天室
  17. win10下自带输入法变为繁体字的原因及解决方法
  18. php+mysql企业员工培训管理系统dzkf87
  19. 如何删除无法删除的文件
  20. html代码劫持教程,记录一次 JavaScript解密(跳转劫持代码)全过程

热门文章

  1. python七大神级插件_Python常用插件之BeautifulSoup4使用
  2. qt通过Tcp和SQL实现仿qq的聊天软件
  3. 放置江湖服务器维护,放置江湖挂机收益如何最高 挂机收益最高时间分析[图]
  4. 牛刀小试基本语法,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang基本语法和变量的使用EP02
  5. Word中的公式显示不全,或许是这个原因
  6. word中插入图片只显示底边,其他看不到,插入公式显示不全
  7. 转载-java学习公众号15000 字的 SQL 语句大全
  8. GAL汉化界的一点实话。。。。。
  9. Cesium中加载Geojson
  10. Mysql语句执行逻辑