坦克大战python_基于Python的坦克大战小游戏
一。背景介绍
90后小伙伴应该对坦克大战这款游戏很熟悉吧!!这款经典游戏,笔者小时候玩过无数次,大多数时候都是和小伙伴们一起开玩,相信对很多人来说,这款游戏还是记忆深处的珍藏品。当然,现在大家更热衷于英雄联盟、王者农药这样的游戏了。今天就和大家一起分享下,用python的pygame库制作的坦克大战游戏。
二。游戏介绍
打开游戏后是熟悉的主界面,关卡为两关,场景有石墙、钢墙和树林,其中红色土石墙(子弹可以打通),白色钢板(子弹打不通),树林坦克进去可以隐藏(子弹不隐藏),大本营由土墙包围,内部有老鹰的图腾,敌方坦克有三种,分别为 普通坦克、移速慢血多、移速快血少,打红色坦克会产生食物 不同的食物有不同的效果(子弹加速、大本营加固成钢板、坦克生命+1等)。我方坦克和敌方坦克出生会有简单特效。
当地方坦克全部死亡时 出现 Congratulations 字样,当我方坦克生命数为0或者大本营被击毁时 出现 Game Over 字样。
三。游戏文件
游戏代码部分由bullet.py、food.py、home.py、scene.py、tanks.py、main.py这六个文件组成,分别代表子弹、奖励物品、基地、场景、坦克及主文件。整个游戏主要基于Pygame库进行开发,各模块均用函数进行封装,以增强复用性,主文件的部分代码如下所示:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import sys
import os
import pygame
import scene
import bullet
import food
import tanks
import home
from pygame.locals import *
# 开始界面显示
def show_start_interface(screen, width, height):
tfont = pygame.font.Font('./font/times.ttf', width//4)
cfont = pygame.font.Font('./font/times.ttf', width//20)
title = tfont.render(u'Tank War', True, (255, 0, 0))
content1 = cfont.render(u'Press 1 for one player', True, (0, 0, 255))
content2 = cfont.render(u'Press 2 for two players', True, (0, 0, 255))
trect = title.get_rect()
trect.midtop = (width/2, height/4)
crect1 = content1.get_rect()
crect1.midtop = (width/2, height/1.8)
crect2 = content2.get_rect()
crect2.midtop = (width/2, height/1.6)
screen.blit(title, trect)
screen.blit(content1, crect1)
screen.blit(content2, crect2)
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_1:
return 1
if event.key == pygame.K_2:
return 2
# 结束界面显示
def show_end_interface(screen, width, height, is_win):
bg_img = pygame.image.load("./images/others/background.png")
screen.blit(bg_img, (0, 0))
if is_win:
font = pygame.font.Font('./font/times.ttf', width//10)
content = font.render(u'Congratulations!', True, (255, 0, 0))
rect = content.get_rect()
rect.midtop = (width/2, height/2)
screen.blit(content, rect)
else:
fail_img = pygame.image.load("./images/others/gameover.png")
rect = fail_img.get_rect()
rect.midtop = (width/2, height/2)
screen.blit(fail_img, rect)
pygame.display.update()
while True:
for event in pygame.event.get():
if event.type == QUIT:
sys.exit()
除了代码文件外,游戏文件还包含音乐、字体、图片等文件,最终游戏的效果也非常接近小时候的味道~~
感兴趣的小伙伴可以关注“320科技工作室”的微信公众号,找管理员(qq:3045552826,微信:CAE320)获取源文件~~
坦克大战python_基于Python的坦克大战小游戏相关推荐
- 飞机大战游戏python_基于Python的飞机大战游戏
基于 Python 的飞机大战游戏 杨铠 [期刊名称] <电脑迷> [年 ( 卷 ), 期] 2017(000)021 [摘要] 我们每天都享受到科技带来的好处 , 了解计算机编程对每个人 ...
- 基于Python实现的滑雪小游戏设计
资源下载地址:https://download.csdn.net/download/sheziqiong/86781951 资源下载地址:https://download.csdn.net/downl ...
- 基于 Python 制作吃豆豆小游戏(文档和源码~)
游戏简介: 玩家通过 ↑↓←→ 键控制游戏的主角吃豆人吃掉藏在迷宫内的所有豆子,并且不能被鬼魂抓到. 若能顺利吃完迷宫内的所有豆子并且不被鬼魂抓到,则游戏胜利,否则游戏失败. 实现过程~: Step1 ...
- python 游戏开发框架_Python开发 基于python实现坦克大战游戏
这篇文章主要为大家详细介绍了基于python实现坦克大战游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 本文实例为大家分享了python实现坦克大战游戏的具体代码, ...
- 基于python的飞机大战游戏设计与实现
基于python的飞机大战游戏设计与实现,采用MySQL+pygame+Tkinter实现飞机大战游戏,主要功能有注册+登录+游戏初始化(开始游戏+游戏操作说明+版权信息)+游戏主界面[设置敌机种类并 ...
- c 语言500行小游戏代码,500行代码使用python写个微信小游戏飞机大战游戏.pdf
500行行代代码码使使用用python写写个个微微信信小小游游戏戏飞飞机机大大战战游游戏戏 这篇文章主要介绍了500行代码使用python写个微信小游戏飞机大战游戏,本文通过实例代码给大家介绍的非常详 ...
- python点名代码_基于python tkinter的点名小程序功能的实例代码
基于python tkinter的点名小程序功能的实例代码,花名册,次数,窗口,未找到,初始化 基于python tkinter的点名小程序功能的实例代码 易采站长站,站长之家为您整理了基于pytho ...
- python登录界面源码_基于Python的自媒体小助手---登录页面的实现代码
核心技术:Python3.7 GUI技术:Tkinter (Python已经内置) 好多文章写Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 我看了N遍也没够好多东西都没有就基 ...
- 基于Python的人机博弈象棋游戏的设计与实现
源码获取:https://www.bilibili.com/video/BV1Ne4y1g7dC/ 基于Python的人机博弈象棋游戏的设计与实现
- 基于python的游戏设计与实现-基于Python的网络中国象棋游戏设计与实现
基于Python的网络中国象棋游戏设计与实现 摘要中国象棋是一种家喻户晓的棋类游戏,随着互联网时代的到来,人们的娱乐方式也逐渐向PC端和移动端上发展.本文将传统的中国象棋游戏和当下的互联网技术结合作为 ...
最新文章
- Kali linux 2016.2(Rolling)中metasploit的端口扫描
- 今天 CSDN 编辑器的一个惊人的变化
- 3.分布式文件系统HDFS之二
- ABAP更改程序的请求包操作
- Leedcode4-sort listnode 归并排序
- 操作系统之文件管理:6、文件的基本操作(创建文件、打开文件、删除文件、关闭文件、读文件、写文件)
- wpf treeview调整子菜单间距_完全由C编写,高度可移植,超级牛逼的菜单架构!...
- flex 学习笔记 皮肤(一)
- java代码操作注册表,java操作注册表范例代码
- 参观云栖小镇体会_云栖小镇感受
- 阶段2 JavaWeb+黑马旅游网_15-Maven基础_第2节 maven的安装和仓库种类_04maven的安装...
- 基于ASP.NET的网上驾校管理系统设计与实现
- 计算机打印共享打印机,教您电脑打印机共享怎么设置
- 聊天记录软件工作记录
- 英特尔PX3网吧解决方案体验会在京举行(转)
- word中图片不显示怎么办
- python怎么使用库里的pi_python怎么调用pi
- php微信小程序毕业设计 php后台驾校考试小程序毕业设计开题报告功能参考
- hexo如何进行hexo的博客编写
- R语言笔记一:R软件的下载、界面简介、帮助文档
热门文章
- mysql实现了四种通信协议_MySQL 通信协议
- 【图像检索】基于matlab GUI Hu不变矩图像检索【含Matlab源码 1508期】
- 【肌电信号】基于matlab GUI脉搏信号处理系统【含Matlab源码 1062期】
- 【电路仿真】基于matlab Simulink光伏太阳能电池板仿真模型【含Matlab源码 771期】
- 计算机物联网软件工程,关于计算机物联网的应用分析
- 在access中一列称为_ACCESS考试_笔试
- apollo源码分析 感知_Scikit-Learn 源码研读 (第一期)项目结构介绍
- nginx upstream配置_效率倍增!网易杭研Nginx自动扩缩容实践
- android中listview没有item也能点击事件,ListView中的Item不能点击的解决方法
- 无土栽培中的物联网技术应用