frameCraft – Extensión educativa para pygame
Extensión educativa para pygame
frameCraft lleva la programación visual al aula
El desarrollo de juegos, las simulaciones y la programación visual resultan especialmente motivadores para el alumnado. Sin embargo, empezar directamente con frameworks tradicionales suele introducir una complejidad técnica innecesaria en el aula.
frameCraft añade una capa didáctica simplificada sobre pygame: el alumnado puede crear proyectos interactivos con mayor rapidez y centrarse en la lógica, los algoritmos, los estados y el modelado en lugar de en los detalles internos del motor.

Menos barreras de entrada, resultados visibles y estructuras de juego claras: frameCraft hace que pygame sea más accesible para el uso cotidiano en el aula.
¿Por qué frameCraft?
Menos detalles del motor, más informática
frameCraft no es una extensión tradicional de un motor de juegos, sino una herramienta educativa para la enseñanza moderna de informática. La biblioteca reduce las barreras técnicas sin ocultar los conceptos fundamentales.
Inicio rápido
Componentes habituales de pygame, como el bucle principal, la gestión de eventos y el renderizado, quedan integrados en una API pensada para el aprendizaje. Así, el alumnado puede crear antes sus primeros programas funcionales.
Estructura clara
Escenas, reglas, objetos, colisiones y estados están claramente separados. Esto facilita una organización del código y un modelado comprensibles.
Aprendizaje basado en proyectos
Juegos, simulaciones y modelos visuales crecen paso a paso: desde el primer objeto hasta el HUD, la lógica de niveles y el acabado final.

Valor educativo
Los proyectos visibles crean oportunidades de aprendizaje significativas
Las primeras experiencias de éxito son especialmente importantes en el aula. Cuando un personaje se mueve, dos objetos colisionan o cambia de forma visible el estado de un juego, el alumnado experimenta directamente conceptos abstractos de informática.
Esto permite trabajar de forma práctica conceptos fundamentales como la modularización, la abstracción, el pensamiento algorítmico, las estructuras de datos y el modelado orientado a objetos.
Abierto y portable
Empieza en CodeRoom y continúa con Python y pygame
frameCraft está disponible como proyecto de código abierto en GitHub y como paquete de Python en PyPI. De este modo, los proyectos creados en CodeRoom también pueden continuar fuera de la plataforma educativa utilizando CPython y pygame estándar.
Código abierto en GitHub
El código fuente de frameCraft está disponible públicamente. Las versiones, los ejemplos y la evolución de la biblioteca pueden consultarse directamente en GitHub.
Instalación desde PyPI
Para desarrollar localmente con Python y pygame estándar, frameCraft puede instalarse directamente con pip.
pip install pygame-framecraftColección de cursos
Cuatro proyectos de juegos muestran distintas formas de utilizar frameCraft
Frogger ofrece una introducción especialmente accesible al movimiento, los carriles de tráfico, la estructura de niveles y las colisiones. Los demás proyectos amplían el abanico de conceptos: Breakout se centra en los rebotes y las cuadrículas de bloques, Space Invaders introduce grupos de objetos y pools, y Flappy Colors Flight combina entrada, gravedad y dificultad progresiva.

Proyecto completo de Frogger
El curso avanza desde la primera escena hasta el movimiento, los botones táctiles, los coches definidos mediante datos, las vidas, las condiciones de victoria, el HUD, la lógica de reinicio y el acabado gráfico.
Ver curso
Crear Breakout
Breakout concentra el desarrollo del juego en la pala, la pelota, la cuadrícula de bloques, los rebotes, la puntuación, las vidas, la zona de pérdida y la lógica de reinicio.
Ver curso
Flappy Colors Flight
El proyecto combina un personaje visible, la entrada para aletear, la gravedad, pares de tuberías, un pool de entidades, la puntuación y una dificultad creciente.
Ver curso
Space Invaders
El prototipo arcade muestra cómo interactúan proyectiles, grupos de enemigos, bucles anidados, colisiones, puntuación, estados y efectos.
Ver cursoElegir un proyecto
Cada proyecto pone el foco en conceptos informáticos diferentes
Los cursos son más que simples variantes de una misma idea de juego. Permiten trabajar distintos objetivos de aprendizaje y pueden elegirse según el grupo, el tiempo disponible y el tema que se quiera abordar.
Frogger: estados en el tablero
Adecuado para trabajar carriles de tráfico, movimiento en direcciones discretas, límites de nivel, vidas y condiciones de victoria.
Breakout: las colisiones como regla central
Adecuado para unidades sobre rebotes, detección de impactos, cuadrículas de bloques, contadores, zonas de pérdida y mecanismos claros de fin de partida.
Flappy: movimiento y dificultad
Un ejemplo claro para trabajar velocidad, gravedad, actualizaciones basadas en el tiempo, reutilización de obstáculos, puntuación única y equilibrio del juego.
Space Invaders: organizar grupos de objetos
Útil para bucles, bucles anidados, entidades numeradas, pools de proyectiles, grupos de enemigos, gestión de colisiones y pools de efectos.
Código legible
Las reglas del juego ocupan el centro
Con frameCraft, el alumnado no necesita empezar por los detalles internos del motor. Las ideas principales se ven directamente en el código: los objetos utilizan etiquetas, los estados del juego se almacenan en la escena y las reglas y colisiones modifican el juego.
- Las etiquetas conectan lógicamente objetos relacionados.
- ctx.vars almacena estados del juego como vidas, puntuación o fin de partida.
- Los manejadores de colisiones hacen explícita y legible la lógica basada en eventos.
import frameCraft as fc
RANA_INICIO_X = 160
RANA_INICIO_Y = 180
ANCHO_COCHE = 46
ALTO_COCHE = 20
JUEGO(
"Frogger - Colisiones",
ventana=(320, 200),
fps=30,
fondo=(30, 120, 40)
)
ESCENA("principal", vidas=5, muerto=False)
@CONSTRUIR_ESCENA("principal")
def construir(ctx):
OBJETO("rana", pos=(RANA_INICIO_X, RANA_INICIO_Y), tag="rana")
RECTANGULO("rana", 24, 24, disparador=True)
OBJETO("coche_0", pos=(40, 100), tag="coche")
RECTANGULO("coche_0", ANCHO_COCHE, ALTO_COCHE, disparador=True)
VELOCIDAD("coche_0", 90, 0)
def colision_coche(ctx, rana_e, coche_e):
if ctx.vars.get("muerto"):
return
ctx.vars["vidas"] -= 1
rana_ent = ctx.E("rana")
if ctx.vars["vidas"] <= 0:
ctx.vars["muerto"] = True
if rana_ent is not None:
rana_ent.alive = False
else:
if rana_ent is not None:
rana_ent.x = RANA_INICIO_X
rana_ent.y = RANA_INICIO_Y
AL_COLISIONAR("rana", "coche", colision_coche)
fc.START_STANDALONE("principal")
Proyectos habituales para el aula
frameCraft no se limita a los juegos arcade
La misma estructura puede utilizarse para juegos clásicos, simulaciones, visualizaciones matemáticas y experimentos creativos. Esto hace que frameCraft sea adecuado tanto para las clases de informática como para proyectos STEM interdisciplinarios.
Juegos clásicos
Snake, Breakout, Tetris, Pong, Frogger y otros pequeños juegos arcade son ideales para modelar movimiento, colisiones y estados del juego.
Simulaciones
El movimiento, la velocidad, el momento, las colisiones, las ondas, las oscilaciones y los modelos basados en agentes pueden explorarse como sistemas dinámicos.
Visualizaciones creativas
La simetría, los patrones, los espacios de color, las imágenes generativas y las visualizaciones de datos conectan la programación con el diseño creativo.

Diseñado para centros educativos
En el navegador, estructurado y flexible
Al combinar un enfoque basado en pygame, la ejecución en el navegador mediante CodeRoom y una API didáctica simplificada, frameCraft se convierte en una herramienta práctica para clases, proyectos, aprendizaje diferenciado y actividades breves.
El profesorado se beneficia de componentes claros y de una preparación más rápida de los proyectos. El alumnado obtiene resultados visibles, tareas creativas y un enfoque que sigue conectado con los conceptos fundamentales de informática.
Siguiente paso
frameCraft convierte pygame en una herramienta para aprender informática de forma activa
Accesible, estructurado y basado en proyectos: el alumnado crea sus propios programas interactivos mientras aprende conceptos fundamentales como condiciones, bucles, funciones, estados, colisiones, estructuras de datos y modelado.