<!doctype html><html lang="zh"><head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>SONIC PHP – 用 PHP 重制的 Master System 版索尼克,免费在线玩</title> <meta name="description" content="在浏览器里免费畅玩 Master System 版索尼克,用 PHP 重制:六大关卡、Boss、特殊关卡、最佳成绩,还能与电脑选手竞速。支持键盘、手柄和触屏。" /> <link rel="canonical" href="https://{{DOMAIN}}/zh/" /> <link rel="alternate" hreflang="fr" href="https://{{DOMAIN}}/" /> <link rel="alternate" hreflang="en" href="https://{{DOMAIN}}/en/" /> <link rel="alternate" hreflang="es" href="https://{{DOMAIN}}/es/" /> <link rel="alternate" hreflang="de" href="https://{{DOMAIN}}/de/" /> <link rel="alternate" hreflang="it" href="https://{{DOMAIN}}/it/" /> <link rel="alternate" hreflang="pt" href="https://{{DOMAIN}}/pt/" /> <link rel="alternate" hreflang="nl" href="https://{{DOMAIN}}/nl/" /> <link rel="alternate" hreflang="pl" href="https://{{DOMAIN}}/pl/" /> <link rel="alternate" hreflang="ru" href="https://{{DOMAIN}}/ru/" /> <link rel="alternate" hreflang="uk" href="https://{{DOMAIN}}/uk/" /> <link rel="alternate" hreflang="tr" href="https://{{DOMAIN}}/tr/" /> <link rel="alternate" hreflang="ja" href="https://{{DOMAIN}}/ja/" /> <link rel="alternate" hreflang="zh" href="https://{{DOMAIN}}/zh/" /> <link rel="alternate" hreflang="ko" href="https://{{DOMAIN}}/ko/" /> <link rel="alternate" hreflang="x-default" href="https://{{DOMAIN}}/" /> <meta name="robots" content="index, follow, max-image-preview:large" /> <meta name="theme-color" content="#00aaff" /> <link rel="icon" type="image/png" sizes="32x32" href="../images/favicon.png" /> <link rel="apple-touch-icon" href="../images/apple-touch-icon.png" /> <meta property="og:type" content="website" /> <meta property="og:locale" content="zh_CN" /> <meta property="og:site_name" content="SONIC PHP" /> <meta property="og:title" content="SONIC PHP – Master System 版索尼克,在线可玩" /> <meta property="og:description" content="1991 年 Master System 版索尼克用 PHP 重制:六大关卡、Boss、特殊关卡和与电脑选手的竞速,浏览器中免费游玩。" /> <meta property="og:url" content="https://{{DOMAIN}}/zh/" /> <meta property="og:image" content="https://{{DOMAIN}}/images/og.png" /> <meta property="og:image:width" content="1200" /> <meta property="og:image:height" content="630" /> <meta property="og:image:alt" content="索尼克在 Green Hill 跳跃,旁边是游戏标志" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:title" content="SONIC PHP – Master System 版索尼克,在线可玩" /> <meta name="twitter:description" content="六大关卡、Boss、特殊关卡和与电脑选手的竞速,尽在浏览器中。" /> <meta name="twitter:image" content="https://{{DOMAIN}}/images/og.png" /> <script type="application/ld+json"> { "@context": "https://schema.org", "@graph": [ { "@type": "VideoGame", "@id": "https://{{DOMAIN}}/zh/#game", "name": "SONIC PHP", "alternateName": "Sonic the Hedgehog (Master System) – PHP 重制版", "url": "https://{{DOMAIN}}/zh/", "image": "https://{{DOMAIN}}/images/og.png", "screenshot": [ "https://{{DOMAIN}}/images/level-1.png", "https://{{DOMAIN}}/images/level-7.png", "https://{{DOMAIN}}/images/special.png", "https://{{DOMAIN}}/images/versus.png" ], "description": "Master System 版索尼克的粉丝重制版,用 PHP 编写,可直接在浏览器中游玩:六大关卡及其 Boss、特殊关卡、结局、带幽灵的最佳成绩,以及与电脑选手的竞速。", "genre": ["平台跳跃", "动作", "复古"], "gamePlatform": ["网页浏览器", "电脑", "手机"], "applicationCategory": "Game", "operatingSystem": "任何较新的浏览器", "playMode": ["SinglePlayer", "MultiPlayer"], "numberOfPlayers": {"@type": "QuantitativeValue", "minValue": 1, "maxValue": 1}, "inLanguage": ["zh"], "isAccessibleForFree": true, "offers": {"@type": "Offer", "price": "0", "priceCurrency": "EUR", "availability": "https://schema.org/InStock"}, "codeRepository": "https://github.com/davidnurdin/sonic-jumphp", "sameAs": "https://sonic.mimichat.fr/", "potentialAction": {"@type": "PlayAction", "target": "https://{{DOMAIN}}/play/"} }, { "@type": "FAQPage", "mainEntity": [ {"@type": "Question", "name": "玩这个游戏需要安装什么吗?", "acceptedAnswer": {"@type": "Answer", "text": "不需要:游戏直接在浏览器中运行,电脑和手机都可以。首次加载会下载约 25 MB(WebAssembly 版 PHP、关卡、图像和音乐),之后全部缓存在本地。"}}, {"@type": "Question", "name": "和完整版有什么区别?", "acceptedAnswer": {"@type": "Answer", "text": "位于 sonic.mimichat.fr 的完整版增加了最多 6 人的在线多人模式(公开或私人房间、聊天)和回放。本版本是移植到 JumPHP 引擎上的同一款游戏,可单人游玩或与电脑选手对战。"}}, {"@type": "Question", "name": "怎么玩?", "acceptedAnswer": {"@type": "Answer", "text": "方向键用于奔跑、向上看和蜷成球,空格键跳跃,回车键打开菜单和暂停,Esc 键返回标题画面。也可以使用手柄;在手机上,屏幕会出现方向键和按钮。"}} ] } ] } </script> <style> :root { --sky: #00aaff; --night: #000055; --night-deep: #00002a; --ink: #f2f6ff; --muted: #b4c4f0; --panel: #0a1470; --line: #2a3fb0; --yellow: #ffd800; --red: #e00000; --cyan: #55ffff; --blue: #0055ff; --earth: #ffaa00; --earth-dark: #aa5500; --grass: #00aa00; } * { box-sizing: border-box; } html { scroll-behavior: smooth; } body { margin: 0; background: var(--night-deep); background-image: linear-gradient(180deg, var(--night) 0, var(--night-deep) 1400px); color: var(--ink); font: 17px/1.6 system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, sans-serif; } img { image-rendering: pixelated; image-rendering: crisp-edges; max-width: 100%; height: auto; display: block; } img.smooth { image-rendering: auto; } a { color: var(--cyan); } .wrap { max-width: 1080px; margin: 0 auto; padding: 0 16px; } .pixel { font-family: ui-monospace, "Cascadia Mono", "DejaVu Sans Mono", Menlo, Consolas, monospace; letter-spacing: .08em; text-transform: uppercase; } /* the ground of Green Hill: grass over a checkerboard */ .ground { height: 30px; border-top: 6px solid var(--grass); background: conic-gradient(var(--earth) 25%, var(--earth-dark) 0 50%, var(--earth) 0 75%, var(--earth-dark) 0) 0 0 / 24px 24px; } header.hero { padding: 40px 0 48px; text-align: center; background: linear-gradient(180deg, #0088ee 0, var(--sky) 55%, #55ccff 100%); } .hero h1 { font-size: clamp(38px, 8vw, 72px); line-height: 1.05; margin: 0; color: var(--yellow); text-shadow: 4px 4px 0 var(--blue), 8px 8px 0 #00226a; } .hero .sub { margin: 16px auto 0; max-width: 700px; font-size: clamp(17px, 2.2vw, 20px); color: #fff; text-shadow: 0 2px 0 #0050a0; } .actions { margin-top: 28px; display: flex; flex-wrap: wrap; justify-content: center; gap: 16px 22px; } .cta { display: inline-block; padding: 18px 34px; background: var(--yellow); color: #111; text-decoration: none; font-weight: 800; font-size: 22px; border: 4px solid #111; box-shadow: 6px 6px 0 var(--red); transition: transform .08s; } .cta:hover, .cta:focus-visible { transform: translate(-2px, -2px); box-shadow: 8px 8px 0 var(--red); } .cta.alt { background: #fff; font-size: 17px; padding: 14px 22px; box-shadow: 6px 6px 0 var(--blue); align-self: center; } .cta.alt:hover, .cta.alt:focus-visible { box-shadow: 8px 8px 0 var(--blue); } .hero .note { margin-top: 18px; font-size: 14px; color: #ecf8ff; text-shadow: 0 1px 0 #0050a0; } .hero .screen { margin: 36px auto 0; width: 100%; max-width: 840px; border: 6px solid #111; box-shadow: 0 0 0 4px #fff, 0 20px 50px rgba(0, 0, 40, .45); } section { padding: 56px 0; } section + section { border-top: 2px solid var(--line); } h2 { font-size: clamp(22px, 3.4vw, 32px); margin: 0 0 18px; color: var(--yellow); } h3 { margin: 0 0 6px; font-size: 18px; color: var(--cyan); } p { margin: 0 0 14px; } .lead { color: var(--muted); max-width: 760px; } .grid { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); } figure { margin: 0; background: #000; border: 4px solid #000; box-shadow: 0 0 0 3px var(--line); } figcaption { background: var(--panel); padding: 8px 12px; font-size: 14px; color: var(--muted); } figcaption b { color: var(--ink); } .cards { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); } .card { background: var(--panel); border: 3px solid var(--line); padding: 18px; } kbd { display: inline-block; min-width: 1.8em; padding: 1px 7px; background: var(--ink); color: #111; border-radius: 3px; border-bottom: 3px solid #888; font: 600 14px/1.5 ui-monospace, monospace; text-align: center; } .split { display: grid; gap: 32px; grid-template-columns: 1fr 1fr; align-items: center; } @media (max-width: 760px) { .split { grid-template-columns: 1fr; } } .full { background: linear-gradient(135deg, #10207e, #000a40); border: 3px solid var(--yellow); box-shadow: 8px 8px 0 var(--red); padding: 26px; } .full ul { margin: 0 0 18px; padding-left: 20px; } .full li { margin: 4px 0; } details { background: var(--panel); border: 3px solid var(--line); padding: 14px 18px; margin-bottom: 12px; } summary { cursor: pointer; font-weight: 700; } details p { margin: 10px 0 0; color: var(--muted); } footer { padding: 32px 0 48px; font-size: 14px; color: var(--muted); text-align: center; } footer p { margin: 6px 0; } nav.langs { background: var(--night-deep); border-bottom: 2px solid var(--line); padding: 8px 0; } nav.langs ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 6px; } nav.langs a { display: block; padding: 3px 9px; font-size: 14px; line-height: 1.5; color: var(--muted); text-decoration: none; border: 2px solid transparent; } nav.langs a:hover, nav.langs a:focus-visible { color: var(--ink); border-color: var(--line); } nav.langs a[aria-current="true"] { color: #111; background: var(--yellow); font-weight: 700; } </style></head><body> <nav class="langs" aria-label="语言"> <ul> <li><a href="../" hreflang="fr" lang="fr">Français</a></li> <li><a href="../en/" hreflang="en" lang="en">English</a></li> <li><a href="../es/" hreflang="es" lang="es">Español</a></li> <li><a href="../de/" hreflang="de" lang="de">Deutsch</a></li> <li><a href="../it/" hreflang="it" lang="it">Italiano</a></li> <li><a href="../pt/" hreflang="pt" lang="pt">Português</a></li> <li><a href="../nl/" hreflang="nl" lang="nl">Nederlands</a></li> <li><a href="../pl/" hreflang="pl" lang="pl">Polski</a></li> <li><a href="../ru/" hreflang="ru" lang="ru">Русский</a></li> <li><a href="../uk/" hreflang="uk" lang="uk">Українська</a></li> <li><a href="../tr/" hreflang="tr" lang="tr">Türkçe</a></li> <li><a href="../ja/" hreflang="ja" lang="ja">日本語</a></li> <li><a href="../zh/" hreflang="zh" lang="zh" aria-current="true">中文</a></li> <li><a href="../ko/" hreflang="ko" lang="ko">한국어</a></li> </ul> </nav> <header class="hero"> <div class="wrap"> <h1 class="pixel">Sonic PHP</h1> <p class="sub">1991 年 <strong>Master System</strong> 版索尼克,用 PHP 重制,可在浏览器中免费游玩:<strong>六大关卡、Boss、特殊关卡</strong>,还有与电脑选手的竞速。</p> <div class="actions"> <a class="cta pixel" href="../play/?back=../zh/">▶ 开始游戏</a> <a class="cta alt" href="https://sonic.mimichat.fr/" target="_blank" rel="noopener">完整版,支持在线多人 ↗</a> </div> <p class="note">电脑、手机或手柄均可 · 无需安装 · 无需注册</p> <img class="screen" src="../images/level-1.png" width="840" height="426" alt="索尼克在 Green Hill 的金环旁蜷成球,路上有一只螃蟹" /> </div> </header> <div class="ground"></div> <main> <section id="jeu"> <div class="wrap split"> <div> <h2>完整的 8 位索尼克</h2> <p>奔跑、跳跃、收集金环、打碎道具箱,抵达每一幕结尾的路牌。<strong>六大关卡,每关三幕</strong>,每个关卡结尾都有 Boss,<strong>特殊关卡</strong>里满是金环和弹簧,还有游戏结局。</p> <p>游戏会记录你的<strong>最佳成绩</strong>和最佳一局的<strong>幽灵</strong>,供你下次挑战。选项中有 CRT 显示器滤镜、PAL 或 NTSC 速度、法语或英语,以及音乐点播机。</p> </div> <figure> <img src="../images/map.png" width="840" height="426" loading="lazy" class="smooth" alt="Green Hill 之前的岛屿地图,显示索尼克的生命数" /> <figcaption><b>岛屿地图</b>,出现在两个关卡之间。</figcaption> </figure> </div> </section> <section id="zones"> <div class="wrap"> <h2>六大关卡</h2> <p class="lead">每个关卡都有自己的场景、陷阱和 Boss。以下是游戏在浏览器中运行时的截图。</p> <div class="grid"> <figure><img src="../images/level-1.png" width="840" height="426" loading="lazy" alt="Green Hill:棋盘格般的山丘、棕榈树和金环" /><figcaption><b>Green Hill</b> · 第 1 幕</figcaption></figure> <figure><img src="../images/level-4.png" width="840" height="426" loading="lazy" alt="Bridge:悬崖和水面上的原木桥" /><figcaption><b>Bridge</b> · 第 1 幕</figcaption></figure> <figure><img src="../images/level-7.png" width="840" height="426" loading="lazy" alt="Jungle:森林中央的瀑布和平台" /><figcaption><b>Jungle</b> · 第 1 幕</figcaption></figure> <figure><img src="../images/level-10.png" width="840" height="426" loading="lazy" alt="Labyrinth:水下雕刻的绿色方块" /><figcaption><b>Labyrinth</b> · 第 1 幕</figcaption></figure> <figure><img src="../images/level-13.png" width="840" height="426" loading="lazy" alt="Scrap Brain:夕阳下城市前的工厂" /><figcaption><b>Scrap Brain</b> · 第 1 幕</figcaption></figure> <figure><img src="../images/level-16.png" width="840" height="426" loading="lazy" alt="Sky Base:夜色中的蓝色钢梁" /><figcaption><b>Sky Base</b> · 第 1 幕</figcaption></figure> <figure><img src="../images/boss.png" width="609" height="309" loading="lazy" alt="Green Hill 结尾,博士驾驶飞行机器悬在索尼克上方" /><figcaption><b>第一个 Boss</b> · Green Hill,第 3 幕</figcaption></figure> <figure><img src="../images/special.png" width="840" height="426" loading="lazy" alt="特殊关卡:星星、金环和弹簧" /><figcaption><b>特殊关卡</b> · 金环和弹簧</figcaption></figure> </div> </div> </section> <section id="versus"> <div class="wrap split"> <figure> <img src="../images/versus.png" width="840" height="426" loading="lazy" class="smooth" alt="Green Hill 中的四人竞速,排名显示在右上角" /> <figcaption><b>四人竞速</b>,对手是三个电脑选手。</figcaption> </figure> <div> <h2>对战电脑选手</h2> <p>在 <b>MULTIPLAYER</b> 中,你可以在游戏的各个关卡里与 1 到 4 名电脑控制的选手较量(夺旗模式最多 5 名),共有四种规则:</p> <p><b>竞速</b>:最先抵达路牌者获胜。<b>夺旗</b>:持旗时间最长者获胜。<b>金环</b>:收集金环最多者获胜。<b>死斗</b>:成为最后的幸存者。</p> <p>想和真人玩家一较高下?请前往<a href="#complete">完整版</a>。</p> </div> </div> </section> <section id="complete"> <div class="wrap"> <div class="full"> <h2>完整版:sonic.mimichat.fr</h2> <p>本游戏源自 <strong>Sonic PHP</strong>,其原版完整版可在 <a href="https://sonic.mimichat.fr/" target="_blank" rel="noopener">sonic.mimichat.fr</a> 游玩。这里有的一切它都有,此外还有:</p> <ul> <li><strong>最多 6 人的在线多人模式</strong>:竞速、夺旗、金环或死斗;</li> <li>公开房间,或使用 4 个字母代码的私人房间;空位由电脑选手补上;</li> <li>房间内和游戏中的聊天;</li> <li>每局游戏的<strong>回放</strong>;</li> <li>桌面版(原生 PHP),可加入与浏览器相同的房间。</li> </ul> <a class="cta pixel" href="https://sonic.mimichat.fr/" target="_blank" rel="noopener">在线游玩 ↗</a> </div> </div> </section> <section id="commandes"> <div class="wrap"> <h2>操作方式</h2> <div class="cards"> <div class="card"> <h3>键盘</h3> <p><kbd>←</kbd> <kbd>→</kbd> 奔跑<br /> <kbd>↑</kbd> 向上看,<kbd>↓</kbd> 蜷成球<br /> <kbd>空格</kbd> 跳跃<br /> <kbd>回车</kbd> 菜单和暂停<br /> <kbd>Esc</kbd> 返回标题画面</p> </div> <div class="card"> <h3>手柄</h3> <p>方向键或摇杆奔跑,<b>A</b>、<b>B</b>、<b>X</b> 或 <b>Y</b> 跳跃,<b>Start</b> 打开菜单和暂停,<b>Select</b> 返回标题画面。</p> </div> <div class="card"> <h3>手机</h3> <p>左侧是用于奔跑的方向键;右侧 <b>JUMP</b> 跳跃,<b>ROLL</b> 蜷成球,<b>START</b> 暂停,<b>MENU</b> 返回标题画面。请横向握持手机。</p> </div> </div> <p style="margin-top: 28px; text-align: center"><a class="cta pixel" href="../play/?back=../zh/">▶ 立即游玩</a></p> </div> </section> <section id="fabrication"> <div class="wrap split"> <div> <h2>制作过程</h2> <p><strong>Sonic PHP</strong> 完全用 PHP 编写:物理、物体、敌人、Boss、摄像机和电脑选手都是如此。关卡、图像及其色彩循环是从原版卡带中解码出来的,音乐则是在模拟器中运行游戏的 Z80 音频程序得到的。</p> <p>在这里,游戏被移植到 <a href="https://github.com/davidnurdin/jumPhp" target="_blank" rel="noopener">JumPHP</a> 引擎上:同一份代码既能在电脑窗口中运行,也能在浏览器中运行,浏览器里的 PHP 被编译为 <strong>WebAssembly</strong>。游戏逻辑与原版一致,只有显示、声音、操作和存档经由 JumPHP 处理。</p> <p>代码:<a href="https://github.com/davidnurdin/sonic-jumphp" target="_blank" rel="noopener">sonic-jumphp</a>(本版本)和 <a href="https://github.com/davidnurdin/sonicGamePhp" target="_blank" rel="noopener">sonicGamePhp</a>(完整版)。</p> </div> <figure> <img src="../images/title.png" width="840" height="426" loading="lazy" class="smooth" alt="标题画面,包含标志以及 START、MULTIPLAYER、OPTIONS、BEST TIMES 菜单" /> <figcaption><b>标题画面</b>及其菜单。</figcaption> </figure> </div> </section> <section id="questions"> <div class="wrap"> <h2>常见问题</h2> <details> <summary>需要安装什么吗?</summary> <p>不需要:游戏直接在浏览器中运行,电脑和手机都可以。首次加载会下载约 25 MB(WebAssembly 版 PHP、关卡、图像和音乐),之后全部缓存在本地。</p> </details> <details> <summary>和完整版有什么区别?</summary> <p><a href="https://sonic.mimichat.fr/" target="_blank" rel="noopener">完整版</a>增加了最多 6 人的在线多人模式、房间、聊天和回放。本版本是移植到 JumPHP 的同一款游戏,可单人游玩或与电脑选手对战。</p> </details> <details> <summary>我的成绩会保存吗?</summary> <p>会:最佳成绩、幽灵和选项都保存在你的浏览器中。</p> </details> <details> <summary>可以在浏览器之外玩吗?</summary> <p>可以,使用 JumPHP 和 Docker:<code>bin/jumphp run sonic</code> 会在带声音的窗口中打开游戏。请参阅 <a href="https://github.com/davidnurdin/sonic-jumphp" target="_blank" rel="noopener">GitHub 仓库</a>。</p> </details> </div> </section> </main> <div class="ground"></div> <footer> <div class="wrap"> <p>免费、无广告的粉丝重制版,使用 <a href="https://github.com/davidnurdin/jumPhp" target="_blank" rel="noopener">JumPHP</a> 制作。</p> <p>Sonic the Hedgehog © SEGA 1991;Master System 版由 Ancient 开发。本项目与 SEGA 和 Ancient 均无关联;角色、图像、关卡和音乐归其作者所有。</p> </div> </footer></body></html>