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 q5.js o muestrees los colores de los píxeles
en tu lienzo usando 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.
Encontrar Sprites
Puedes obtener un array de sprites encontrados en un punto con la función
world.getSpritesAt
. Ten en cuenta que los sprites deben tener cuerpos físicos para ser
encontrados.
world.getSpriteAt
devuelve el primer sprite encontrado en un punto, el que tiene el
valor de capa más alto.
Ten en cuenta que los sprites deben tener cuerpos físicos para ser detectados.
¡Intenta mover el ratón para hacer que los sprites dejen de moverse!
Emisión de Rayos
La función world.rayCastAll
encuentra todos los sprites que intersectan con un rayo
(línea), excluyendo cualquier sprite que se intersecte con el punto de inicio.
La función world.rayCast
es similar, pero solo devuelve el primer sprite.
Ten en cuenta que los sprites deben tener cuerpos físicos para ser detectados.
Proporciona a estas funciones los puntos de inicio y fin del rayo.
Alternativamente, establece el punto de inicio del rayo, la dirección y opcionalmente la distancia
máxima que debe recorrer.
¡Intenta mover el ratón en el ejemplo, cuando el rayo se intersecta con un sprite, este se vuelve
naranja!
➡️ demo completo de ray
casting
Dimensionamiento del Mundo
El world.meterSize
predeterminado es 60, por lo que un sprite con un ancho de 60
unidades tendrá 1 metro de ancho en la simulación física.
La simulación física no puede funcionar bien cuando los sprites son demasiado pequeños o demasiado
grandes. ¡Mantén el tamaño a escala humana!
Mundo en Cuadrícula
Cuando p5play.snapToGrid
es verdadero, los sprites se ajustarán a una cuadrícula cuando
se muevan con las funciones move
y moveTo
. p5play.gridSize
está configurado a 0.5 por defecto.
En este ejemplo, scale(32)
hace que cada unidad de visualización tenga 32 píxeles de
tamaño. Se muestra una cuadrícula como referencia. Los sprites tienen solo 1x1 unidades de tamaño,
por lo que el tamaño del metro del mundo se establece en 2.