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 ed23ec782c - Show all commits

View File

@ -3892,7 +3892,7 @@ game.self.onTouch(() => {
<h3 className="lessonH">Шаг 2. Главный скрипт</h3> <h3 className="lessonH">Шаг 2. Главный скрипт</h3>
<ScriptKind kind="global" /> <ScriptKind kind="global" />
<Code>{`// === ИГРА «ПРИЗРАЧНЫЕ СТЕНЫ» — главный скрипт === <CodeBoth game="ghost-walls" script="g28_main">{`// === ИГРА «ПРИЗРАЧНЫЕ СТЕНЫ» — главный скрипт ===
game.ui.showText('Кликай по фиолетовым стенам — пройди сквозь!', 4); game.ui.showText('Кликай по фиолетовым стенам — пройди сквозь!', 4);
@ -3904,7 +3904,7 @@ game.onMessage('win', () => {
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>
<p> <p>
Главный скрипт только обрабатывает победу он ловит Главный скрипт только обрабатывает победу он ловит
сообщение <code>'win'</code> от финиша через сообщение <code>'win'</code> от финиша через
@ -3915,7 +3915,7 @@ game.onMessage('win', () => {
<h3 className="lessonH">Шаг 3. Скрипт призрачной стены</h3> <h3 className="lessonH">Шаг 3. Скрипт призрачной стены</h3>
<p>Этот скрипт вешается на <b>каждую</b> стену.</p> <p>Этот скрипт вешается на <b>каждую</b> стену.</p>
<ScriptKind kind="object" on="каждую стену" /> <ScriptKind kind="object" on="каждую стену" />
<Code>{`// === Скрипт призрачной стены === <CodeBoth game="ghost-walls" script="g28_wall_1">{`// === Скрипт призрачной стены ===
let ghost = false; let ghost = false;
game.self.onClick(() => { game.self.onClick(() => {
@ -3926,7 +3926,7 @@ game.self.onClick(() => {
game.scene.setOpacity(game.self.ref, 0.25); game.scene.setOpacity(game.self.ref, 0.25);
game.sound.play('click'); game.sound.play('click');
game.ui.showText('Стена стала призрачной!', 1.5); game.ui.showText('Стена стала призрачной!', 1.5);
});`}</Code> });`}</CodeBoth>
<p>Разберём:</p> <p>Разберём:</p>
<ul> <ul>
<li><code>game.self.onClick(fn)</code> функция внутри <li><code>game.self.onClick(fn)</code> функция внутри