From 61026a1df019d9c9ce749692807aeb0645feb2de Mon Sep 17 00:00:00 2001 From: min Date: Tue, 9 Jun 2026 23:29:41 +0300 Subject: [PATCH] =?UTF-8?q?feat(docs):=20=D0=BA=D0=BE=D0=BC=D0=BF=D0=BE?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D1=82=20=20=D0=BF=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=BA=D0=BB=D1=8E=D1=87=D0=B0=D0=B5=D1=82=20JS/Lua=20=D0=B8?= =?UTF-8?q?=D0=BD=D0=BB=D0=B0=D0=B9=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В уроке 50 (и можно дальше) в тексте было много game.ui.showText, game.broadcast и т.д. — это JS-API. В Lua-вкладке вики они оставались JS — путало юзера. Фикс: - Новый компонент использует useDocsLang(). Если lang='lua' и lua задан — показывает Lua-эквивалент. - В уроке 50 заменил все инлайны game.* на с Lua-параллелями: - game.ui.showText → __rbxl_show_text - game.sound.play → winSound:Play() - game.onMessage/broadcast → BindableEvent:Connect/Fire - game.self.onTouch/onInteract/onClick → Touched/UIS+Heartbeat/ClickDetector - game.onTick → RunService.Heartbeat - game.after/every → task.delay/spawn - game.tween → TweenService:Create - game.scene.spawnNpc → __rbxl_spawn_npc - game.ui.score → __rbxl_score_set --- src/community/docsLessons.jsx | 71 ++++++++++++++++++++++++----------- 1 file changed, 49 insertions(+), 22 deletions(-) diff --git a/src/community/docsLessons.jsx b/src/community/docsLessons.jsx index bcc9998..680450a 100644 --- a/src/community/docsLessons.jsx +++ b/src/community/docsLessons.jsx @@ -1,6 +1,6 @@ import React from 'react'; import { Code, ScriptKind, Step, Note, Try, Shot } from './docsData'; -import { LangTabs } from './docsLang'; +import { LangTabs, useDocsLang } from './docsLang'; import { LUA_OVERRIDES } from './docsGamesBuildersLua'; /** @@ -20,6 +20,17 @@ function CodeBoth({ game, script, children }) { ); } +/** + * Инлайн-API-имена в тексте уроков, меняющиеся в зависимости от JS/Lua вкладки. + * + * Если lua не задан — показывает js в обоих режимах. + */ +function Api({ js, lua }) { + const { lang } = useDocsLang(); + const txt = lang === 'lua' && lua ? lua : js; + return {txt}; +} + /** * docsLessons.jsx — тексты уроков для 50 мини-игр (раздел K вики). * @@ -7270,8 +7281,10 @@ game.self.onTouch(() => {

И обязательно покажи игроку, когда он победил — - надписью game.ui.showText('Победа!', 5), - звуком game.sound.play('win') и конфетти. + надписью , + звуком и конфетти.

Шаг 4. Напиши скрипты

@@ -7279,34 +7292,48 @@ game.self.onTouch(() => { Сцена сама по себе не «живая» — её оживляют скрипты. Начинай с главного скрипта: в нём заводи переменные (счёт, флажок победы) и лови сообщения через - game.onMessage('имя', fn). На объекты вешай - небольшие скрипты — они шлют сообщения главному через - game.broadcast('имя'). Так главный скрипт - узнаёт, что монетку собрали или кнопку нажали. Ты делал - так в каждом уроке. + <> . + На объекты вешай небольшие скрипты — они шлют сообщения + главному через . + Так главный скрипт узнаёт, что монетку собрали или кнопку + нажали. Ты делал так в каждом уроке.

Каждый скрипт работает в своей «песочнице» — переменные одного скрипта не видны другому. Поэтому скрипты общаются - сообщениями: один шлёт game.broadcast('имя'), - другой ловит game.onMessage('имя', fn). Можно - передать данные: game.broadcast('имя', {'{'} ... {'}'}). + сообщениями: один шлёт , + другой ловит . + Можно передать данные: .

Базовый набор инструментов, который ты знаешь:

    -
  • game.self.onTouch — реакция на касание;
  • -
  • game.self.onInteract — реакция на +
  • — реакция на касание;
  • +
  • — реакция на E;
  • -
  • game.self.onClick — реакция на клик;
  • -
  • game.broadcast и game.onMessage +
  • — реакция на клик;
  • +
  • и + <> — связь между скриптами;
  • -
  • game.onTick — каждый кадр;
  • -
  • game.after и game.every — - таймеры;
  • -
  • game.tween — плавное движение;
  • -
  • game.scene.spawnNpc — враги и NPC;
  • -
  • game.ui.score и - game.ui.showText — счёт и подсказки.
  • +
  • — каждый кадр;
  • +
  • — таймеры;
  • +
  • — плавное движение;
  • +
  • — враги и NPC;
  • +
  • и + <> — счёт и подсказки.

Шаг 5. Проверяй и улучшай