python飞机大战功能模块图_一、利用Python编写飞机大战游戏-面向对象设计思想...

#!/usr/bin/env python#coding=utf-8#author:刘仲#datetime:2018/7/11 9:58#software: PyCharm

importpygame

pygame.init()#加载pygame中的所有模块,这是一句固定的代码

screen = pygame.display.set_mode((480, 700)) #创建一个游戏窗口,屏幕大小480*700,这里一般背景图片多大,屏幕就设置多大

"""绘制背景图片步骤:1、图片一般事先存在本地磁盘里,所以我们把需要的图片先加载到内存中

2、将加载到内存的图片绘制到屏幕指定的位置

3、刷新屏幕显示,否则绘制的图片无法显示

制作动画:动画就是将多张静止的图片快速的播放,这里就涉及到帧数的问题,一般每秒60刷新60次就能制作高品质的动画。

所以,pygame中提供了一个时钟类,可以调用tick()方法控制帧数"""bg= pygame.image.load('./images/background.png') #加载背景图片到内存

im = pygame.image.load('./images/me1.png') #加载战机到内存

enemy1 = pygame.image.load('./images/enemy1.png') #加载敌机到内存

clock = pygame.time.Clock() #创建时钟对象

hero = pygame.Rect(200, 500, 102, 126) #创建一个和战机大小相等的矩形对象

#rect方法可以创建一个矩形对象,参数(x,y,weight,height),xy是原点位置,weight和height是矩形宽和高

enemy_1= pygame.Rect(200, 100, 57, 43) #创建一个和敌机大小的矩形对象

#如何让游戏屏幕一直显示,这就叫游戏循环,把所有更新图片位置,刷新帧数,监听事件都写在游戏循环里

whileTrue:

clock.tick(60) #每秒刷新60次

for event in pygame.event.get(): #监听用户做的各种操作,pygame.event.get()返回来的是一个用户操作的动作列表

if event.type == pygame.QUIT: #判断用户是否点击退出按钮,即游戏窗口的叉叉

print('游戏退出...')

pygame.quit()#卸载所有pygame的模块

exit() #退出整个系统

hero.y -= 2 #战机以2的速度向上移动

enemy_1.y += 1 #敌机以1的速度乡下移动

screen.blit(bg, (0, 0)) #将背景图片绘制到屏幕,绘制就调用屏幕对象的blit方法

#(疑问:屏幕图像不是固定的吗,也没有去改变y值,

#为何放在循环里?这是因为每次循环都需要重新绘制一遍屏幕,再将飞机的图片绘制到新的屏幕上,这样就不会出现飞机残影)

screen.blit(im, hero)#将战机绘制到屏幕

screen.blit(enemy1, enemy_1) #将敌机绘制到屏幕

pygame.display.update() #这句也是固定代码,更新屏幕显示,否则无法显示绘制好的图片

pygame.quit() #游戏退出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值