首页 > 编程语言 >Python从入门到实践project飞船射击外星人3

Python从入门到实践project飞船射击外星人3

时间:2023-12-14 20:32:23浏览次数:28  
标签:high level Python self 外星人 project score prep rect

完善记分系统

  • 1确保难度升级分值跟着升级
  • 2将分值显示为10的整数倍
  • 3显示最高分
  • 4显示等级
  • 5显示剩余飞船数

确保难度升级分值跟着升级

self.alien_points = int(self.alien_points * self.score_scale)
print(self.alien_points)

print确保分值变化,确保后删除

Python从入门到实践project飞船射击外星人3_Group

将分值显示为10的整数倍

rounded_score = round(self.stats.score, -1)
score_str = f"{rounded_score:,}"

Python从入门到实践project飞船射击外星人3_Group_02

显示最高分

# 在任何情况下都不应重置最⾼分
self.high_score = 0

Python从入门到实践project飞船射击外星人3_重置_03

self.prep_high_score()

Python从入门到实践project飞船射击外星人3_Group_04

def prep_high_score(self):
    """将最⾼分渲染为图像"""
    high_score = round(self.stats.high_score, -1)
    high_score_str = f"{high_score:,}"
    self.high_score_image = self.font.render(high_score_str,True,
                                             self.text_color, self.settings.bg_color)
    # 将最⾼分放在屏幕顶部的中央
    self.high_score_rect = self.high_score_image.get_rect()
    self.high_score_rect.center = self.screen_rect.center
    self.high_score_rect.top = self.score_rect.top

Python从入门到实践project飞船射击外星人3_重置_05

self.screen.blit(self.high_score_image, self.high_score_rect)

Python从入门到实践project飞船射击外星人3_重置_06

检测是否显示最高得分

def check_high_score(self):
    """检查是否诞⽣了新的最⾼分"""
    if self.stats.score > self.stats.high_score:
        self.stats.high_score = self.stats.score
        self.prep_high_score()

Python从入门到实践project飞船射击外星人3_Group_07

self.sb.check_high_score()

Python从入门到实践project飞船射击外星人3_重置_08

显示等级

self.level = 1

Python从入门到实践project飞船射击外星人3_Group_09

self.prep_high_score()
self.prep_level()

Python从入门到实践project飞船射击外星人3_重置_10

def prep_level(self):
    """将等级渲染为图像"""
    level_str = str(self.stats.level)
    self.level_image = self.font.render(level_str, True,self.text_color, self.settings.bg_color)
    # 将等级放在得分下⽅
    self.level_rect = self.level_image.get_rect()
    self.level_rect.right = self.score_rect.right
    self.level_rect.top = self.score_rect.bottom + 10

Python从入门到实践project飞船射击外星人3_Group_11

self.screen.blit(self.level_image, self.level_rect)

Python从入门到实践project飞船射击外星人3_Group_12

# 提⾼等级
self.stats.level += 1
self.sb.prep_level()

Python从入门到实践project飞船射击外星人3_Group_13

self.sb.prep_level()

Python从入门到实践project飞船射击外星人3_重置_14

显示剩余飞船数

from pygame.sprite import Sprite
uper().__init__()

Python从入门到实践project飞船射击外星人3_Group_15

def prep_ships(self):
    """显⽰还余下多少艘飞船"""
    self.ships = Group()
    for ship_number in range(self.stats.ships_left):
        ship = Ship(self.ai_game)
        ship.rect.x = 10 + ship_number * ship.rect.width
        ship.rect.y = 10
        self.ships.add(ship)

Python从入门到实践project飞船射击外星人3_Group_16

绘制飞船

self.ships.draw(self.screen)

Python从入门到实践project飞船射击外星人3_Group_17

self.sb.prep_ships()

Python从入门到实践project飞船射击外星人3_重置_18

self.sb.prep_ships()

Python从入门到实践project飞船射击外星人3_Group_19


标签:high,level,Python,self,外星人,project,score,prep,rect
From: https://blog.51cto.com/u_16352455/8823469

相关文章

  • python虚拟环境(windows)
    venv虚拟环境,是Python用来创建和管理虚拟环境的模块,该模块供你用来存放你的各种python第三方模块,模块里的环境和本机是完全分开的,也就是说你在venv下通过pip安装的python第三方模块是不会影响到你本机的环境的。具体操作如下:1.先安装virtualenvpipinstallvirtualenv 2.进......
  • Python——了解Html+Css语言代码
    HTML(HyperTextMarkupLanguage超文本标记语言)用特殊的一种标签把需要特殊展示出来的内容圈起来。这就是标记语言语法规则<标记>被标记的内容</标记><标记/>巨大的坑。在以前2000年左右。那个时候语法规则不够规范。有些人写HTML的时候习惯性的漏掉括回文本:文字,字符串,符号。超......
  • 【python基础】颜色列表和颜色字典以及python画图
    前言 使用:list_keys=[iforiincnames.keys()]list_values=[iforiincnames.values()] 颜色列表示例:colormap=['#7A57D1','#FF731D','#004d61','#bc8420','#CF0A0A','#83FFE6','#0000A1',&#......
  • Python项目之ATM1.0多模块函数
    ATM1.0多模块【作业】#ATM:提款姬#===================用户功能菜单=====================#1.注册#2.登陆#3.取款#4.转账#5.充值余额#6.查看流......
  • ubuntu 创建一个与系统 python 分离的 python 环境
    为什么需要这样的python环境以免破坏系统python避免和其他用户共用python让python环境私有如何创建这样的环境下载python安装包aptdownloadpython3.8-minimal如果系统提示没有对应的版本,可以试试将3.8修改为其他版本。如果有更好的方法,欢迎留言。下载完成......
  • 12.15----python类
    classUser:def__init__(self,first_name,last_name):"""初始化姓和名"""self.f_name=first_nameself.l_name=last_namedefdescribe_user(self):"""返回整洁的描述性姓名"&q......
  • Python实现软件设计模式2:工厂方法模式
    特点工厂存在父类和子类,产品存在父类和子类。工厂父类负责定义创建产品对象的公共接口,工厂子类负责生成具体的产品对象。包含的角色Product抽象产品ConcreteProduct具体产品Factory抽象工厂ConcreteFactory具体工厂模式分析工厂方法模式是简单工厂模式的进......
  • Python库大全,建议收藏留用!
    学Python,想必大家都是从爬虫开始的吧。毕竟网上类似的资源很丰富,开源项目也非常多。Python学习网络爬虫主要分3个大的版块:抓取,分析,存储当我们在浏览器中输入一个url后回车,后台会发生什么?简单来说这段过程发生了以下四个步骤:查找域名对应的IP地址。向IP对应的服务器发送请求。服务器......
  • Python多线程计算的方法及示例代码
    Python是一种非常流行的编程语言,支持多种并发编程的方式,其中包括多线程。多线程允许程序同时执行多个任务,从而提高了程序的运行效率。下面将介绍Python中多线程计算的几种常见方法,并给出具体的示例代码。方法一:使用标准库threadingPython标准库中提供了threading模块,通过创建Thread......
  • Python项目之ATM1.0单模块函数版
    ATM1.0【作业】#ATM:提款姬#===================用户功能菜单=====================#1.注册#2.登陆#3.取款#4.转账#5.充值余额#6.查看流水#......