坦克大战程序(学Python得练手,经典坦克大战完整项目开发与分享)

学Python得练手,经典坦克大战完备项目开发与分享

学Python,得练手。仅有履历实真着实的项目磨炼,才干将加深对语法的了解,才干将册本知识内化成知识和履历。

步骤的天下是其乐无量的,玩游戏不如开发游戏,步骤员一言不合就本人开发。

经典坦克大战

坦克大战,既经典又简便,十分合适初学者练手储存武艺。从中不仅可以了解编程的兴致,还可以快速创建步骤头脑、框架头脑和逻辑头脑。作为Python初学者,最少在以下方面取得快速入门:

  • 基本把握Python的步骤运转框架。
  • 加深劈面向目标编程的了解,包含类变量、实例变量等。
  • 熟习和把握pygame模块中心功效的使用。
  • 了解游戏的开发、运转原理。

闲话少说,底下简述开发历程:

一.搜集资源

游戏就是一一局部机交互的历程,是利用者对图片的利用,以及游戏对图片、声响等资源的呼应和不休改造的历程。

开发游戏第一步,要找到坦克大战游戏所必要的各种资源,包含我方坦克、敌方坦克、我方子弹、敌方子弹、墙壁、铁墙、爆炸图等图片,另有背景音乐、开炮音效、game over音效等声响资源。

网上有一些零散的资源,必要较大精力去搜集和整理,有局部还要收钱才干下载。我搜集了完备的坦克大战游戏开发所需资源,眷注+私信后可无偿分享。

二、功效计划

1.坦克挪动

我方坦克依据键盘(上、下、左、右)按下事变举行挪动,场合坦克随机确定朝向和速率举行挪动,并均受一定条件限定,好比碰撞坦克、碰撞墙壁、碰撞边沿,均要举行活动限定和调停。

2.发射子弹

我方坦克依据键盘(空格)事变发射子弹,场合坦克主动发射子弹,子弹朝向与坦克活动朝向一律。并要得当控制子弹发射频率,由于盘算机运转速率十分快,连环炮是的发射就不是坦克了。

3.加载墙壁

可在游戏场景中加载平凡墙壁和钢铁墙壁,平凡墙壁被子弹击中会死亡,钢铁墙壁被子弹击中不产生厘革,大概遭到多量射击后再行死亡,可在游戏中设置超等兵器,设置强力火力,增长兴致。

4.碰撞检测

我方子弹与敌方坦克、敌方子弹与我方坦克需举行碰撞检测,产生碰撞则坦克和子弹都死亡。子弹与墙壁也要举行碰撞检测,子弹不克不及穿墙,产生碰撞,子弹死亡,平凡墙壁击毁。坦克与墙壁举行碰撞检测,坦克不克不及穿墙,产生碰撞,调停坦克运转朝向。我方坦克与敌方坦克也要举行碰撞检测,产生碰撞,则卡死不动,必要调停活动朝向。

5.加载音效

游戏启动(大概其他时间)就要加载背景音乐,并循环播放。音乐一同,成果和复古感就上去了。发射炮弹时要加载发射音效,我方坦克被击中要加载game over音效。

三、pygame中心功效的使用

导入pygame包之后,中心代码就以下四行:

pygame.display.init()
pygame.display.set_mode([SCREEN_WIDTH, SCREEN_HEIGHT])

pygame.Surface.blit(self.image, self.rect)

pygame.display.update()

游戏历程就是步骤不休地循环运转外表四行语句,正中不休举行条件检测,修正图片坐标。以是用Python写步骤好坏常便捷,可以快速奏效的。具体完成历程就不再赘述了,必要的可以看源码。

坦克大战源码

四、开发历程碰到的坑

1.成员变量的计划

因触及到类的承继,开发的历程对成员变量的计划和承继照旧有一些忐忑的,毕竟成员变量对否要在__init__(self)的参数列表中举行声明?初始化参数是在__init__(self)内里照旧外表?__init__(self)中初始化参数要不要加前缀self?未在__init__(self)参数列表中的参数可否被子类承继?这些成绩都市在开发历程中取得验证和厘清。本文就暂且不举行逐一解答,留给读者自行研讨吧。

2.碰撞检测

Pygame里有现成的精灵类sprite的
pygame.sprite.collide_rect(left,right)办法用于碰撞检测,在开发历程常常碰到分明坦克坐标未产生碰撞,但碰撞检测却不休检测产生了碰撞,大概一直检测不到碰撞。颠末反复研讨主要成绩照旧参数转达的成绩。

3.加载声响

加载声响主要使用pygame.mixer.music.load()和 pygame.mixer.music.play()两个办法,但运转时常常发觉两个声响不克不及同时加载,好比发射炮弹的时分加载发射音效,此时背景音乐就中止了。经研讨,可以使用两种音效加载办法,另一个办法是pygame.mixer.Sound(),一个循环播放,一个单次播放即可。

------------

本次开发也只完成了一个简便场景的坦克大战,步骤架构计划也存在一些不完满的场合,接待讨论交换和批评引导,感兴致的伙伴可以+眷注、私信,无偿分享源码、图片和音效资源。

坦克大战程序(学Python得练手,经典坦克大战完整项目开发与分享)

本站资源均来源于互联网,仅提供信息存储空间服务,用于学习交流,如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 dhh0407@outlook.com 举报,一经查实,本站将立刻删除。

本文链接:https://6wyx.com/post/244448.html

发表列表

评论列表

还没有评论,快来说点什么吧~