植物大战僵尸前端

全部代码:

html部分:

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>游戏说明 - 植物大战僵尸</title> <link rel="stylesheet" href="base.css"> <link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> </head> <body> <div> <header> <h1> <img src="https://img.icons8.com/color/96/000000/plant-under-sun.png" alt="植物"> 植物大战僵尸 - 游戏说明 <img src="https://img.icons8.com/color/96/000000/zombie.png" alt="僵尸"> </h1> <p>欢迎来到植物大战僵尸!这是一款策略塔防游戏,你需要种植各种植物来抵御僵尸的进攻。</p> </header> <section> <h2><i></i> 游戏目标</h2> <p>你的目标是保护你的房屋免受僵尸入侵。僵尸会从右侧出现并向左移动,试图进入你的房屋。如果僵尸到达最左侧,游戏结束。</p> <p>通过种植植物来攻击、阻挡和消灭僵尸,成功抵御所有僵尸波次即可赢得关卡胜利!</p> </section> <section> <h2><i></i> 如何玩游戏</h2> <ol> <li><strong>开始游戏</strong>:点击右上角的"开始游戏"按钮</li> <li><strong>选择植物</strong>:点击左侧的植物卡片选择要种植的植物</li> <li><strong>种植植物</strong>:点击草坪上的格子来种植选择的植物</li> <li><strong>收集阳光</strong>:点击向日葵产生的阳光或从天而降的阳光来增加阳光数量</li> <li><strong>策略布局</strong>:合理安排植物阵容,抵御不断来袭的僵尸</li> <li><strong>使用铲子</strong>:点击铲子工具可以移除不需要的植物</li> </ol> <p>注意:每种植物都有不同的阳光消耗和冷却时间,合理安排资源是关键!</p> </section> <section> <h2><i></i> 植物图鉴</h2> <p>了解每种植物的特性,合理搭配你的防御阵容:</p> <div> <div> <div> <img src="https://img.icons8.com/color/96/000000/sunflower.png" alt="向日葵"> </div> <div> <h3>向日葵</h3> <div>消耗:50阳光</div> <p>每隔24秒产生25阳光,是阳光经济的基础。</p> </div> </div> <div> <div> <img src="https://img.icons8.com/color/96/000000/pea-shooter.png" alt="豌豆射手"> </div> <div> <h3>豌豆射手</h3> <div>消耗:100阳光</div> <p>每隔1.4秒发射一颗豌豆,攻击直线上的僵尸。</p> </div> </div> <div> <div> <img src="https://img.icons8.com/color/96/000000/wall-nut.png" alt="坚果墙"> </div> <div> <h3>坚果墙</h3> <div>消耗:50阳光</div> <p>高耐久植物,可以阻挡僵尸前进,为攻击植物争取时间。</p> </div> </div> <div> <div> <img src="https://img.icons8.com/color/96/000000/cherry-bomb.png" alt="樱桃炸弹"> </div> <div> <h3>樱桃炸弹</h3> <div>消耗:150阳光</div> <p>种植后立即爆炸,消灭周围3x3范围内的所有僵尸。</p> </div> </div> <div> <div> <img src="https://img.icons8.com/color/96/000000/potato-mine.png" alt="土豆地雷"> </div> <div> <h3>土豆地雷</h3> <div>消耗:25阳光</div> <p>埋在地下,需要时间准备,僵尸踩到会爆炸。</p> </div> </div> <div> <div> <img src="https://img.icons8.com/color/96/000000/snow-pea.png" alt="寒冰射手"> </div> <div> <h3>寒冰射手</h3> <div>消耗:175阳光</div> <p>发射冰冻豌豆,可以减缓僵尸的移动速度。</p> </div> </div> <div> <div> <img src="https://img.icons8.com/color/96/000000/repeater.png" alt="双发射手"> </div> <div> <h3>双发射手</h3> <div>消耗:200阳光</div> <p>一次发射两颗豌豆,是豌豆射手的升级版。</p> </div> </div> </div> </section> <section> <h2><i></i> 僵尸图鉴</h2> <p>了解你的敌人,制定相应的防御策略:</p> <div> <div> <div> <img src="https://img.icons8.com/color/96/000000/zombie.png" alt="普通僵尸"> </div> <div> <h3>普通僵尸</h3> <div>生命值:中等</div> <p>最常见的僵尸类型,移动速度中等。</p> </div> </div> <div> <div> <img src="https://img.icons8.com/color/96/000000/zombie-with-cone.png" alt="路障僵尸"> </div> <div> <h3>路障僵尸</h3> <div>生命值:高</div> <p>头戴路障,比普通僵尸更耐打。</p> </div> </div> <div> <div> <img src="https://img.icons8.com/color/96/000000/zombie-with-bucket.png" alt="铁桶僵尸"> </div> <div> <h3>铁桶僵尸</h3> <div>生命值:非常高</div> <p>头戴铁桶,极其耐打,需要集中火力攻击。</p> </div> </div> </div> </section> <section> <h2><i></i> 游戏技巧与策略</h2> <div> <div> <i></i> </div> <div> <h4>阳光经济优先</h4> <p>游戏前期多种植向日葵,建立稳定的阳光收入来源。建议至少种植3-4棵向日葵后再考虑攻击植物。</p> </div> </div> <div> <div> <i></i> </div> <div> <h4>前排防御很重要</h4> <p>在僵尸出现的前排位置种植坚果墙,为后排的攻击植物争取更多输出时间。</p> </div> </div> <div> <div> <i></i> </div> <div> <h4>合理布置攻击植物</h4> <p>将豌豆射手等攻击植物放在后排,确保它们有足够的安全空间进行攻击。</p> </div> </div> <div> <div> <i></i> </div> <div> <h4>善用樱桃炸弹</h4> <p>当大量僵尸聚集时,使用樱桃炸弹可以瞬间清理一大片区域,化解危机。</p> </div> </div> <div> <div> <i></i> </div> <div> <h4>减速效果显著</h4> <p>寒冰射手的减速效果可以让僵尸在火力范围内停留更久,显著提高击杀效率。</p> </div> </div> </section> <div> <a href="index.html"> <i></i> 返回游戏 </a> </div> </div> </body> </html>

css部分:

1:

 .instructions-container { max-width: 1000px; margin: 40px auto; background: rgba(255, 255, 255, 0.95); border-radius: 20px; padding: 40px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); border: 5px solid var(--accent-yellow); } .instructions-header { text-align: center; margin-bottom: 40px; padding-bottom: 20px; border-bottom: 3px solid var(--primary-green); } .instructions-header h1 { color: var(--primary-green); font-size: 2.5rem; margin-bottom: 15px; display: flex; align-items: center; justify-content: center; gap: 20px; } .instructions-header p { color: #666; font-size: 1.2rem; max-width: 800px; margin: 0 auto; line-height: 1.6; } .instructions-section { margin-bottom: 40px; padding: 25px; background: #F9F9F9; border-radius: 15px; border-left: 5px solid var(--primary-green); box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05); } .section-title { color: var(--primary-green); font-size: 1.8rem; margin-bottom: 20px; display: flex; align-items: center; gap: 15px; } .section-title i { color: var(--accent-yellow); } .game-objective { background: #E8F5E9; } .how-to-play { background: #E3F2FD; } .plants-guide { background: #FFF3E0; } .zombies-guide { background: #FFEBEE; } .tips { background: #F3E5F5; } .plant-grid, .zombie-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; margin-top: 20px; } .plant-item, .zombie-item { background: white; border-radius: 10px; padding: 20px; display: flex; align-items: center; gap: 20px; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease; } .plant-item:hover, .zombie-item:hover { transform: translateY(-5px); } .plant-icon, .zombie-icon { flex-shrink: 0; } .plant-icon img, .zombie-icon img { width: 80px; height: 80px; object-fit: contain; } .plant-info, .zombie-info { flex: 1; } .plant-name, .zombie-name { color: var(--primary-green); font-size: 1.3rem; font-weight: bold; margin-bottom: 8px; } .zombie-name { color: #C62828; } .plant-cost, .zombie-health { color: #FF9800; font-weight: bold; margin-bottom: 5px; } .zombie-health { color: #F44336; } .plant-desc, .zombie-desc { color: #666; line-height: 1.5; font-size: 0.95rem; } .instructions-list { margin-left: 20px; margin-bottom: 20px; } .instructions-list li { margin-bottom: 12px; line-height: 1.6; color: #555; } .tip-item { background: white; border-radius: 10px; padding: 20px; margin-bottom: 15px; display: flex; align-items: center; gap: 20px; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1); } .tip-icon { width: 50px; height: 50px; background: var(--accent-yellow); border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .tip-icon i { color: white; font-size: 1.5rem; } .tip-content { flex: 1; } .tip-content h4 { color: var(--primary-green); margin-bottom: 8px; font-size: 1.2rem; } .back-button { text-align: center; margin-top: 40px; } .back-button a { display: inline-flex; align-items: center; gap: 10px; padding: 15px 40px; background: linear-gradient(to right, var(--primary-green), var(--dark-green)); color: white; text-decoration: none; border-radius: 10px; font-size: 1.2rem; font-weight: bold; transition: all 0.3s ease; box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2); } .back-button a:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3); background: linear-gradient(to right, var(--dark-green), var(--primary-green)); } @media (max-width: 768px) { .instructions-container { padding: 20px; margin: 20px; } .instructions-header h1 { font-size: 2rem; } .plant-grid, .zombie-grid { grid-template-columns: 1fr; } .plant-item, .zombie-item { flex-direction: column; text-align: center; gap: 15px; } }

代码解析:

 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> 

作用:引入https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css,这个链接的作用是为你的网页提供图标字体库。可以使用各种图标

body部分:

css标签:

body { font-family: 'Arial', sans-serif; /* ✅ 整个页面使用Arial字体 */ background: linear-gradient(135deg, var(--primary-green) 0%, var(--dark-green) 100%); /* ✅ 整个页面有渐变绿色背景 */ min-height: 100vh; /* ✅ 页面至少占满整个视口高度 */ overflow-x: hidden; /* ✅ 隐藏水平滚动条 */ color: var(--text-dark); /* ✅ 设置默认文字颜色 */ line-height: 1.6; /* ✅ 设置行高 */ }

注意:

background 不会继承
body { background: green; /* 只有body有背景,子元素不会自动变绿 */ }

color 会继承  font-family 会继承

body { color: red; /* 所有子元素的文字都会变红,除非被子元素覆盖 */ }
body { font-family: 'Arial'; /* 所有子元素都会用Arial字体 */ }

1.

font-family: 'Arial', sans-serif;

作用:

设置页面的默认字体

详细解释:

  1. 字体顺序:浏览器会按顺序尝试加载字体
    • 首选:Arial字体
    • 备选:sans-serif(无衬线字体家族)
'Arial', /* 第一选择:如果用户电脑有Arial字体 */ sans-serif /* 备胎:如果没有Arial,用系统默认的无衬线字体 */

2.

background: linear-gradient(135deg, var(--primary-green) 0%, var(--dark-green) 100%);

作用:

创建渐变背景色

详细解析:

  1. linear-gradient:线性渐变函数
    • 从一个颜色平滑过渡到另一个颜色
    • 135deg:渐变角度
0deg → 从上到下 90deg → 从左到右 135deg → 从左下到右上(对角线) 180deg → 从下到上

颜色分布

var(--primary-green) 0% /* 开始颜色(左下角) */ var(--dark-green) 100% /* 结束颜色(右上角) */
  1. var()函数:CSS变量
    • --primary-green 和 --dark-green 在 :root 中定义
    • 方便统一修改颜色

3.

min-height: 100vh;

作用:

设置最小高度为100%视口高度

min-height vs height

height: 100vh; /* 固定高度,不能超过视口 */ /*精确等于视口高度 不能超过视口高度 内容多了会溢出*/ min-height: 100vh; /* 最小高度100vh,但可以更高(如果内容多) */ /*至少占满视口 可以超过视口高度 内容多了会自动撑高*/

为什么需要这个?

<!-- 假设内容很少 --> <body> <h1>标题</h1> <!-- 如果没有min-height: 100vh; --> <!-- 页面只有标题高度,下面是空白的 --> <!-- 如果有min-height: 100vh; --> <!-- 即使内容少,页面也会占满整个屏幕 --> </body>

4.

overflow-x: hidden;

作用:

隐藏水平方向的溢出内容

详细解析:

  1. 应用场景
    • 防止出现水平滚动条
    • 当有元素太宽时,直接隐藏而不是让页面变宽
  2. color属性:设置文字颜色
    • 这个样式会继承给所有子元素

继承效果

body { color: #333; /* 深灰色 */ } /* 所有子元素都会是深灰色,除非被覆盖 */ p { /* 没有单独设置color,所以继承body的#333 */ } .special { color: red; /* 覆盖继承的颜色 */ }

6.    line-height: 1.6;

作用:

设置行高(文字行间距)

示例

<div>很宽的内容</div> <!-- 没有overflow-x: hidden; → 出现水平滚动条 --> <!-- 有overflow-x: hidden; → 超出的部分被裁剪 -->

5.

color: var(--text-dark);

作用:

设置默认文字颜色

详细解析:

overflow属性

overflow-x: visible; /* 默认,超出部分可见 */ overflow-x: hidden; /* 超出部分隐藏 */ overflow-x: scroll; /* 显示滚动条 */ overflow-x: auto; /* 自动判断是否需要滚动条 */

instructions-container:

@media (max-width: 768px) { .instructions-container { padding: 20px; margin: 20px; }

1. @media (max-width: 768px)

  • 这是媒体查询的开始
  • 意思是:当屏幕宽度小于等于768px时,应用括号内的CSS样式
  • 768px通常是平板设备和手机的分界点
@media 媒体类型 and (媒体特性) { /* 在这里写CSS样式 */ }

2. 大括号 { } 内的内容

  • 这里只包含了一个选择器和样式规则
  • 但通常可以包含多个CSS规则

3. .instructions-container

  • 这是CSS类选择器
  • 选择所有具有class="instructions-container"的HTML元素

4. padding: 20px; 和 margin: 20px;

  • padding: 20px; - 设置内边距为20px(元素内容与边框的距离)
  • margin: 20px; - 设置外边距为20px(元素与其他元素的距离)

.instructions-header:

.instructions-header { text-align: center; /* 文字水平居中 */ margin-bottom: 40px; /* 底部外边距40px */ padding-bottom: 20px; /* 底部内边距20px */ border-bottom: 3px solid var(--primary-green); /* 底部边框 */ }

<i></i>

 Font Awesome 就是一个现成的图标库,就像编程中的库函数一样,直接调用

第一个类名:fas

  • fa = Font Awesome(字体图标库)
  • s = Solid(实心样式)

Font Awesome有不同样式:

<i></i> <!-- 实心星星 ★ --> <i></i> <!-- 空心星星 ☆ --> <i></i> <!-- 品牌图标(Twitter) -->

第二个类名:fa-bullseye

  • fa- = Font Awesome 前缀
  • bullseye = 靶心(图标名称)

就像给人起名字:

fa- bullseye ↓ ↓ 姓氏 名字

其他类似的图标:

<i></i> <!-- 靶心 🎯 --> <i></i> <!-- 十字准星 ✛ --> <i></i> <!-- 喇叭 📢 --> <i></i> <!-- 旗子 🚩 -->

body第二大部分:

<section> <h2><i></i> 如何玩游戏</h2> <ol> <li><strong>开始游戏</strong>:点击右上角的"开始游戏"按钮</li> <li><strong>选择植物</strong>:点击左侧的植物卡片选择要种植的植物</li> <li><strong>种植植物</strong>:点击草坪上的格子来种植选择的植物</li> <li><strong>收集阳光</strong>:点击向日葵产生的阳光或从天而降的阳光来增加阳光数量</li> <li><strong>策略布局</strong>:合理安排植物阵容,抵御不断来袭的僵尸</li> <li><strong>使用铲子</strong>:点击铲子工具可以移除不需要的植物</li> </ol> <p>注意:每种植物都有不同的阳光消耗和冷却时间,合理安排资源是关键!</p> </section> 

框架:

┌─────────────────────────────────────────────────┐ ← section边框 │ section盒子 (浅蓝色背景,绿色左边框) │ │ │ │ ┌─────────────────────────────────────────┐ │ │ │ h2盒子 (flex容器,绿色文字) │ │ │ │ ┌─────────┐ ┌──────────────┐ │ │ │ │ │ i盒子 │ │ 文字内容 │ │ │ │ │ │ 游戏手柄 │ │ "如何玩游戏" │ │ │ │ │ │ 图标🎮 │ │ │ │ │ │ │ └─────────┘ └──────────────┘ │ │ │ │ gap: 15px │ │ │ └─────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────┐ │ │ │ ol盒子 (有序列表容器) │ │ │ │ margin-left: 20px │ │ │ │ │ │ │ │ ┌─────────────────────────────────┐ │ │ │ │ │ li盒子1 (列表项) │ │ │ │ │ │ margin-bottom: 12px │ │ │ │ │ │ ┌─────────┐ ┌──────────────┐ │ │ │ │ │ │ │ strong │ │ 描述文字 │ │ │ │ │ │ │ │ "开始游戏"│ │:点击按钮... │ │ │ │ │ │ │ └─────────┘ └──────────────┘ │ │ │ │ │ └─────────────────────────────────┘ │ │ │ │ │ │ │ │ ┌─────────────────────────────────┐ │ │ │ │ │ li盒子2 (列表项) │ │ │ │ │ │ ┌─────────┐ ┌──────────────┐ │ │ │ │ │ │ │ strong │ │ 描述文字 │ │ │ │ │ │ │ │ "选择植物"│ │:点击卡片... │ │ │ │ │ │ │ └─────────┘ └──────────────┘ │ │ │ │ │ └─────────────────────────────────┘ │ │ │ │ ...(还有4个li盒子)... │ │ │ └─────────────────────────────────────────┘ │ │ │ │ ┌─────────────────────────────────────────┐ │ │ │ p盒子 (段落) │ │ │ │ "注意:每种植物..." │ │ │ └─────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────┘

<div>

 .plant-grid, .zombie-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 20px; margin-top: 20px; }
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
1. grid-template-columns → "网格-模板-列数" 2. repeat() → "重复" 3. auto-fill → "自动填满" 4. minmax(300px, 1fr) → "最小300px,最大1份空间"

想象一个书架:

  • grid-template-columns = "这个书架有几列?"
  • repeat() = "我要重复做某事"
  • auto-fill = "自动摆满,能放几本就放几本"
  • minmax(300px, 1fr) = "每本书至少占300px宽度,但有多余空间就平分"

minmax(300px, 1fr)就是说这个针对的是一列,然后repeat一下

minmax(300px, 1fr) ← 针对一列的规则
◦ 这一列:最小300px,最大1份空间
2. repeat(..., ...) ← 重复应用这个规则
◦ 重复多少次?由auto-fill决定
3. auto-fill ← 自动填满容器
◦ 浏览器:看看能放几列这个规则

 .plant-item:hover, .zombie-item:hover { transform: translateY(-5px); }

卡片悬停上浮效果

.plant-item:hover, .zombie-item:hover { transform: translateY(-5px); /* ← 这里!向上移动5像素 */ }

文字分布:

📦 详细对比表:

属性作用对象方向容器要求使用场景
text-align: center文字内联元素水平任何块级元素段落居中、按钮居中
justify-content: centerflex子项水平(默认)必须是 display: flex多个元素整体居中
align-items: centerflex子项垂直必须是 display: flex垂直方向居中

Read more

告别 GitHub Copilot?Roo Code 深度上手指南:从API配置到实战,打造你的 AI 编程私有云

告别 GitHub Copilot?Roo Code 深度上手指南:从API配置到实战,打造你的 AI 编程私有云

前言:除了 Copilot,我们还能期待什么? 作为一名在代码世界摸爬滚打多年的开发者,你是否感觉到 IDE 的进化似乎到了一个瓶颈? 过去的十年,我们见证了从“记事本”到“智能感知 (IntelliSense)”,再到 GitHub Copilot 的“智能补全”。但说实话,现在的 AI 编程助手大多还停留在“副驾驶”的位置——你需要时刻盯着它,光标移到哪,它补到哪。一旦逻辑复杂一点,它就只能给你生成一堆看似通顺实则跑不通的“幻觉代码”。 如果 AI 不再只是“补全代码”,而是像一个真正的初级工程师那样,能理解你的需求、自己规划任务、跑测试、修 Bug 呢? 这就是我们将要讨论的主角:Roo Code。它代表了软件工程的第四阶段——自主智能代理 (Autonomous Agents)。在这个阶段,

打造AI语音机器人:xiaozhi-esp32项目完全开发手册

打造AI语音机器人:xiaozhi-esp32项目完全开发手册 【免费下载链接】xiaozhi-esp32Build your own AI friend 项目地址: https://gitcode.com/GitHub_Trending/xia/xiaozhi-esp32 想要亲手制作一个能听懂指令、会跳舞互动的智能机器人伙伴吗?✨ xiaozhi-esp32开源项目让你轻松实现这个梦想!基于ESP32芯片的AI机器人开发平台,集成了语音识别、动作控制和图形显示等核心功能,是学习嵌入式AI和物联网技术的绝佳实践项目。 项目概述:你的AI机器人开发起点 xiaozhi-esp32是一个专为AI机器人爱好者设计的开源框架,采用模块化架构设计,支持多种硬件配置和功能扩展。无论你是初学者还是资深开发者,都能在这个平台上找到适合自己的开发路径。 核心硬件架构 项目采用ESP32系列芯片作为主控制器,配合舵机、麦克风、扬声器和显示屏等外设,构建完整的机器人系统。硬件设计充分考虑了扩展性和易用性,让开发者能够快速上手。 软件生态特色 * 多语言支持:项目内置了超过40种语言

AIGC已经不是未来,而是现在:2025年最值得关注的6大趋势!

AIGC已经不是未来,而是现在:2025年最值得关注的6大趋势!

过去一年,AIGC(AI 生成内容)从“概念”彻底走向“落地”。无论你是程序员、产品经理、内容创作者,甚至是业余爱好者,AIGC 已经渗透到每一个内容生产链条中,以一种“你还没准备好,它已经来了”的节奏迅速发展。 本文将带你系统了解:2025 年最热门的 AIGC 内容形态、前沿产品、典型用例,以及未来趋势。 🎥 1. 文生视频已落地:Sora 等产品引爆创意革命         当 OpenAI 推出 Sora 时,整个 AI 圈都沸腾了。         只需一句提示词,比如: "一个穿太空服的熊猫在月球上弹钢琴"         Sora 就能输出秒级电影级视频片段。光影、动作、镜头感,全部一应俱全。 🔧 技术关键词:

2025 Whisper 模型下载导航:各版本、各格式一站获取

以下是关于Whisper语音识别模型的下载导航指南(基于当前最新版本信息,2025版尚未发布)。我们将从版本选择、格式说明到具体下载方式逐步说明: 一、核心版本选择 Whisper提供5种规模版本,性能与资源需求平衡如下: 版本参数量内存需求多语言推荐场景tiny39M~1GB✓移动端/嵌入式设备base74M~1.5GB✓实时转录small244M~2.5GB✓日常办公场景medium769M~5.5GB✓专业音频处理large1.5B~10.5GB✓研究级高精度识别 注:2025版本尚未发布,建议通过官方渠道跟踪更新:OpenAI博客 二、模型格式说明 三种主流格式适用不同开发环境: 1. PyTorch格式(.pt) * 原生支持:通过pip install openai-whisper安装后自动加载 * 下载目录:https://openaipublic.azureedge.net/main/whisper/models/{model_id}