十分钟利用python_pygame做个小游戏_01

Pygame

在做这个游戏教程之前,我想了许久,觉得到底应该怎么做这个教程,是把每一个代码给大家讲清楚,还是直接讲如何去使用,后来我想了想,我自己也学习过许多的教程,给我最大的感受就是前期讲得太多,我完全记不住,过程太过无趣,所以我才想以项目入手,让大家感受pygame的乐趣,如果想要了解更多的内容,可以自己先去pygame的使用手册去查询,后续我也会通过项目去让大家学习更多

更要说的是,每个人的编程思维都不一样,有后有坏,如果你有更好的想法可以提出来,我们一起学习

简介

Pygame 简单理解,就是可以用他来做游戏,他相当于Python的一个库,Python有许多许多的库,每个库都有自己的功能,而它的功能就是做游戏

当然pygame需要安装,最简单的方法就是利用pip安装,这个太简单,或者是利用pycharm进行安装

Pygame的实际教程:

游戏是怎么形成的,他是根据图层的切换让你有种快速刷新的感觉,认为人物在进行移动,就像我们小时候的图层书,只要你翻的够快,就能让图像真正的动起来

详情请看飞机大战的演示

 

    1. 会移动超级玛丽

真正在做一个游戏之前,我们需要做一个环节示例

 

在网上选择一张你喜欢的背景图片和一个角色图,我们开始做

窗口

例如,我的就是这样,我的代码就在py里面写,

# 1,第一步,要用这个库肯定是先导库

import pygame

# 2,初始化方法,简单理解要用他得先初始化

pygame.init()

# 3,做游戏最重要的是什么,肯定是窗口,你连窗口都没有怎么玩

# 后面填的是列表,就是你要的分辨率

pygame.display.set_mode((400 ,400))

# 然后我们还得刷新,才能出来页面

# 以下两个都是刷新,不过filp只是会第一次刷新,而update则会一直刷新

# 二者选一即可
pygame.display.flip()
pygame.display.update()

如果你在安装了Python并配了环境变量的情况下,你可以用黑窗口运行了

注意到你的文件目录下

你会看见一个黑窗口一闪而过,那是因为Python从上到下执行完了所有程序,自然会关闭

那我们就要让代码永远不会停掉,直到我们强制性停止程序

加上while true,他就进入了死循环

这时再运行,你会发现你无法点击上面的x结束页面

而是要点击黑窗口的x才能结束

结束游戏

对于pygame来说,每一个点击都是一种事件,包括键盘,包括鼠标

而我们的鼠标点击刚好就是一个事件

此时你在点击窗口,就可以关闭了

添加一个角色


person = pygame.image.load('bgpic.png')

screen.blit(person,(
200,200))

结果:

移动角色

此时你执行完下面的代码后,你会发现他会往下跑,并且留下残影

我们的窗口是由x,与y组成的,左边和上面都是0,右边和下面是你设置的窗口最大值,也就是,最下面最右面就是400.400

screen = pygame.display.set_mode((400 ,400))

此时先说明残影的问题,那是因为他每隔1就会画一个角色,之前的角色我们并没有清除,这个时候就留下残影了

要解决的话也很简单。我们可以设置一个填充画面,每次画完一个新的主角后,我们就填充一个,通过快速的循环,是可以做出这样的效果的

填充背景

每次填充后,就会绘制一个主角,然后再填充覆盖掉以前的角色,这样我们就将完成了这个要求

If控制角色

角色的控制,要求他到达最下面的时候,又往上跑,到达最下面的时候又往下跑,这个我们要通过if来实现

这段代码还是很好理解的,当他到达最下面的时候speed= -1,这样就是每次-1了,就会往上走了

此时会有一个小问题,就是这个角色会到屏幕外面去

解决方法就是我们要用这个背景的长度,减掉角色的长度

可以看出角色的长度是246.

这样就完美解决了这个问题

此时我们发现主角太大了,pygame提供了缩放图片的方法

缩放图片

新问题来了,小是小了,但是他不会到最下面去了,因为我们的是if y > 400 - 246:

现在他的长已经不是246了,我们缩放是按照小数缩放的,我现在也不知道他是多大了,还好Python提供了获取大小的方法

获取大小

他返回的是两个参数,第一个是x,第二个你猜是什么

此篇教程就结束了,你可以删掉代码,自己重做一遍加上自己的想法,留个小问题,我们如何让他上下的更慢,评论区见

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值