Ejemplo Roblox · Ball Game
Basado en Ball game open source , distribuido como ball game.rbxl. Conserva la espera de 5 segundos, empujar la bola rosa entre tres paredes desalineadas, tocar WinPiece, volver la bola dorada y mostrar Winner.
Examina el original
Abre y juega en Roblox Studio; detén y revisa scripts, avatar, escena y propiedades sin cambiar el .rbxl.

Personaje, césped, paredes, base gris y meta originales.

GetWinner original detecta el contacto de la bola con WinPiece.
Dos scripts crean la bola y detectan la victoria. Roblox aporta renderizado, personaje, entrada, cámara, animación, física y entorno servidor. Bola: 5×5×5 studs; césped: 18×1×74; centros de paredes: (22,17.5,34), (32,17.5,15), (21.5,17.5,-4). Son valores exclusivos del ejemplo.
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)En escenas Part simples, ejecuta este fragmento de solo lectura en Command Bar con Play detenido para mostrar propiedades en Output. Mallas, texturas y esqueletos complejos requieren tratamiento separado. No exporta un juego 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
endCorrespondencia con H5
| Original | Navegador |
|---|---|
CreateBall: wait(5), Part, Neon | main.js: espera, malla y cuerpo rígido dinámico |
| GetWinner: Touched, PlayerWon | main.js: victoria única, bola dorada y Winner |
| Map1, WinPiece, aparición | level.js + main.js: disposición, geometría y colisiones, incluidas barreras invisibles |
| Césped, ladrillo, metal, tierra, cielo | environment.js: materiales y texturas locales |
| R15 Man, Pal Hair, camiseta, jeans | avatar.js: 15 segmentos, cabello, sonrisa, ropa y suelas blancas |
| Humanoid/cámara | main.js, avatar.js, camera.js: movimiento, salto, animación, seguimiento, órbita y zoom |
| Message / Hint | HUD HTML/CSS y pantallas de inicio, pausa y victoria |
El original carga el avatar de la cuenta durante la ejecución. Esta versión lo recrea con geometría y texturas locales, sin importar mallas oficiales Roblox. Los Parts simples siguen la distribución real; otros proyectos pueden reutilizar modelos/texturas con permiso de exportación.

Avatar de frente: cabello, sonrisa, camiseta azul-negra, pantalón oscuro y suelas blancas.

Vista lateral de cabello, segmentos del cuerpo y zapatos.
Convención: 1 stud = 0,3 m, origen (27,15,15), radio 0,75 m. Ajusta conversión, masa, fricción, amortiguación del rodamiento y límite de velocidad para tu juego.

Nivel reconstruido con tres obstáculos, límites y meta.
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');
});Se agregaron movimiento/salto táctil, pausa, reinicio, pantalla completa, inspección de avatar y aviso de WebGL no disponible. No se migraron cuentas Roblox, Robux, sincronización multijugador ni guardado en la nube. No es un runtime Roblox completo.
Ejecuta y prueba
Extrae en ball-game-h5 con package.json en la raíz. Incluye level.js, avatar.js, environment.js, camera.js, main.js, SOURCE-MAPPING.md y Lua original en reference/.
npm ci
npm run devAbre http://127.0.0.1:5174/. La prueba usó Move to Combos/ball-game-h5 en el escritorio; adapta la ruta. Espera 5 segundos al iniciar. WASD/flechas mueven, espacio salta, arrastrar orbita, rueda acerca, P pausa, R reinicia y F activa pantalla completa. Inspeccionar el avatar congela la partida; volver la reanuda.

Tercera persona local: empuja físicamente la bola rosa.
Desde la cámara inicial, pasa las paredes por derecha, izquierda, derecha, y entra en el hueco final. El contacto real con WinPiece vuelve dorada la bola y muestra Winner. La prueba local completó la victoria con teclado/física y revisó aterrizaje, pausa, reinicio, cámara e inspección.

Victoria local completa: bola dorada y Winner.
Genera y publica
Detén dev y comprueba la salida final en http://127.0.0.1:4174/:
npm run build
npm run previewEl código incluye cover.png. Crea tu juego, conserva el vínculo para actualizar y prueba el enlace público sin servidor local. La actualización documentada de personaje/escena fue revisión 2, publicada con submission_is_current=true. Jugar Ball Game H5 , código 70261. Se completó una victoria en línea con teclado; los botones móviles solo se revisaron en viewport, sin teléfono real.

Ball Game H5 actualizado en Combos, con el servidor local detenido.
- Código H5 completo, referencias Lua y correspondencias
- Versión lista con index.html en la raíz extraída
Fuente: Guía de integración de Combos , revisada el 2026-10-08 con CLI v1.14.2. Los resultados corresponden a las pruebas documentadas en la guía original.