You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
# 开发日期: 2024/4/26
|
|
|
|
|
import pygame
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Settings():
|
|
|
|
|
"""储存《外星人入侵》的所有设置的类"""
|
|
|
|
|
def __init__(self):
|
|
|
|
|
"""初始化游戏的设置"""
|
|
|
|
|
|
|
|
|
|
# 屏幕设置
|
|
|
|
|
self.screen_width = 1400
|
|
|
|
|
self.screen_height = 800
|
|
|
|
|
self.bg_color = (0, 128, 128)
|
|
|
|
|
# 飞船的设置
|
|
|
|
|
self.ship_limit = 2
|
|
|
|
|
|
|
|
|
|
# 子弹设置
|
|
|
|
|
"""子弹伤害"""
|
|
|
|
|
self.bullet_damage = 80
|
|
|
|
|
|
|
|
|
|
self.bullets_allowed = 5
|
|
|
|
|
self.bullet_speed_factor = 2
|
|
|
|
|
|
|
|
|
|
# 外星人设置
|
|
|
|
|
"""修改"""
|
|
|
|
|
self.alien_max_hp = 160.0
|
|
|
|
|
|
|
|
|
|
self.fleet_drop_speed = 7
|
|
|
|
|
|
|
|
|
|
# 以什么样的速度加快游戏节奏
|
|
|
|
|
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_direction为1表示向右移动,为-1表示向左移动
|
|
|
|
|
self.fleet_direction = 1
|
|
|
|
|
self.alien_points = 30
|
|
|
|
|
|
|
|
|
|
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)
|