Contexto de edición
Los colores, el pincel, la simetría y las opciones de herramienta actuales, compartidos con la barra de herramientas del editor. Los comandos de dibujo los usan para los colores, el pincel y las opciones de herramienta que no se les pasan; la simetría es solo informativa y se aplica únicamente cuando la pasas. (3 funciones)
app.getContext() — lee
El contexto de edición: los ajustes que usan los comandos de dibujo para los colores, el pincel y las opciones de herramienta que no pasas, compartidos con la barra de herramientas de la interfaz. symmetry es el interruptor de simetría de la barra de herramientas, que se puede leer aquí pero NO se aplica a los comandos de forma implícita: pasa symmetry = app.getContext().symmetry a un comando de dibujo para seguirlo. Campos: { foregroundColor, backgroundColor, brushSize, brushShape, brushAngle, customBrush, pixelPerfect, eraserRightClick, ink, shades, stabilizer, pressureSize, pressureAngle, pressureGradient, pressureMin, pressureMax, velocitySize, velocityAngle, velocityGradient, velocityMin, velocityMax, dynamicsMinSize, dynamicsMinAngle, dynamicsMaxAngle, dynamicsDither, dynamicsCurve, symmetry, symmetryX, symmetryY, tilemapMode, shapeFillMode, cornerRadius, selectionCornerRadius, cornerRadiusLinked, lineWidth, curvePixelPerfect, bucketFillMode, bucketTolerance, bucketCloseGap, bucketDiagonal, bucketStopAtGrid, bucketPattern, wandFillMode, wandTolerance, wandDiagonal, wandStopAtGrid, sprayRate, scatterX, scatterY, scatterCount, blurStrength, jumbleStrength, dodgeBurnStrength, dodgeBurnHueShift, ditherPattern, ditherDensity, gradientType, gradientDithering, gradientSnap, gradientColors, gradientStops, eyedropperSource, tileIndex, tileFlipH, tileFlipV, tileRotate90, tilePlace, isoShape, isoWidth, isoDepth, isoHeight, isoBevel, isoCap, isoStyle, isoHiddenEdges, isoDirection, isoAutoShade, isoColors }. Los colores son tablas { r, g, b, a }; symmetry es un array de ejes; customBrush es { width, height, mask (lista plana de 0/1) } o nil. Cámbialo con app.setContext.
Devuelve (table): Tabla del contexto.
app.setContext(props) — modifica
Cambia el contexto de edición: los colores, el pincel, la simetría, el modo de tilemap y las opciones de herramienta actuales. Los comandos de dibujo los usan para las opciones que no se les pasan, salvo symmetry, que solo se guarda para la interfaz (y se puede leer con app.getContext) y nunca se aplica a un comando a menos que la pases. Se comparte con la interfaz: la barra de herramientas muestra el cambio, y este persiste cuando el script termina. No es una edición que se pueda deshacer.
props(table) — Las claves omitidas no cambian.foregroundColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a })) — El color de pintura: elcolorde todos los comandos de dibujo y el color inicial del degradado.backgroundColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a })) — El color secundario: el color final del degradado y lo que intercambia swapColors.brushSize(integer 1–64) — Tamaño del pincel en píxeles para las formas integradas (un pincel personalizado lo ignora). También establece el radio del aerógrafo (2 veces el tamaño).brushShape(BrushShape: "circle" | "square" | "line" | "diamond" | "cross" | "x" | "star" | "horizontal" | "custom") — "line" es una línea de 1 px inclinada segúnbrushAngle; "square" rota con él; "circle", "diamond", "cross", "x" y "star" lo ignoran; "horizontal" es una línea en ángulo 0 que lo ignora; "custom" pintacustomBrush.brushAngle(integer 0–180) — Ángulo del pincel en grados (0-180): inclina el pincel "line" y rota el pincel "square". Las demás formas lo ignoran.customBrush({ width, height, mask } with mask a flat list of 0/1, or false to clear) — La máscara que pinta un pincel personalizado: { rows = { ".#.", "###", ".#." } } o { width, height, mask } con mask una lista plana de 0/1. Normalmente se establece con app.useBrush(name) a partir de un pincel definido con app.defineBrush. Sin máscara, un pincel personalizado pinta un punto de 1 px.pixelPerfect(boolean) — Quita los escalones dobles de las esquinas en los trazos a mano alzada (con cualquier tamaño de pincel); el pincel se estampa a lo largo del camino corregido.eraserRightClick(EraserRightClick: "background" | "replace") — Botón derecho del borrador: "background" pinta el color de fondo en todo lo que toca, "replace" convierte en color de fondo solo los píxeles del color de primer plano (Aseprite).ink(Ink: "copy" | "simple" | "lock-alpha" | "shading") — Cómo se combina la pintura (trazos, aerógrafo, formas, líneas, polígono, contorno, bote de pintura, degradado, fillSelection) con los píxeles existentes: "copy" los reemplaza (el valor predeterminado), "simple" compone el alfa, "lock-alpha" recolorea solo los píxeles visibles, "shading" avanza los píxeles porshades.shades(a list of colors ("#rrggbb[aa]" or { r, g, b, a }), in order) — La rampa por la que avanza la tinta de sombreado, en orden: el cuadro Tonos del editor (o el rango de paleta seleccionado). Los comandos de dibujo la usan cuando ink es shading.stabilizer(integer 0–64) — Intensidad del estabilizador para los trazos a mano alzada: cada punto se promedia con los N puntos anteriores, lo que suaviza el temblor (el trazo va por detrás del cursor). 0 = desactivado.pressureSize(boolean) — Deja que la presión del lápiz (un mouse cuenta como presión máxima) controle el tamaño del pincel, desde dynamicsMinSize hasta brushSize.pressureAngle(boolean) — Deja que la presión del lápiz (un mouse cuenta como presión máxima) controle el ángulo del pincel, desde dynamicsMinAngle hasta dynamicsMaxAngle.pressureGradient(boolean) — Deja que la presión del lápiz (un mouse cuenta como presión máxima) mezcle el color de foregroundColor a backgroundColor a lo largo del trazo.pressureMin(integer 0–100) — Lectura (en porcentaje) del sensor de presión que corresponde al extremo bajo. Si es mayor que pressureMax, invierte la correspondencia.pressureMax(integer 0–100) — Lectura (en porcentaje) del sensor de presión que corresponde al extremo alto.velocitySize(boolean) — Deja que la velocidad del puntero controle el tamaño del pincel, desde dynamicsMinSize hasta brushSize.velocityAngle(boolean) — Deja que la velocidad del puntero controle el ángulo del pincel, desde dynamicsMinAngle hasta dynamicsMaxAngle.velocityGradient(boolean) — Deja que la velocidad del puntero mezcle el color de foregroundColor a backgroundColor a lo largo del trazo.velocityMin(integer 0–100) — Lectura (en porcentaje) del sensor de velocidad que corresponde al extremo bajo. Si es mayor que velocityMax, invierte la correspondencia.velocityMax(integer 0–100) — Lectura (en porcentaje) del sensor de velocidad que corresponde al extremo alto.dynamicsMinSize(integer 1–64) — Tamaño del pincel en el extremo bajo de un sensor asignado al tamaño (el extremo alto es brushSize).dynamicsMinAngle(integer 0–180) — Ángulo del pincel en el extremo bajo de un sensor asignado al ángulo.dynamicsMaxAngle(integer 0–180) — Ángulo del pincel en el extremo alto de un sensor asignado al ángulo.dynamicsDither(boolean) — La dinámica del degradado elige foregroundColor o backgroundColor por píxel (tramado ordenado) en lugar de mezclarlos. En los sprites indexados, las mezclas se ajustan al color de paleta más cercano.dynamicsCurve(integer 25–400) — Curva de sensibilidad en porcentaje: el valor del sensor se eleva a curve/100 (100 = lineal; por encima de 100 hace falta más presión o velocidad para que surta efecto).symmetry(lista de SymmetryAxis: "horizontal" | "vertical" | "diagonal" | "antidiagonal") — El ajuste de simetría del sprite activo (cada sprite conserva el suyo, igual que la posición de su eje): ejes de reflejo que pasan por el centro de simetría. Es solo información de lectura: los comandos de dibujo no la aplican a menos que pases symmetry = app.getContext().symmetry. Vacío = desactivada; varios ejes se combinan (horizontal + vertical = en 4 direcciones).symmetryX(a number (multiple of 0.5), or false to re-center) — Dónde está el eje de simetría vertical (y el punto en que se cruzan ambas diagonales): píxeles desde el borde izquierdo del lienzo, un múltiplo de 0.5 (entero = entre píxeles, x.5 = por el centro de un píxel). nil = centrado. Igual que symmetry, es solo información de lectura: pasa symmetryX = app.getContext().symmetryX a un comando de dibujo para seguirla. Establece false para volver a centrarlo.symmetryY(a number (multiple of 0.5), or false to re-center) — Dónde está el eje de simetría horizontal (y el cruce de las diagonales): píxeles desde el borde superior del lienzo, un múltiplo de 0.5. nil = centrado. Establece false para volver a centrarlo.tilemapMode(TilemapEditMode: "tiles" | "pixels-edit" | "pixels-auto") — Cómo trata la pintura de píxeles a una capa de tilemap: "pixels-auto" da a cada celda pintada su propio tile, "pixels-edit" edita el tile compartido en su lugar (se actualizan todas las colocaciones), "tiles" solo permite estampar tiles completos.shapeFillMode(FillMode: "outline" | "filled") — Rectángulos, elipses, polígonos y curvas cerradas: contorno o relleno.cornerRadius(an integer 0–1024 for every corner, or a list of four { topLeft, topRight, bottomRight, bottomLeft }) — Rectángulo: radios de las esquinas en píxeles, en sentido horario desde la esquina superior izquierda (0 = esquina recta), cada uno limitado a la mitad del lado menor.selectionCornerRadius(an integer 0–1024 for every corner, or a list of four { topLeft, topRight, bottomRight, bottomLeft }) — Marco rectangular: radios de las esquinas en píxeles, en sentido horario desde la esquina superior izquierda (0 = esquina recta).cornerRadiusLinked(boolean) — La barra de opciones de herramienta edita los cuatro radios de esquina a la vez (un solo campo Radio) en lugar de un campo por esquina.lineWidth(integer 1–64) — Herramientas Línea y Curva: grosor en píxeles (1 = una línea nítida de 1 px); las líneas más anchas tienen extremos redondeados.curvePixelPerfect(boolean) — Herramienta Curva: quita las esquinas en forma de L que aparecen en una curva de 1 px, para líneas de pixel art limpias.bucketFillMode(BucketFillMode: "contiguous" | "global") — Bote de pintura: solo la región conectada, o todos los píxeles que coinciden.bucketTolerance(integer 0–255) — Bote de pintura: la mayor diferencia por canal que todavía cuenta como el mismo color.bucketCloseGap(integer 0–5) — Relleno por inundación (contiguo): trata como cerrados los huecos del contorno de hasta este ancho en píxeles, para que el relleno no se escape por ellos. 0 = desactivado.bucketDiagonal(boolean) — Bote de pintura (contiguo): se extiende también a los vecinos diagonales (8 conexiones), así que la región se filtra por las líneas diagonales de 1px.bucketStopAtGrid(boolean) — Bote de pintura: limita la región a la celda de la cuadrícula donde cae el clic.bucketPattern(FillPattern: "solid" | "checker" | "dither25" | "dither75" | "hstripes" | "vstripes" | "diagonal" | "grid" | "dots" | "bricks") — Relleno por inundación: pinta un patrón repetido de dos colores (el color de relleno y el otro entre primer plano y fondo) en lugar de un color sólido. "solid" = sin patrón.wandFillMode(BucketFillMode: "contiguous" | "global") — Varita mágica: solo la región conectada, o todos los píxeles que coinciden. Independiente de bucketFillMode del bote de pintura.wandTolerance(integer 0–255) — Varita mágica: la mayor diferencia por canal que todavía cuenta como el mismo color. Independiente de bucketTolerance del bote de pintura.wandDiagonal(boolean) — Varita mágica (contiguo): se extiende también a los vecinos diagonales (8 conexiones), así que la región se filtra por las líneas diagonales de 1px.wandStopAtGrid(boolean) — Varita mágica: limita la región a la celda de la cuadrícula donde cae el clic.sprayRate(integer 1–64) — Aerógrafo: puntos por posición.scatterX(integer 0–64) — Dispersión: hasta dónde puede caer cada sello a la izquierda o a la derecha del camino, en píxeles.scatterY(integer 0–64) — Dispersión: hasta dónde puede caer cada sello por encima o por debajo del camino, en píxeles.scatterCount(integer 1–16) — Dispersión: sellos colocados en cada paso a lo largo del camino.blurStrength(integer 1–4) — Desenfoque: radio de la vecindad en píxeles.jumbleStrength(integer 0–100) — Mezcla: probabilidad en porcentaje de que cada píxel tocado se revuelva.dodgeBurnStrength(integer 1–100) — Aclarar/Oscurecer: cuánto se mueve la luminosidad OKLCH de cada píxel tocado (100 = la mitad del camino de negro a blanco).dodgeBurnHueShift(integer 0–60) — Aclarar/Oscurecer: grados que gira el tono OKLCH de cada píxel tocado hacia el amarillo cálido (aclarar) o el azul frío (oscurecer), sin pasarse; 0 conserva el tono.ditherPattern(DitherPattern: "bayer2" | "bayer4" | "bayer8" | "dots" | "lines-h" | "lines-v" | "diagonal" | "noise") — Pincel de tramado: el patrón ordenado con el que pinta. Los patrones se repiten desde la esquina superior izquierda del sprite, así que los trazos encajan.ditherDensity(integer 0–100) — Pincel de tramado: la proporción de los píxeles del patrón que pinta, en porcentaje (50 con bayer2 es un tablero de ajedrez).gradientType(GradientType: "linear" | "radial") — Degradado: una rampa recta entre los puntos, o radial desde el punto inicial.gradientDithering(GradientDithering: "none" | "bayer2" | "bayer4" | "bayer8" | "dots" | "lines-h" | "lines-v" | "diagonal" | "noise") — Degradado: el patrón de tramado ordenado (none = una rampa suave).gradientSnap(GradientSnap: "free" | "palette") — Degradado: mezclas libres, o solo colores de la paleta (cada píxel toma el color de paleta más cercano; el tramado alterna entre colores de paleta vecinos).gradientColors(GradientColors: "fg-bg" | "stops") — Degradado: va del color de primer plano al de fondo, o a lo largo de gradientStops ("stops"; con menos de dos puntos vuelve a primer plano a fondo).gradientStops(a list of { color, position } (position 0-1, in order), or a list of colors spread evenly) — Degradado: la rampa de varios puntos desde el punto inicial, como entradas { color, position } (position 0-1, en orden; dos en la misma posición forman un borde duro). Una lista simple de colores se reparte de forma pareja. Se usa cuando gradientColors es "stops"; la barra Puntos del editor la edita.eyedropperSource(EyedropperSource: "composite" | "layer") — Cuentagotas: toma una muestra de lo que muestra el lienzo, o solo de la capa activa.tileIndex(integer ≥ 0) — Sello de tiles: el tile que se coloca, contando desde 1 (0 = el tile vacío).tileFlipH(boolean) — Sello de tiles: voltea horizontalmente los tiles colocados.tileFlipV(boolean) — Sello de tiles: voltea verticalmente los tiles colocados.tileRotate90(boolean) — Sello de tiles: rota 90° en sentido horario los tiles colocados.tilePlace(boolean) — Colocar tiles: en una capa de tilemap, el lápiz, el borrador, la línea, las herramientas de forma y el bote de pintura colocan el tile del sello de tiles (lo borran, en el caso del borrador) en las celdas que cubren, en lugar de pintar píxeles.isoShape(IsoShape: "box" | "ramp" | "stairs" | "pyramid" | "prism" | "cylinder" | "cone" | "sphere" | "dome") — Herramienta Forma isométrica: el sólido que dibuja.isoWidth(integer 1–1024) — Herramienta Forma isométrica: huella a lo largo de x (abajo a la derecha), en unidades isométricas (una fila de la escalera del borde cada una).isoDepth(integer 1–1024) — Herramienta Forma isométrica: huella a lo largo de y (abajo a la izquierda), en unidades isométricas.isoHeight(integer 0–1024) — Herramienta Forma isométrica: altura en píxeles (0 = plana).isoBevel(integer 0–1024) — Herramienta Forma isométrica: solo cajas, cuántos píxeles se achaflanan los bordes superiores (0 = recto).isoCap(integer 2–4) — Herramienta Forma isométrica: el tramo plano en los vértices superior e inferior, 2 (par), 3 (impar) o 4 (múltiplos de cuatro). También es el paso de arrastre de W / D (2 unidades con cap 4).isoStyle(IsoShapeStyle: "filled" | "outline" | "filled-outline") — Herramienta Forma isométrica: caras, contorno o ambos.isoHiddenEdges(boolean) — Herramienta Forma isométrica: dibuja también los bordes que quedan detrás del sólido.isoDirection(IsoDirection: "+x" | "-x" | "+y" | "-y") — Herramienta Forma isométrica: hacia dónde descienden una rampa o unas escaleras, o hacia dónde miran las pendientes de un prisma.isoAutoShade(boolean) — Herramienta Forma isométrica: obtiene los cinco colores a partir del color de primer plano a lo largo deshades(true), o usa isoColors (false).isoColors(a list of colors ("#rrggbb[aa]" or { r, g, b, a }), in order) — Herramienta Forma isométrica: los colores que se usan cuando isoAutoShade está desactivado, en orden: contorno, borde interior, superior, izquierda, derecha.
No devuelve nada.
app.swapColors() — modifica
Intercambia los colores de primer plano y de fondo (la X de la interfaz).
No devuelve nada.
En Markdown: context.md.