学习Python,最好的办法是实战,实战!我们知道,有无数的先人和大侠提供了非常多的软件包供我们选用。有时候学习是一件很枯燥的事,玩游戏就不一样了。我们玩的最多的游戏是别人开发的,能不能开发出一款自己的游戏呢?当然大型游戏是不太现实的,用二三天事件写一个飞机大战的游戏还是有可能的。
直接上效果图,由于自己一边玩一边抓图,可能抓不出最好的效果,先上两张吧。


好了,为什么要上图呢?都说有图有真相,对吧,不然大家以为你嘴把式。其实这里上图不光是有图有真相,而是让大家看看游戏中大概有哪些元素。
好了,有哪些元素呢?我放飞机(可以有多种)、敌方不同种类的飞机,发射不同的子弹或导弹,敌机坠毁后可能掉出来弹药包啊,医药包啊啥的,英雄战机能捡到就可以用。捡不到就浪费了。背景是流动的星空,哪些白点星星向下按照不同的速度移动,营造出战机在太空的氛围(为了更好的太空氛围,有兴趣的朋友可以自己调试一下相关参数,一定会有更逼真的效果)。
小结一下,飞机大战的元素有如下几点:
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'

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

被折叠的 条评论
为什么被折叠?



