Python游戏之Pygame——太空飞机大战(一)

本文介绍了如何使用Python的Pygame库创建一个简单的太空飞机大战游戏。内容包括游戏元素如英雄战机、敌机、子弹、道具和星空背景的介绍,以及配置文件和Bullet类的设计。游戏采用分层显示功能,并鼓励读者通过扩展配置文件来增加游戏的多样性和挑战性。

学习Python,最好的办法是实战,实战!我们知道,有无数的先人和大侠提供了非常多的软件包供我们选用。有时候学习是一件很枯燥的事,玩游戏就不一样了。我们玩的最多的游戏是别人开发的,能不能开发出一款自己的游戏呢?当然大型游戏是不太现实的,用二三天事件写一个飞机大战的游戏还是有可能的。
直接上效果图,由于自己一边玩一边抓图,可能抓不出最好的效果,先上两张吧。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200519174555107.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhc19hX2NvZGVy,size_16,color_FFFFFF,t_70#pic_center
在这里插入图片描述
在这里插入图片描述
好了,为什么要上图呢?都说有图有真相,对吧,不然大家以为你嘴把式。其实这里上图不光是有图有真相,而是让大家看看游戏中大概有哪些元素。
好了,有哪些元素呢?我放飞机(可以有多种)、敌方不同种类的飞机,发射不同的子弹或导弹,敌机坠毁后可能掉出来弹药包啊,医药包啊啥的,英雄战机能捡到就可以用。捡不到就浪费了。背景是流动的星空,哪些白点星星向下按照不同的速度移动,营造出战机在太空的氛围(为了更好的太空氛围,有兴趣的朋友可以自己调试一下相关参数,一定会有更逼真的效果)。
小结一下,飞机大战的元素有如下几点:
1、英雄战机
2、敌机
3、英雄战机发射的子弹(可能有子弹、导弹、核弹等),当然敌机只能发射子弹和导弹。不然危机时刻咋干他呢?
4、敌机掉出来的宝贝(各种啊,可以自己配制添加)
5、星空背景
当然,现在还没有说相关统计、得分啊什么的,有兴趣的朋友可以看完后自己添加。位置都留好了,窗口最上方一条高度为xx像素的空间已经留好了。哈哈
简单说一下,这个游戏也是用了 pygame的Layer 功能,不清楚的朋友可以看我上一篇文章(Python:模拟windows命令按钮——一文学习Pygame分层显示)了解一下,非常简单。
为了程序的可扩展性和可读性,对飞机、子弹等使用配置文件给出相关参数,有兴趣的朋友可以通过扩展配置文件增加飞机种类、子弹类型等,让自己的游戏更加炫酷,而不需要更改任何代码。
部分配置文件如下:

IMAGE_PATH = "assets/images/"

ENEMY_BULLETS_TYPE = {
   
   1: 'EBULLET_1', 2: 'EBULLET_2'}
ENEMY_MISSILE_TYPE = {
   
   11: 'EMISSILE_1'}
HERO_BULLETS_TYPE  = {
   
   21: 'HBULLET_1', 22: 'HBULLET_2', 23: 'P_BULLET'}
HERO_MISSILES_TYPE = {
   
   31: 'HMISSILE_1', 32: 'HMISSILE_2'}
HERO_NECLEAR_TYPE  = {
   
   41: 'NUCLEAR'}

BULLETS = {
   
   
    'EBULLET_1' : {
   
   'IMAGE': 'enemy_B01.png', 'SPEED':  16, 'DESTROY_VALUE': 10,    'SP_FACTOR': 1, 'LAYER': 10},
    'EBULLET_2' : {
   
   'IMAGE': 'enemy_B02.png', 'SPEED':  16, 'DESTROY_VALUE': 10,    'SP_FACTOR': 1, 'LAYER': 10},
    'EMISSILE_1': {
   
   'IMAGE': 'enemy_M01.png', 'SPEED':  16, 'DESTROY_VALUE': 50,    'SP_FACTOR': 1, 'LAYER': 10},
    'HBULLET_1' : {
   
   'IMAGE': 'hero_B01.png',  'SPEED': -22, 'DESTROY_VALUE': 30,    'SP_FACTOR': 1, 'LAYER': 10},
    'HBULLET_2' : {
   
   'IMAGE': 'hero_B02.png',  'SPEED': -22, 'DESTROY_VALUE'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值