没有合适的资源?快使用搜索试试~ 我知道了~
本文实例为大家分享了python代码实现飞机大战的具体代码,供大家参考,具体内容如下 import pygame import sys from pygame.sprite import Sprite from pygame.sprite import Group from time import sleep import pygame.font # 修改游戏的一些新设置 class Settings(): """存储《外星人入侵》的所有设置的类""" def __init__(self): """初始化游戏的设置""" # 屏幕设置 self.screen_
资源详情
资源评论
资源推荐
500行行python代码实现飞机大战代码实现飞机大战
本文实例为大家分享了python代码实现飞机大战的具体代码,供大家参考,具体内容如下
import pygame
import sys
from pygame.sprite import Sprite
from pygame.sprite import Group
from time import sleep
import pygame.font
# 修改游戏的一些新设置
class Settings():
"""存储《外星人入侵》的所有设置的类"""
def __init__(self):
"""初始化游戏的设置"""
# 屏幕设置
self.screen_width = 1200
self.screen_height = 800
self.bg_color = (230, 230, 230) # 浅灰色
# 飞船的设置,移动1.5像素
self.ship_limit = 3
# 子弹设置---创建宽3像素、高15像素的深灰色子弹
self.bullet_speed_factor = 3
self.bullet_width = 3
self.bullet_height = 15
self.bullet_color = 60, 60, 60
self.bullets_allowed = 3
# 外星人设置
self.fleet_drop_speed = 10
# 以什么样的速度加快游戏节奏
self.speedup_scale = 1.1
# 外星人点数的提高速度
self.score_scale = 1.5
self.initialize_dynamic_settings()
def initialize_dynamic_settings(self):
"""初始化随游戏进行而变化的设置"""
self.ship_speed_factor = 1.5
self.bullet_speed_factor = 3
self.alien_speed_factor = 1
# fleet_direcction为1表示向右,为-1表示向左
self.fleet_direction = 1
# 计分
self.alien_points = 50
def increase_speed(self):
"""提高速度设置和外星人点数"""
self.ship_speed_factor *= self.speedup_scale
self.bullet_speed_factor *= self.speedup_scale
self.alien_speed_factor *= self.speedup_scale
self.alien_points = int(self.alien_points * self.score_scale)
# 创建一个ship类
class Ship(Sprite):
def __init__(self, ai_settings, screen):
"""初始化飞船并设置其起始位置"""
super(Ship, self).__init__()
self.screen = screen
self.ai_settings = ai_settings
# 加载飞船图像并获取其外接矩形
self.image = pygame.image.load('images/ship.bmp')
self.rect = self.image.get_rect() # 以矩形形式来获取相应的surface属性
self.screen_rect = screen.get_rect()
# 将每艘新飞船放在屏幕底部中央
self.rect.centerx = self.screen_rect.centerx
self.rect.bottom = self.screen_rect.bottom
# 在飞船的属性center中存储小数值----在后面加快游戏节奏时更细致地控制飞船的速度
self.center = float(self.rect.centerx)
# 移动标志
self.moving_right = False
self.moving_left = False
def update(self):
"""根据移动标志调整飞船的位置"""
# 更新飞船的center值,而不是rect
if self.moving_right and self.rect.right < self.screen_rect.right:
self.center += self.ai_settings.ship_speed_factor
weixin_38637144
- 粉丝: 4
- 资源: 925
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- TCP转COM 以太网 网口转串口 小工具C#源码
- %E3%80%90%E6%95%B0%E7%94%B5%E3%80%91%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A874LS112%EF%BC%88%E6%88%9674L.html
- 基于three.js + canvas 实现的爱心代码+播放器效果
- 基于java实现的的数独小游戏(java)
- Echarts-售货机大数据分析平台
- 手扶电梯地铁电梯缺陷检测数据集VOC+YOLO格式67张2类别.7z
- 串口调试助手工具C#源码多区轮询
- 基于 C 实现的环形数组(环形数组的实现)
- 阿牛依日0.zip
- 交通灯.smart
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0