Mundo
Cada instancia de p5play tiene su propio objeto world
, que se puede utilizar para
controlar la simulación física.
La propiedad más importante de este objeto es gravity
, que tiene componentes x e y.
Dormir
world.allowSleeping
es verdadero por defecto.
Un sprite comienza a "dormir" cuando deja de moverse y no colisiona con nada nuevo. Los sprites "durmiendo" son ignorados durante la simulación física, lo que generalmente evita que el motor de física Box2D tenga que hacer cálculos innecesarios. Aunque esto es bueno para el rendimiento, a veces puede causar problemas.
Puedes despertar un sprite que duerme estableciendo sprite.sleeping
en falso.
También puedes desactivar el dormir en base a cada sprite estableciendo
sprite.allowSleeping
en falso.
Controlando el Tiempo
La proporción de world.timeScale
se establece por defecto en 1 para la simulación de
física en tiempo real. ¡Establécelo más bajo para cámara lenta. Hazlo 0 para pausar el tiempo!
Ten en cuenta que el solucionador del motor de física Box2D solo es estable hasta una escala de
tiempo de 2. Si quieres avanzar la simulación por una cantidad mayor de tiempo, ejecuta la
función world.step
varias veces.
Haz clic en el lienzo en el ejemplo para hacer que la simulación física avance en cámara lenta, 1/4 del tiempo real. El efecto de tiempo bala de Matrix se logra haciendo el fondo de cada cuadro ligeramente transparente.
world.realTime
almacena cuántos segundos de tiempo real han transcurrido desde el
inicio del mundo, incluidas las pausas.
world.physicsTime
almacena cuántos segundos han transcurrido en la simulación
física.
Pruebas de Rendimiento
Establece p5play.renderStats
en verdadero para mostrar el número de sprites dibujados,
tasa de visualización y cálculos de FPS. Para resultados más completos, usa las herramientas de
prueba de rendimiento de tu navegador web.
FPS en este contexto se refiere a cuántos cuadros por segundo puede generar tu computadora, sin incluir el retraso entre cuando los cuadros se muestran realmente en la pantalla. Cuanto más alto sea el FPS, mejor está funcionando tu juego.
Tener menos sprites y usar un lienzo más pequeño hará que tu juego funcione mejor. Para un mejor
rendimiento, no uses la función clear
de p5.js o muestrees los colores de los píxeles
en tu lienzo usando canvas.get
.
Por defecto, el motor de física Box2D realiza 8 iteraciones de velocidad
world.velocityIterations
y 3 iteraciones de posición
world.positionIterations
. Disminuir estos valores hará que la simulación sea más rápida
pero también menos precisa.
He probado p5play en todos los navegadores web y encontré que Google Chrome tiene el mejor rendimiento.