Пример Roblox · Ball Game
Основа — Ball game open source , файл ball game.rbxl. Правила сохранены: ждать 5 секунд, протолкнуть розовый мяч между тремя смещёнными стенами, коснуться WinPiece, окрасить мяч в золотой и показать Winner.
Изучи оригинал
Открой и сыграй в Roblox Studio, останови и исследуй скрипты, аватар, сцену и свойства, не меняя .rbxl.

Исходный персонаж, трава, стены, серое основание и финиш.

Исходный GetWinner отслеживает контакт мяча с WinPiece.
Два скрипта создают мяч и определяют победу. Roblox обеспечивает рендеринг, персонажа, ввод, камеру, анимацию, физику и серверную среду. Мяч: 5×5×5 studs, трава: 18×1×74, центры стен: (22,17.5,34), (32,17.5,15), (21.5,17.5,-4). Это параметры только данного примера.
Ball.Touched:Connect(function(partTouching)
if partTouching.Name == "WinPiece" then
Ball.BrickColor = BrickColor.new("Gold")
warn("Winner!")
game.Workspace.Map1.PlayerWon.Value = true
end
end)Для простых Part-сцен этот фрагмент только читает свойства и выводит их в Output через Command Bar при остановленном Play. Сложные меши, текстуры и скелеты требуют отдельной обработки. Команда не экспортирует готовую H5-игру.
for _, part in ipairs(workspace:GetDescendants()) do
if part:IsA("BasePart") then
print(part:GetFullName(), part.Position, part.Size,
part.Material, part.Transparency)
end
endСоответствие исходников H5
| Оригинал | Браузер |
|---|---|
CreateBall: wait(5), Part, Neon | main.js: задержка, меш и динамическое твёрдое тело |
| GetWinner: Touched, PlayerWon | main.js: однократная победа, золотой мяч, Winner |
| Map1, WinPiece, точка появления | level.js + main.js: расположение, геометрия, коллизии, включая невидимые барьеры |
| Трава, кирпич, металл, земля, небо | environment.js: материалы и локальные текстуры |
| R15 Man, Pal Hair, футболка, джинсы | avatar.js: 15 сегментов тела, волосы, улыбка, одежда, белые подошвы |
| Humanoid/камера | main.js, avatar.js, camera.js: движение, прыжок, анимация, слежение, вращение, масштаб |
| Message / Hint | HTML/CSS HUD, экраны начала, паузы и победы |
Оригинал загружает аватар аккаунта во время исполнения. Здесь внешность воссоздана локальной геометрией и текстурами, без импорта официальных мешей Roblox. Простые Parts повторяют реальную планировку; в других проектах можно повторно использовать модели/текстуры с правом экспорта.

Аватар спереди: волосы, улыбка, сине-чёрный верх, тёмные брюки и белые подошвы.

Вид сбоку: волосы, сегменты тела и обувь.
В примере 1 stud = 0,3 м, начало координат (27,15,15), радиус мяча 0,75 м. Преобразование координат, массу, трение, затухание качения и ограничения скорости настрой под свою игру.

Воссозданный уровень с тремя препятствиями, границами и финишем.
ballBody.addEventListener('collide', event => {
if (event.body !== winPiece.body || state.mode !== 'playing' || state.won) return;
state.won = true;
state.phase = 'finished';
pink.color.set('#fff000');
pink.emissive.set('#fff000');
glow.material.color.set('#fff54b');
document.querySelector('#status').textContent = 'Winner!';
show('won');
});Добавлены сенсорные движение/прыжок, пауза/продолжение, повтор, полный экран, осмотр аватара и сообщение об отсутствии WebGL. Аккаунты Roblox, Robux, синхронизация мультиплеера и облачные сохранения не перенесены. Это не полноценная среда Roblox.
Запусти и проверь
Распакуй в ball-game-h5 с package.json в корне. В комплекте level.js, avatar.js, environment.js, camera.js, main.js, SOURCE-MAPPING.md и исходные Lua в reference/.
npm ci
npm run devОткрой http://127.0.0.1:5174/. В записи путь — Move to Combos/ball-game-h5 на рабочем столе; используй свой. После начала жди мяч 5 секунд. WASD/стрелки двигают, пробел прыгает, перетаскивание вращает камеру, колесо меняет масштаб, P ставит на паузу, R повторяет, F включает полный экран. Осмотр аватара замораживает раунд, возврат продолжает его.

Локальный вид от третьего лица: физически толкай розовый мяч.
С исходной камеры обходи стены справа, слева, справа, затем войди в конечное углубление. Реальный контакт с WinPiece делает мяч золотым и показывает Winner. Локально пройдена полная победа клавиатурой и физикой; проверены приземление, пауза, повтор, камера и осмотр.

Полная локальная победа: золотой мяч и Winner.
Собери и опубликуй
Останови dev и проверь финальную сборку на http://127.0.0.1:4174/:
npm run build
npm run previewИсходники содержат cover.png. Создай свою игру, сохрани привязку для обновлений и проверь публичную ссылку без локального сервера. Записанное обновление персонажа/сцены — ревизия 2, опубликована с submission_is_current=true. Играть в Ball Game H5 , код 70261. Онлайн достигнута победа с клавиатурой; мобильные кнопки проверены только в viewport, не на телефоне.

Обновлённый Ball Game H5 на Combos при остановленном локальном сервере.
Источник: руководство по интеграции с Combos , проверено 2026-10-08 с CLI v1.14.2. Результаты относятся к запускам, описанным в оригинале.