学习Python之小练习(飞机大战)(1)

其实,我个人认为:学习一门语言,首先要有兴趣,才会有学下去的动力。

以前还在纠结到底该学习Java还是C++,但是开始学习了Java之后,你就会发现:语言并不重要,重要的是思路。

在你学会一门语言的基础之上,再去学习其他语言,基本上会很快掌握。


言归正传,先说一下,本人是信息安全专业的,平时对信息提取分析的需求比较多,所以学习Python。

然后越来越发现,Python可以做很多事情,比如快捷整理文档,找到想要的数据。

如果想让工作效率更高,建议学Python。


学习Python第一周,找了个小练习,飞机大战的游戏,一步步学习,一步步分享。

不论想用代码实现什么功能之前,先做需求分析,只有做好了需求分析,才不会出现重新写的问题。


那么现在就来聊聊飞机大战这个游戏:(ps:没玩过的自己检讨一下啊!)

先来分析一下里面的元素,大家应该都知道动态画面是由于静态图片高频率的刷新形成的。

所以:游戏画面我们可以看成一张张静态图。

那么第一步,我们先需要找到一个容器来放这些画面,

在这里,我们叫做创建游戏窗口。


要创建游戏窗口,我们需要用到  pygame  这个模块。

第一步:导入模块

import pygame as pygame

第二步:我们就需要用模块来创建游戏窗口

在这里我们要注意:初始化pygame模块调用 pygame.init()方法,关闭库用pygame.quit()方法

一般是成对出现的。

pygame.init()

pygame.quit()

在这两行代码的中间开始编写游戏代码,

那么我们初始化模块以后,就需要创建游戏窗口,这里需要用到

pygame.display.set_mode()

set_mode会返回一个Surface对象,代表了在桌面上出现的那个窗口,三个参数第一个为元祖,代表分 辨率(必须);第二个是一个标志位,如果不用什么特性,就指定0;第三个为色深。当我们把第二个参数设置为FULLSCREEN时,就能得到一个全屏窗口了

返回的屏幕对象我们用 fly_screen 来接收

# 定义飞机大战游戏窗口,设置窗口宽高
fly_screen = pygame.display.set_mode((480,700))

*  窗口大小根据我们的背景图片像素大小设置就好


第二步,我们设置背景图片,分为三步

  • 加载图像数据
  • blit方法绘制图像
  • update更新屏幕显示

下面粘上代码

# 绘制背景图像
# 1.加载图像数据
background = pygame.image.load("./images/background.png")
# 2.blit方法绘制图像
fly_screen.blit(background,(0,0))
# 3.update更新屏幕显示
# pygame.display.update()

注意:

  • image.load方法参数要写上正确的图片路径,返回对象要进行接收
  • 调用游戏窗口对象.blit方法要传入图片参数,以及要放的坐标
  • 必须进行update更新屏幕显示

下面贴上坐标方式

游戏窗口坐标
标题

第三步,绘制飞机图像

步骤同第二步类似,直接贴上代码

# 绘制飞机图像
fly_hero = pygame.image.load("./images/me1.png")
fly_screen.blit(fly_hero,(200,500))
pygame.display.update()

注意:

  • 图片路径换成自己的就可以
  • 很重要的一点,在最后需要设置一个游戏循环

游戏循环:因为Python代码是从上向下执行的,为了让我们看到游戏窗口的展示效果,需要先设置一个循环

代码如下:

# 游戏循环
while True:
    pass

pygame.quit()

放在pygame.quit()前面

注意:如果有多个update,只需要保留最后一个即可。


时间有限,今天就到这里,明天继续。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生于尘埃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值