这里写目录标题

  • 一、项目整体说明
  • 二、pygame下载方式
  • 三、项目文件
    • 1、坦克大战_框架_1.py
    • 2、坦克大战_开始游戏_窗口设置_2.py
    • 3、坦克大战_事件检测_3.py
    • 4、坦克大战_基本坦克_我方坦克继承_4.py
    • 5、坦克大战_我方坦克贴图_5.py
    • 6、坦克大战_我方坦克移动_6.py
  • 四、API Pygame模块游戏开发所用语句

创作不易,各位看官,点个赞收藏、关注必回关、QAQ、您的点赞是我更新的最大动力!
坦克素材,项目整体文件,私聊我免费发


一、项目整体说明

#v1.01 开发日志 :

原理:和动画原理相同,快速切换图片,为了避免上一次贴图,每次刷新前,重贴所有图片
分级实现: 对应下图work项目文件图  文件后缀编号 V1 搭建整体框架                V2 设计主逻辑                    V3 主逻辑事件检测          V4 我方坦克分析               V5 创建我方坦克 并且加载贴图        V6 实现我方坦克 移动    整体实现:     实现键盘控制我方坦克上下左右移动 2020-05-13

分析.txt 部分截图 序号为程序编写步骤 对比py文件 比如#v5.1# v5.2# v5.4


二、pygame下载方式

  • 1.pip 安装

    • windows+R–>cmd–>命令行输入 pip install pygame
  • 2.pycharm中安装

    • file–>settting–>Project Interpreter–>右侧±-install–>搜索框输入pygame–>下方 install package
  • 3.下载好安装包之后直接安装

    • 在Python官网下载好pygame-1.9.6-cp37-cp37m-win_amd64.whl,打开命令窗口,切换到安装包目录,执行 pip install pygame-1.9.6-cp37-cp37m-win_amd64.whl
  • 使用 pip list 查看是否有pygame

三、项目文件

开始项目的时候先搭建整体框架

1、坦克大战_框架_1.py

  • 实现框架的搭建(类的设计)

    • 主逻辑类

    • 基本坦克类

    • 我方坦克类

    • 敌方坦克类

    • 子弹类

    • 墙壁类

    • 爆炸类

# 主逻辑类
class MainGame:def start(self):"""开始游戏"""passdef game_over(self):"""结束游戏"""pass# 基本坦克类
class BaseTank:pass# 我方坦克类
class HeroTank:pass# 敌方坦克类
class EnemyTank:pass# 子弹类
class Bullet:pass# 墙壁类
class wall:pass

2、坦克大战_开始游戏_窗口设置_2.py

v2
主逻辑类

属性:游戏窗口
方法:开始游戏 start()
- 窗口初始化
- 设置窗口
- 设置标题(坦克大战v_1.0)
- 窗口背景
- 游戏应该在无限循环

"""
项目:坦克大战
时间:2020-05-13
作者:稳稳
使用软件及版本:Pycharm python3.6 pygame1.9
"""# 主逻辑类
"""
主逻辑类属性:游戏窗口
方法:开始游戏 start()- 窗口初始化- 设置窗口- 设置标题(坦克大战v_1.0)- 窗口背景- 游戏应该在无限循环"""
import pygameclass MainGame:# 游戏主窗口window = Nonedef start(self):"""开始游戏"""# 调用窗口初始化pygame.display.init()# 创建窗口 set_mode("窗口宽,窗口高")MainGame.window = pygame.display.set_mode((900,500))# 设置窗口标题pygame.display.set_caption("坦克大战v_1.0")while True :# 设置窗口背景 fill() 设置颜色 RGB 这里设置黑色MainGame.window.fill((0,0,0))# 刷新显示pygame.display.update()def game_over(self):"""结束游戏"""pass# 基本坦克类
class BaseTank:pass# 我方坦克类
class HeroTank:pass# 敌方坦克类
class EnemyTank:pass# 子弹类
class Bullet:pass# 墙壁类
class wall:pass# 创建对象
start = MainGame()
# 对象开始游戏
start.start()

初始化的窗口效果图:

3、坦克大战_事件检测_3.py

v3
添加内容:主逻辑内进行事件检测

主逻辑类
效果:鼠标放到窗口 反馈数据
属性:游戏窗口
方法:开始游戏 start()
事件检测 deal_event()

  • 鼠标点击窗口事件 pygame.QUIT
  • 键盘按下事件 pygame.KEYDOWN
  • 键盘长按事件 pygame.key.getpressed()
"""
项目:坦克大战
时间:2020-05-13
作者:稳稳
使用软件及版本:Pycharm python3.6 pygame1.9
"""
# 主逻辑类
"""
主逻辑类属性:游戏窗口
方法:开始游戏 start()- 窗口初始化- 设置窗口- 设置标题(坦克大战v_1.0)- 窗口背景- 游戏应该在无限循环"""
import pygame
import sysclass MainGame:# 游戏主窗口window = Nonedef start(self):"""开始游戏"""# 调用窗口初始化pygame.display.init()# 创建窗口 set_mode("窗口宽,窗口高")MainGame.window = pygame.display.set_mode((900,500))# 设置窗口标题pygame.display.set_caption("坦克大战v_1.0")while True :# 设置窗口背景 fill() 设置颜色 RGB 这里设置黑色MainGame.window.fill((0,0,0))# 调用时间检测事件self.deal_event()# 刷新显示pygame.display.update()def deal_event(self):"""事件检测"""# 鼠标放上窗口和敲击键盘可以观察到位置信息反馈# print(pygame.event.get())# 获取新事件for event in pygame.event.get():# 1. 鼠标点击关闭窗口事件if event.type == pygame.QUIT:print("点击关闭窗口按钮")sys.exit()  # 关闭程序# 2. 按下键盘检测elif event.type == pygame.KEYDOWN:# 按下键盘反馈数据# print("按下键盘")if event.key == pygame.K_LEFT:print("左移动")elif event.key == pygame.K_RIGHT:print("右移动")# 3. 鼠标点击检测elif event.type == pygame.MOUSEBUTTONDOWN:print("鼠标点击事件")def game_over(self):"""结束游戏"""pass# 基本坦克类
class BaseTank:pass# 我方坦克类
class HeroTank:pass# 敌方坦克类
class EnemyTank:pass# 子弹类
class Bullet:pass# 墙壁类
class wall:pass# 创建对象
start = MainGame()
# 对象开始游戏
start.start()

鼠标放到游戏窗口,键盘左右按下,可以看到反馈,其实这个可以注释掉,只能留下关闭窗口检测

4、坦克大战_基本坦克_我方坦克继承_4.py

v4
我方坦克分析

由于我方坦克和敌方坦克有相识属性和方法,所以可以先写基本坦克类
让我方坦克和敌方坦克继承基本坦克类

基本坦克类:BaseTank
属性:图片、方向、图片矩形区域、坦克位置、移动速度、是否活着
方法:移动、贴图
参考代码以及步骤(定义基本坦克类,让我方坦克继承)
1.加载坦克图片 存于字典中
2.初始化坦克方向
3.根据坦克方向获取坦克图片
4.获取图片矩形区域
5.根据传入的参数,决定坦克的位置
6.移动速度
7.是否活着
坦克贴图方法display_tank()
8.先获取坦克图片
9.贴坦克图片
我方坦克类HeroTank(BaseTank)
10.继承基本坦克类

"""
项目:坦克大战
时间:2020-05-13
作者:稳稳
使用软件及版本:Pycharm python3.6 pygame1.9
"""# 主逻辑类
"""
主逻辑类属性:游戏窗口
方法:开始游戏 start()- 窗口初始化- 设置窗口- 设置标题(坦克大战v_1.0)- 窗口背景- 游戏应该在无限循环"""
import pygame
import sysclass MainGame:# 游戏主窗口window = Nonedef start(self): # V2"""开始游戏"""# 调用窗口初始化pygame.display.init()# 创建窗口 set_mode("窗口宽,窗口高")MainGame.window = pygame.display.set_mode((900,500))# 设置窗口标题pygame.display.set_caption("坦克大战v_1.0")while True :# 设置窗口背景 fill() 设置颜色 RGB 这里设置黑色MainGame.window.fill((0,0,0))# 调用时间检测事件self.deal_event()# 刷新显示pygame.display.update()def deal_event(self): # V3"""事件检测"""# 鼠标放上窗口和敲击键盘可以观察到位置信息反馈# print(pygame.event.get())# 获取新事件for event in pygame.event.get():# 1. 鼠标点击关闭窗口事件if event.type == pygame.QUIT:print("点击关闭窗口按钮")sys.exit()  # 关闭程序# 2. 按下键盘检测elif event.type == pygame.KEYDOWN:# 按下键盘反馈数据# print("按下键盘")if event.key == pygame.K_LEFT:print("左移动")elif event.key == pygame.K_RIGHT:print("右移动")# 3. 鼠标点击检测elif event.type == pygame.MOUSEBUTTONDOWN:print("鼠标点击事件")def game_over(self):"""结束游戏"""pass# 基本坦克类
class BaseTank: # V4def __init__(self,x,y):"""基本坦克类的属性x,y:坦克初始在游戏窗口的位置"""# 1.加载图片文件,返回图片对象# 1.将坦克图片存储在字典中self.images = {"U":pygame.image.load("tank_img/p1tankU.gif"),"D":pygame.image.load("tank_img/p1tankU.gif"),"L":pygame.image.load("tank_img/p1tankU.gif"),"R":pygame.image.load("tank_img/p1tankU.gif"),}# 2.给初始化坦克一个方向self.direction = "U"# 3.根据坦克方向获取坦克图片self.image = self.images[self.direction]# 4.获取图片矩形区域self.rect = self.image.get_rect()# 5.根据传入的参数,决定坦克的位置self.rect.x = x # 坦克的x坐标self.rect.y = y # 坦克的y坐标# 6.移动速度self.speed = 3# 7.是否活着self.live = Truedef display_tank(self):"""坦克图片的贴图方法"""# 8.先获取坦克图片self.image = self.images[self.direction]# 9.贴坦克图片MainGame.window.blit(self.image,self.rect)# 我方坦克类
class HeroTank(BaseTank):# 10.继承基本坦克类def __init__(self):super(HeroTank,self).__init__(x,y)self.speed = 2# 敌方坦克类
class EnemyTank:pass# 子弹类
class Bullet:pass# 墙壁类
class wall:pass# 创建对象
start = MainGame()
# 对象开始游戏
start.start()

5、坦克大战_我方坦克贴图_5.py

v5
创建我方坦克 并加载图片

在主逻辑中,一开始就在我方坦克,定义P类属性记录
先定义创建我方坦克的方法 create_hero_tank,
在定义加载坦克图片方法 load_hero_tank
在开始游戏时,调用创建坦克对象的方法,在循环中加载坦克图片
1.记录我方坦克
2.在MainGame 创建坦克方法 create_tank()
3.加载我方坦克 load_heor_tank()
4.调用坦克创建的方法
5.调用坦克贴图方法

并不能移动!!!!!!!!!!!!!!!!!!!!

"""
项目:坦克大战
时间:2020-05-13
作者:稳稳
使用软件及版本:Pycharm python3.6 pygame1.9
"""
import pygame
import sys# 主逻辑类
class MainGame:# V2游戏主窗口window = None# V5.1记录我方坦克P1 = Nonedef create_tank(self): #V5.2"""创建我方坦克"""# v5.2判断我方坦克是否创建if not MainGame.P1:MainGame.P1 = HeroTank(500,400) # 坦克初始位置def load_heor_tank(self): #v5.3"""加载我方坦克"""# v5.3如果坦克就调用坦克贴图的方法if MainGame.P1 and MainGame.P1.live:MainGame.P1.display_tank()else:# v5.3如果坦克死了,删除坦克对象,删除贴图del MainGame.P1MainGame.P1 = None # v5.3恢复坦克初始化设置def start(self): # V2"""开始游戏"""# V2调用窗口初始化pygame.display.init()# V2创建窗口 set_mode("窗口宽,窗口高")MainGame.window = pygame.display.set_mode((900,500))# V2设置窗口标题pygame.display.set_caption("坦克大战v_1.0")# v5.4 调用坦克创建的方法self.create_tank()while True :# V2设置窗口背景 fill() 设置颜色 RGB 这里设置黑色MainGame.window.fill((0,0,0))# V2调用时间检测事件self.deal_event()# v5.5调用坦克贴图方法self.load_heor_tank()# V2刷新显示pygame.display.update()def deal_event(self): # V3"""事件检测"""# V3鼠标放上窗口和敲击键盘可以观察到位置信息反馈# print(pygame.event.get())# V3获取新事件for event in pygame.event.get():# V3.1 鼠标点击关闭窗口事件if event.type == pygame.QUIT:print("点击关闭窗口按钮")sys.exit()  # 关闭程序# V3.2 按下键盘检测elif event.type == pygame.KEYDOWN:# print("按下键盘")# V3.2按下键盘反馈数据if event.key == pygame.K_LEFT:print("左移动")elif event.key == pygame.K_RIGHT:print("右移动")# 3. 鼠标点击检测elif event.type == pygame.MOUSEBUTTONDOWN:print("鼠标点击事件")def game_over(self):"""结束游戏"""pass# 基本坦克类
class BaseTank: # V4def __init__(self,x,y):self.x = xself.y = y"""基本坦克类的属性x,y:坦克初始在游戏窗口的位置"""# V4.1.加载图片文件,返回图片对象# V4.1.将坦克图片存储在字典中self.images = {"U":pygame.image.load("tank_img/p1tankU.gif"),"D":pygame.image.load("tank_img/p1tankU.gif"),"L":pygame.image.load("tank_img/p1tankU.gif"),"R":pygame.image.load("tank_img/p1tankU.gif"),}# V4.2.给初始化坦克一个方向self.direction = "U"# V4.3.根据坦克方向获取坦克图片self.image = self.images[self.direction]# V4.4.获取图片矩形区域self.rect = self.image.get_rect()# V4.5.根据传入的参数,决定坦克的位置self.rect.x = x # 坦克的x坐标self.rect.y = y # 坦克的y坐标# V4.6.移动速度self.speed = 3# V4.7.是否活着self.live = Truedef display_tank(self):"""坦克图片的贴图方法"""# V4.8.先获取坦克图片self.image = self.images[self.direction]# V4.9.贴坦克图片MainGame.window.blit(self.image,self.rect)# 我方坦克类
class HeroTank(BaseTank):# V4.10.继承基本坦克类def __init__(self,x,y):super(HeroTank,self).__init__(x,y)self.speed = 2# 敌方坦克类
class EnemyTank:pass# 子弹类
class Bullet:pass# 墙壁类
class wall:pass# 创建对象start = MainGame()
# 对象开始游戏
start.start()

效果图:

6、坦克大战_我方坦克移动_6.py

v6
实现我方坦克移动的方法
BaseTank 中 创建 move()
在基本坦克类中添加坦克移动方法
判断坦克的方向,是哪个方向就向哪个方向移动 PS:参考位置图
- 移动方式:
- 初始化位置设为全局变量
代码执行:
1.坦克方向判断
2.边界判断
3.修改全局变量 SCREEN_HEIGHT,SCREEN_WIDTH
4.修改判断边界
5.我方坦克重写父类move()
6.判断键盘状态
7.键盘被按下执行移动

"""
项目:坦克大战
时间:2020-05-13
作者:稳稳
使用软件及版本:Pycharm python3.6 pygame1.9
"""
import pygame
import sys
import time
# V6.3 全局判断
SCREEN_HEIGHT = 500
SCREEN_WIDTH = 900
# 主逻辑类
class MainGame:# V2游戏主窗口window = None# V5.1记录我方坦克P1 = Nonedef create_tank(self): # V5.2"""创建我方坦克"""# v5.2判断我方坦克是否创建if not MainGame.P1:MainGame.P1 = HeroTank(500,400) # 坦克初始位置def load_heor_tank(self): # v5.3"""加载我方坦克"""# v5.3如果坦克就调用坦克贴图的方法if MainGame.P1 and MainGame.P1.live:MainGame.P1.display_tank()MainGame.P1.move()else:# v5.3如果坦克死了,删除坦克对象,删除贴图del MainGame.P1MainGame.P1 = None # v5.3恢复坦克初始化设置def start(self): # V2"""开始游戏"""# V2调用窗口初始化pygame.display.init()# V2创建窗口 set_mode("窗口宽,窗口高")          # V6.3MainGame.window = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))# V2设置窗口标题pygame.display.set_caption("坦克大战v_1.0")# v5.4 调用坦克创建的方法self.create_tank()while True :# V2设置窗口背景 fill() 设置颜色 RGB 这里设置黑色MainGame.window.fill((0,0,0))# V2调用时间检测事件self.deal_event()# v5.5调用坦克贴图方法self.load_heor_tank()# V2刷新显示pygame.display.update()time.sleep(0.02)def deal_event(self): # V3"""事件检测"""# V3鼠标放上窗口和敲击键盘可以观察到位置信息反馈# print(pygame.event.get())# V3获取新事件for event in pygame.event.get():# V3.1 鼠标点击关闭窗口事件if event.type == pygame.QUIT:print("点击关闭窗口按钮")sys.exit()  # 关闭程序# V3.2 按下键盘检测elif event.type == pygame.KEYDOWN:# print("按下键盘")# V3.2按下键盘反馈数据if event.key == pygame.K_LEFT:print("左移动")elif event.key == pygame.K_RIGHT:print("右移动")elif event.key == pygame.K_SPACE:print("空格发射子弹")# 3. 鼠标点击检测elif event.type == pygame.MOUSEBUTTONDOWN:print("鼠标点击事件")def game_over(self):"""结束游戏"""# 基本坦克类
class BaseTank: # V4def __init__(self,x,y):self.x = xself.y = y"""基本坦克类的属性x,y:坦克初始在游戏窗口的位置"""# V4.1.加载图片文件,返回图片对象# V4.1.将坦克图片存储在字典中self.images = {"U":pygame.image.load("tank_img/p1tankU.gif"),"D":pygame.image.load("tank_img/p1tankD.gif"),"L":pygame.image.load("tank_img/p1tankL.gif"),"R":pygame.image.load("tank_img/p1tankR.gif"),}# V4.2.给初始化坦克一个方向self.direction = "U"# V4.3.根据坦克方向获取坦克图片self.image = self.images[self.direction]# V4.4.获取图片矩形区域self.rect = self.image.get_rect()# V4.5.根据传入的参数,决定坦克的位置self.rect.x = x # 坦克的x坐标self.rect.y = y # 坦克的y坐标# V4.6.移动速度self.speed = 3# V4.7.是否活着self.live = Truedef display_tank(self):"""坦克图片的贴图方法"""# V4.8.先获取坦克图片self.image = self.images[self.direction]# V4.9.贴坦克图片MainGame.window.blit(self.image,self.rect)def move(self):"""坦克移动的方法"""# v6.1 判断坦克的方向 是否向上 向上处理if self.direction == "U":# v6.2 边界判断if self.rect.y > 0 :self.rect.y -= self.speedelif self.direction == "D":# v6.2 边界判断         #v6.4if self.rect.y<SCREEN_HEIGHT-self.rect.height :self.rect.y += self.speedelif self.direction == "L":# v6.2 边界判断if self.rect.x > 0 :self.rect.x -= self.speedelif self.direction == "R":# v6.2 边界判断         #v6.4if self.rect.x<SCREEN_WIDTH-self.rect.width :self.rect.x += self.speed# 在加载我方坦克调用坦克移动放马 MainGame.P1.move()# 此时坦克只能向上移动# 我方坦克类
class HeroTank(BaseTank):# V4.10.继承基本坦克类def __init__(self,x,y):super(HeroTank,self).__init__(x,y)self.speed = 2# v6.5 创建我方坦克方法 重写父类def move(self):"""我方坦克移动方法"""# #v6.6 键盘长按事件 获取键盘上所有按键状态 按下1 没按0keys_status = pygame.key.get_pressed()# print(keys_status)# v6.7如果被按下if keys_status[pygame.K_UP]:# 改变移动的方向 重新赋值self.direction = "U"# 调用父类移动方式super(HeroTank, self).move()elif keys_status[pygame.K_DOWN]:# 改变移动的方向 重新赋值self.direction = "D"# 调用父类移动方式super(HeroTank, self).move()elif keys_status[pygame.K_LEFT]:# 改变移动的方向 重新赋值self.direction = "L"# 调用父类移动方式super(HeroTank, self).move()elif keys_status[pygame.K_RIGHT]:# 改变移动的方向 重新赋值self.direction = "R"# 调用父类移动方式super(HeroTank, self).move()# 敌方坦克类
class EnemyTank:pass# 子弹类
class Bullet:pass# 墙壁类
class wall:pass# 创建对象start = MainGame()
# 对象开始游戏
start.start()

效果图说明:可以左右移动,并且边界设置

四、API Pygame模块游戏开发所用语句

游戏_API文档.py

import pygame  # 导入pygame# 初始化pygame库,让计算机硬件准备
pygame.init()# --------窗口相关操作----------# 创建窗口
window = pygame.display.set_mode((窗口宽,窗口高))#窗口填充颜色
window.fill((0,0,0))# 刷新界面  不刷新不会更新显示的内容
pygame.display.update()# 设置窗口标题
pygame.display.set_caption("窗口标题")# 设置窗口图标
image = pygame.image.load("res/game.ico")
pygame.display.set_icon(image)# --------图像相关操作-----------# 加载图片文件,返回图片对象
image = pygame.image.load("图片路径")# 贴图(指定坐标,将图片绘制到窗口)
window.blit(image, (0, 0))# 判断两个矩形是否相交,相交返回True, 否则返回False
flag = pygame.Rect.colliderect(rect1, rect2)# 进行一对一的冲突检测
pygame.sprite.collide_rect(obj1,obj2)# 获得图片矩形对象 -> Rect(x, y, width, height)  x,y默认都是左上角(0,0)
rect = image.get_rect()
# 获取图片的宽高
print(rect.width)# 在原位置基础上,移动指定的偏移量 (x, y 增加)
rect.move_ip(num1, num2)# 将图片对象按指定宽高缩放,返回新的图片对象
trans_image = pygame.transform.scale(image, (WINDOWWIDTH, WINDOWHEIGHT))# --------事件相关操作-----------# 获取新事件
for event in pygame.event.get():# 1. 鼠标点击关闭窗口事件if event.type == pygame.QUIT:print("点击关闭窗口按钮")sys.exit()  # 关闭程序pygame.quit()  # 退出pygame,清理pygame占用资源# 2. 键盘按下事件if event.type == pygame.KEYDOWN:# 判断用户按键if event.key == pygame.K_LEFT or event.key == pygame.K_a:print("left")if event.key == pygame.K_RIGHT or event.key == pygame.K_d:print("right")if event.key == pygame.K_SPACE:print("space")# 3. 键盘长按事件
# 获取当前键盘所有按键的状态(按下/没有按下),返回bool元组  (0, 0, 0, 0, 1, 0, 0, 0, 0)
pressed_keys = pygame.key.get_pressed()if pressed_keys[pygame.K_a] or pressed_keys[pygame.K_LEFT]:print("left")
if pressed_keys[pygame.K_d] or pressed_keys[pygame.K_RIGHT]:print("right")# ----------文本相关操作-------------# 加载系统字体,返回字体对象
font_obj = pygame.font.SysFont('SimHei', 42)# 加载自定义字体,返回字体对象
font_obj = pygame.font.Font("res/SIMHEI.TTF", 42)三基色: Red Green Blue
0 - 255# 设置文本,返回文本对象   render(文本内容, 抗锯齿,颜色)
text_obj = font.render("飞机大战", 1, (255, 255, 255))# 设置文本的位置和尺寸   获取文本的Rect并修改Rect的中心点为 (300,300)
text_rect = text_obj.get_rect(centerx=300, centery=300)# 在指定位置和尺寸绘制指定文字对象
window.blit(text_obj, text_rect)# ---------音效相关操作------------# 加载背景音乐
pygame.mixer.music.load("./res/bg2.ogg")
# 循环播放背景音乐
pygame.mixer.music.play(-1)
# 停止背景音乐
pygame.mixer.music.stop()# 生成音效对象
boom_sound = pygame.mixer.Sound("./res/baozha.ogg")
# 播放音效
boom_sound.play()
# 停止音效
boom_sound.stop()

运用Python+Pygame开发坦克大战游戏_版本V1.01相关推荐

  1. 学习 Python 之 Pygame 开发坦克大战(四)

    学习 Python 之 Pygame 开发坦克大战(四) 坦克大战添加音效 1. 初始化音效 2. 加入游戏开始音效和坦克移动音效 3. 添加坦克开火音效 4. 添加装甲削减音效 5. 添加坦克爆炸音 ...

  2. 学习 Python 之 Pygame 开发坦克大战(五)

    学习 Python 之 Pygame 开发坦克大战(五) 坦克大战完善地图 1. 创建砖墙 2. 给砖墙增加子弹击中的碰撞效果 3. 给砖墙添加坦克不能通过的碰撞效果 4. 添加石墙 5. 添加玩家基 ...

  3. 基于JavaSwing开发坦克大战游戏(单人或双人版) 课程设计 大作业 毕业设计

    基于JavaSwing开发坦克大战游戏(单人或双人版):   (大作业/毕业设计) 开发环境: Windows操作系统 开发工具: MyEclipse/Eclipse+Jdk 运行效果图:  基于Ja ...

  4. python趣味编程-坦克大战游戏

    在上一期我们用Python实现了一个简单的计算器的游戏,这一期我们继续使用Python实现一个简单的坦克大战游戏,让我们开始今天的旅程吧~ 简单 2D 游戏 Python 中的简单 2D 游戏是用Py ...

  5. 雷霆战机9.5全新上线,Python+Pygame开发飞机大战完整游戏项目(附源码)

    项目名称:太空大战 开发环境:Python3.6.4 第三方库:Pygame1.9.6 代码编辑器:Sublime Text 先来看一下游戏画面吧!  游戏画面动态且丰富哦!   需求分析 利用Pyt ...

  6. C#开发-----坦克大战游戏

        转载请标明是引用于 http://blog.csdn.net/chenyujing1234 例子代码: http://www.rayfile.com/zh-cn/files/bad6d707- ...

  7. python 中的坦克大战0.1版本

    这个只是初步的坦克大战,只有一个坦克,进行刷新的动作.线程类的操作不是太懂.唯一知道的就是不能再主线程里面使用sleep ,这样子的话,主线程就进入休眠的状态,不能进行时间的监听. import py ...

  8. python pygame模块怎么写游戏_使用 Python 和 Pygame 模块构建一个游戏框架

    这系列的第一篇通过创建一个简单的骰子游戏来探究 Python.现在是来从零制作你自己的游戏的时间. 在我的这系列的第一篇文章 中, 我已经讲解如何使用 Python 创建一个简单的.基于文本的骰子游戏 ...

  9. 0基础手把手教您开发坦克大战游戏

    写在前面的话:首先,本文适读于所有层次的读者,不管您是程序员,还是对代码一无所知的小白.其次,本文只讲怎么做,不讲为什么(但我会尽量添加注释,如果嫌不够,可以下载浅墨所著的<window游戏编程 ...

最新文章

  1. c语言字符串机考题,2016全国计算机二级《C语言》机考试题及答案
  2. GHOST重装系统只剩一个C盘 数据恢复方法
  3. python 类中方法的动态特性
  4. Apache Flink Meetup 8.7 深圳站,企业实践 + 1.14 版本预热
  5. 虚拟化模板新建虚拟机后 wsus控制台无法看到所有客户端计算机
  6. 虚拟机中的CentOS 7设置固定IP连接最理想的配置
  7. RS232协议和RS485协议有什么不同?
  8. linux dns配置srv记录,DNS之SRV记录
  9. Sketch MAC破解
  10. Ubuntu下安装有道词典
  11. Python实用: 让桌面壁纸每日自动更新为必应首页图片
  12. 抢先入驻皮皮虾APP社区 红利初期第一批操作者绝对有肉吃
  13. 【搬运及个人处理】联想电脑(Lenovo XiaoXinAir-14IIL 2020)散热模式Fn+Q 失效解决方案
  14. 亚马逊退货退款常见问题解答|官方
  15. 什么是在制品限制?通过这篇文章,让你搞明白
  16. python操作pdf——pdfplumber/PyPDF2
  17. 【无标题】UOS显示仓库https://professional-packages.chinauos.com/desktop-professional 没有数字签名
  18. 运维自动化之ANSIBLE
  19. Android Mediaplayer连续播放没有声音的问题
  20. 慈溪2021高考学校成绩查询,2021年宁波各高中高考成绩排名及放榜最新消息

热门文章

  1. 时间的过客怎么用计算机完整版,抖音时间的过客MC名决在哪看?附歌词完整版原文...
  2. 发现一个叫阿尔法城的小站(以后此贴为我记录日常常用网址的帖子了)
  3. 正版服务器,MC原版服务器搭建教程
  4. 落球法测量液体粘滞系数
  5. PCIe扫盲系列博文连载目录
  6. javascript彩色喷泉
  7. 决胜机房奥林匹克之LCA篇
  8. Java网红10s计时器
  9. R语言基于决策树的银行信贷风险预警模型
  10. JVM内存分析工具大全