你好,我是悦创。前面我们开始的为期 30天的更新挑战第一篇,接下来我们是第二篇。第一篇的课程视频,也已经在微信公众号里面了。上一篇的链接:mp.weixin.qq.com/s/Fth21WgO6… ,为了防止字数和代码操作 70%,要复制代码的小伙伴可以点击此链接访问:mp.weixin.qq.com/s/T03GJ0F1F…
目录
- 载入图片、调整大小
- 图片显示规则
- 足球反弹
1. 载入图片、调整大小
案例 1:新建文件,准备好两个图片文件(可自行下载喜欢的图片,这两个图片完整文件名已经改为
football.png和background.jpg),三个文件放同一文件夹内。然后编码进行图片载入和调整大小。
为了,方便后续的阅读,退出处理部分已经写成函数 quit() 写成函数部分,我在零基础一对一部分已经讲解过了,这里不做过多的解释了。
代码解析:
- pygame 中的图像相关函数在 image 里,载入使用
load()。 - 载入时填写图片完整名称,载入时的图片数据被视为一个表面(surface),这个面可以改变坐标和大小。
- 显示图片时,使用创建的屏幕来显示(PS:我们的东西肯定是放在屏幕上面来显示的)所以这里用了 screen,显示函数是
blit(),它有两个参数,分别是要显示的面和这坐标。
2. 图片显示规则
- 在 pygame 中采用屏幕左上角为坐标原点,向下为 y 正方向,向右为 x 正方向。
-
显示图片的时候指定图片坐标,也是图片的左上角,surface 默认
(0, 0)。 -
先显示的图片会被后面显示的图片覆盖住,所以背景图片要先显示。
bg = pygame.image.load('background.jpg')
bg = pygame.transform.smoothscale(bg, (600, 400))
screen.blit(bg, (0, 0)) # 从左上角开始显示背景图片
为了,防止小白不理解,不知到代码放在哪里,下面放上代码图片:
注意:
载入背景图片后,设定为窗口一样的大小,然后将坐标设为 (0, 0) ,此时正好铺满背景。
3. 足球反弹
案例 2: 让足球在球场中运动,碰到边界就反弹,在原理的代码上做如下的修改。
我来提示一下:
我们知道图片显示的位置依靠坐标来定决定,那么坐标变化就意味着图片的运动。
图片坐标要变化,写定的数值显然是不可以的,所以用变量来表示坐标和对应的速度。
碰到边界实际上就是坐标超出了屏幕的大小了,需要注意图片上下左右的坐标,要考虑图片的尺寸。
这里我就直接放在完整代码:
关注公众号:AI悦创,加微信:Jiabcdefh