feat: 50 игр на Lua + импорт Roblox для всех + поддержка Lua в плеере #39

Merged
min merged 215 commits from feat/lua-50-games-bundle into main 2026-06-09 21:59:25 +00:00
Showing only changes of commit b2f6b084df - Show all commits

View File

@ -1405,7 +1405,7 @@ game.self.onTouch(() => {
<h3 className="lessonH">Шаг 3. Главный скрипт</h3> <h3 className="lessonH">Шаг 3. Главный скрипт</h3>
<ScriptKind kind="global" /> <ScriptKind kind="global" />
<Code>{`// === ИГРА «ЭХО-КОМНАТА» — главный скрипт === <CodeBoth game="echo-room" script="g11_main">{`// === ИГРА «ЭХО-КОМНАТА» — главный скрипт ===
let stepped = 0; // на сколько плиток наступили let stepped = 0; // на сколько плиток наступили
const TOTAL = 6; const TOTAL = 6;
@ -1436,7 +1436,7 @@ game.onMessage('finish', () => {
const p = game.player.position; const p = game.player.position;
game.scene.spawnParticles('confetti', game.scene.spawnParticles('confetti',
{ x: p.x, y: p.y + 3, z: p.z }, { duration: 3, count: 3 }); { x: p.x, y: p.y + 3, z: p.z }, { duration: 3, count: 3 });
});`}</Code> });`}</CodeBoth>
<h3 className="lessonH">Шаг 4. Скрипт звуковой плитки</h3> <h3 className="lessonH">Шаг 4. Скрипт звуковой плитки</h3>
<p> <p>
@ -1446,7 +1446,7 @@ game.onMessage('finish', () => {
<code> 'hit'</code>. <code> 'hit'</code>.
</p> </p>
<ScriptKind kind="object" on="каждую цветную плитку" /> <ScriptKind kind="object" on="каждую цветную плитку" />
<Code>{`// === Скрипт звуковой плитки === <CodeBoth game="echo-room" script="g11_tile_1">{`// === Скрипт звуковой плитки ===
let used = false; // на эту плитку уже наступали? let used = false; // на эту плитку уже наступали?
@ -1461,7 +1461,7 @@ game.self.onTouch(() => {
used = true; used = true;
game.broadcast('step'); // сообщаем главному скрипту о новой плитке game.broadcast('step'); // сообщаем главному скрипту о новой плитке
} }
});`}</Code> });`}</CodeBoth>
<p>Разберём:</p> <p>Разберём:</p>
<ul> <ul>
<li><code>game.sound.play('coin')</code> проигрывает <li><code>game.sound.play('coin')</code> проигрывает
@ -1481,10 +1481,10 @@ game.self.onTouch(() => {
<h3 className="lessonH">Шаг 5. Скрипт финиша и проверка</h3> <h3 className="lessonH">Шаг 5. Скрипт финиша и проверка</h3>
<ScriptKind kind="object" on="зелёный финиш" /> <ScriptKind kind="object" on="зелёный финиш" />
<Code>{`// === Скрипт финиша === <CodeBoth game="echo-room" script="g11_finish">{`// === Скрипт финиша ===
game.self.onTouch(() => { game.self.onTouch(() => {
game.broadcast('finish'); // сообщаем главному скрипту о финише game.broadcast('finish'); // сообщаем главному скрипту о финише
});`}</Code> });`}</CodeBoth>
<ul> <ul>
<li>наступаешь на плитку звук и искры;</li> <li>наступаешь на плитку звук и искры;</li>
<li>прошёл все 6 появится подсказка идти на финиш;</li> <li>прошёл все 6 появится подсказка идти на финиш;</li>