Professional Documents
Culture Documents
es y Marta Villaescusa
1. Instalación
En esta sección conseguiremos configurar Construct 2 (C2 en adelante) para hacerlo funcionar.
Nos centraremos en la descarga y actualización de C2, después en el proceso de instalación,
como usar tú licencia si la has comprado, y un recordatorio de los requisitos del sistema.
Instalación Portátil
Construct 2 puede usarse como software portátil. En otras palabras, puedes instalarlo en un disco externo
(como una memoria USB) y usarlo en cualquier ordenador. Si quieres hacer esto, coloca la carpeta de
instalación (Install) en tu disco externo.
Desinstalación
C2 puede ser desinstalado a través de Añadir/Quitar programas (Windows XP) o Programas y
características (Windows Vista y nuevas versiones) en el Panel de Control
Instalaciones masivas
Si estás instalando C2 en muchos ordenadores, recuerda que la instalación es portátil. Esto
significa que no hay dependencia fuera de la Carpeta Archivos de Programa de C2. Puedes
instalarlo en varios ordenadores instalándolo en uno y copiando la carpeta de instalación (y
cualquier acceso directo que quieras) en otros ordenadores. Puedes usar también los siguientes
modificadores de línea de comando (command-line switches) para hacer funcionar la
configuración de forma automática:
Ver también: Tutorial de cómo funcionan las licencias de C2 How Construct 2 Licenses Work ⇗
Las personas individuales pueden usar una licencia Standard para usos comerciales hasta un
límite de 5000$. Si las ganancias asociadas a creaciones hechas con C2 superan los 5000$
(incluyendo publicidad/promoción asociada) se debe comprar una licencia Business, aunque no
es necesario comprarla hasta entonces.
Organizaciones sin ánimo de lucro, como escuelas, bibliotecas y universidades pueden usar
Licencias personales para eliminar las restricciones de la versión gratuita. Hay disponibles
descuentos para compras al por mayor.
Las Organizaciones Comerciales no pueden usar licencias Standard: deben comprar la Business.
Personas individuales que ya han ganado 5000$ por creaciones hechas con C2 y
Organizaciones comerciales y de negocios.
Las organizaciones sin ánimo de lucro nunca necesitan una licencia Business, sólo la Standard.
2. Resumen
En esta sección ofrecemos un resumen de C2, incluyendo la página de inicio (start page), interfaz
(interface), estructura del proyecto, los dos formatos de guardado, exportación y publicación, la
tecnología de tus juegos y algunas buenas prácticas y consejos de actuación al usar C2.
Esta te da un punto de partida útil siempre que inicies C2. Tiene algunos enlaces útiles como
Crear un nuevo proyecto, Nuevos tutoriales en la web, tus proyectos abiertos recientemente,
enlace a nuestro Facebook, Twitter y Google+ y demás.
Tutorial para principiantes
Si eres nuevo, quizás quieras echar un vistazo al enlace al Tutorial C2, Guía para principiantes
Beginner's Guide to Construct 2 tutorial ⇗. Este es una guía paso a paso para ayudarte a crear tu
primer juego.
Ejemplos
Si quieres examinar proyectos existentes para ver cómo funciona C2, puedes abrir las demos de
Space Blaster y Ghost Shooter. Estos son ejemplos avanzados así que no te agobies por sus
matemáticas o su complejidad. Sólo sirven para enseñar lo que C2 puede hacer en las manos de
un usuario avanzado.
Hay muchos ejemplos más simples en el directorio de ejemplos de C2. Clica Mostrar todos los
ejemplos (Browse all examples) para verlos. Hay más de 40 que muestran cómo hacer
plataformas simples y demos físicas.
Es altamente recomendable ver todos los ejemplos. Hay varios ejemplos de soluciones a
preguntas frecuentes como “¿Cómo configuro los controles comunes?” en la carpeta de
ejemplos.
Configuración
Puedes cambiar Mostrar la página de inicio cuando enciendas el ordenador Show (Start page on
startup) y Cerrar la página de inicio cuando cliques en algo (Close the start page when I click on
something) en el diálogo de preferencias (Preferences dialog).
2.2 La interfaz
El siguiente gráfico resalta las partes importantes de la interfaz de usuario de C2. También se
muestra un resumen de cada parte abajo, y más adelante el manual explica cada sección con
mayor detalle.
C2 utiliza una barra de herramientas, similar a la Microsoft office 2007 o superior. El botón azul
con la flecha para clicar hacia abajo es el menú de archivos, y a su derecha hay una barra de
herramientas que se despliega con varios botones y opciones.
También hay una barra de acceso rápido con los cuatro comandos más usados: Guardar (Save),
Deshacer (Undo), Rehacer (Redo) y Vista previa (Preview). Puedes añadir o quitar botones de
esta barra: clicando la flecha hacia abajo pequeña que hay a la derecha. Si quieres tener muchos
comandos en esa barra puedes optar por mantenerla visible debajo de la barra de herramientas.
Estas pestañas permiten usar diferentes planos y hojas de actividades, para definir la secuencia
de actividades en las que se basa el juego.
Puedes clicar y arrastrar una pestaña para ver una al lado de otra en la misma pantalla.
4: La barra de propiedades
En esta barra puedes ver una lista de propiedades en las cuales ya has clicado. Puedes ver y
cambiar las propiedades de las cosas como planos, objetos, capas y demás. Mira The Properties
Bar.
7: Barra de objetos
Contiene una lista de objetos de tu juego. Puedes arrastrar y soltar objetos desde aquí para
colocarlos en el plano. El menú del botón derecho tiene varias opciones para filtrar o mostrar
diferentes objetos. Mira The Object Bar.
8: Barra de estado
En la parte de abajo de la ventana se encuentra la Barra de estado. Esta muestra:
Qué está haciendo C2 durante una tarea de larga duración, como exportar o guardar un
proyecto.
Cuantas actividades hay en el proyecto y su tamaño aproximado
La capa activa en ese momento, que es la capa donde se colocaran los objetos
La posición del ratón en planos combinados
El nivel de zoom actual
Al igual que los botones minimizar, maximizar y cerrar de Windows existe Fijar Barra (Pin
Ribbon) para mantener la barra siempre a la vista, y el botón “sobre” (About) para abrir el
diálogo About con información y los créditos de C2.
Personalización
Puedes personalizar la interfaz a tu gusto. Algunas de las barras pueden ser arrastradas y soltadas
en diferentes posiciones de la ventana. También puedes esconder barras para ahorrar espacio:
clica el icono de fijar (pin) de una barra y se convertirá en una simple pestaña. Puedes volver a
convertirla en barra.
Las barras se pueden esconder y mostrar en la pestaña Vista (View) de la barra de herramientas.
Puedes crear una pantalla dividida clicando y arrastrando uno de los planos u pestaña de hoja de
actividades en la vista principal. Esto es útil en monitores grandes.
Planos (Layouts)
Niveles, menús, los títulos de las pantallas y otros planos de objetos predefinidos. En otras
herramientas Layout puede referirse a escenas, habitaciones, marcos o etapas.
Los planos también pueden estar formados por múltiples capas (Layers), que pueden usarse para
poner objetos en las capas de fondo y primer plano. Estos se manejan con la barra de capas
(Layers bar).
Sonido y Música
Son archivos de audio usados para efectos sonoros y música en el juego. Los sonidos deben
usarse para efectos de corta duración que suenan cuando un acontecimiento como una colisión o
explosión ocurre. La música se usa para pistas musicales más largas. Es importante organizar los
archivos de audio porque los sonidos se descargan antes de poder escucharlos, pero la música es
en streaming. Esto significa que si una pista de música se pone en la carpeta Sonidos, tendrá que
descargarse completamente (lo que tardará unos minutos) antes de reproducirlo. Además el audio
de la carpeta Música puede reproducirse inmediatamente porque es en streaming.
Ambos, sonidos y música deben estar disponibles en los formatos Ogg Vorbis (.ogg) y MPEG-4
AAC (.m4a). Esto es porque los navegadores no se ponen de acuerdo en un solo formato para
web, ¡así que todos los audios deben estar en los dos formatos! Internet Explorer y Safari usan
archivos .m4a y el resto (Firefox, Chrome y Opera) usan archivos .ogg. C2 ayuda a convertir
audio a ambos formatos cuando se importan los archivos de audio. Ve al Diálogo de Importar
Audio (Import Audio dialog) y Sonido y Música (Sounds & Music) para más información.
Unidades comunes
A veces, en C2 necesitas introducir valores como ángulos, velocidades o tamaños. Para que haya
cierta consistencia, C2 siempre usa las mismas unidades, excepto donde se especifique otra cosa
en notas o descripciones mostradas en el editor. Las unidades comunes se describen a
continuación.
Posiciones (Positions) se miden en píxeles. El origen (0,0) está arriba a la izquierda del plano y
el eje Y aumenta hacia abajo (como es habitual en los motores del juego)
Tamaños (Sizes) se miden en píxeles
Ángulos (Angles) se miden en grados. Los 0 grados empiezan a la derecha y se abre en el sentido
de agujas del reloj
Tiempos (Times) se miden en segundos
Velocidades (Speeds) se miden en píxeles por segundo
Aceleraciones (Accelerations) se miden en píxeles por segundo
Índices que empiezan en 0
Para ser coherente con el lenguaje de programación, todas las características de C2 usan un
número de cosas de una lista (índices) que empiezan desde 0 en vez de 1. Esto puede parecer
complicado al principio y te costará acostumbrarte, pero en muchos casos esto es mucho más
conveniente que las listas que empiezan en 1.
Las carpetas de proyectos se guardan y cargan rápidamente. Esto las hace apropiadas para
medianos y grandes proyectos.
Las carpetas de proyecto son buenas para trabajos en colaboración con un equipo, porque es fácil
para distinta gente trabajar en diferentes archivos de proyecto y más tarde, fusionarlo.
El archivo de proyecto principal tiene la extensión .caproj. Nota que este no contiene el proyecto
completo: es solamente una lista de otros archivos usados en el proyecto. Si quieres compartir un
proyecto, el archivo .caproj es inútil por si solo – guarda a un único archivo de proyecto (.capx)
en su lugar.
Los archivos .capx son un simple ZIP de la carpeta de proyecto. Puedes renombrar un archivo
.capx con .zip para ver los archivos del proyecto.
Convertir entre tipos
Es fácil convertir un archivo de proyecto único a una carpeta de proyecto que al contrario en C2.
Simplemente abre un proyecto y elige Archivo - Guardar como Proyecto… (File - Save As
Project...) para guardarlo en un único archivo de proyecto.
Ya que los archivos .capx son ZIPs de la carpeta de proyecto, pueden también ser convertidos en
una carpeta de proyecto renombrándolo como .zip y extrayendo la carpeta de proyecto que está
dentro. De igual manera, una carpeta de archivos puede convertirse en un archivo .capx
comprimiéndolo en un archivo .zip y cambiándole la extensión a .capx.
Si tienes móvil, tablet o otros portátiles/ordenadores donde quieres probar el juego, hacer la vista
previa usando tu red local (wifi) puede ser fácil. Para más información, mirar el tutorial Como
hacer una vista previa en tu red local How to preview on a local network ⇗.
Debes exportar (export) y publicar (publish) el proyecto antes de poder jugarlo. No puedes
compartir la URL en internet durante la vista previa.
Exportar
Para exportar tu proyecto, usa el Menú de archivo (File Menu), barra de herramientas o barra del
proyecto (Project Bar) para abrir el diálogo de exportación del proyecto (Export Project dialog).
Si estás interesado en los detalles técnicos al exportar el proyecto, mira la sección Tecnología
(Technology).
Los Macs también suelen usar Safari ⇗. Algunos de estos navegadores también están disponibles
para móviles y tablets.
HTML5
HTML ⇗ significa HyperText Markup Language. HTML es la manera estandar en la que se
hacen las páginas web desde los inicios de internet. HTML5 ⇗ es la quinta revisión de HTML y
empezó a ganar fama y difusión en 2011. Introduce algunas nuevas características, pero solo un
pequeño número de ellas atañe a los juegos. De todas formas, “HTML5” es todavía el más
apropiado para la tecnología usada por C2. Javascript es el lenguaje de programación estándar
usado para programar webs y también se usa para los juegos de C2.
De particular interés en HTML5 es la nueva etiqueta <canvas>. Esta crea una superficie
rectangular en las webs HTML donde cualquier imagen o contenido puede ser dibujado. Esto es
ideal para juegos. Todos los juegos de C2 usan canvas HTML5 para mostrar el juego.
HTML5 es compatible con la tecnología de Adobe Flash que domina los juegos de internet desde
2011. HTML5 se diferencia por ser algo así como un acuerdo de empresas, más que un producto
controlado por una única compañía como Adobe. Flash también funciona como plugin de
navegador, que debe ser descargado e instalado de forma separada mientras que HTML5 está
dentro del navegador. Esto significa que los juegos HTML5 pueden funcionar en dispositivos
donde no hay soporte para Flash, como iPhone y iPad. Dadas sus ventajas, HTML5 reemplazará
a Flash en la web.
Javascript
Javascript ⇗ es el lenguaje de programación estándar para web. Permite que las páginas web
sean más interactivas trabajando en cierto modo como aplicaciones tradicionales. Esto también
es un acuerdo entre empresas.
Javascript no es Java. Son dos lenguajes de programación no relacionados que tienen un nombre
similar. Java trabaja otra tecnología para las webs, una totalmente distinta a la de javascript.
Intenta no confundir ambos términos: los juegos de C2 no necesitan java para funcionar.
Navegadores modernos compilan Javascript a códigos de ordenador (o instrucciones de CPU).
Esto asegura que las webs (incluyendo juegos) que usan Javascript funcionan de la forma más
rápida y eficiente posible.
Javascript es un tipo de lenguaje que acumula basura, por lo que hace que los juegos se
entrecorte o se pause. Los juegos de C2 están optimizados para crear la menor cantidad de basura
posible, reciclando objetos donde es posible. Incluso objetos enteros son reciclados si son
destruidos y recreados. Esto ayuda a mejorar la actuación y asegura que el juego funcione lo más
fluidamente posible.
Lienzos Canvas
El <canvas> de HTML5 tiene dos formas de dibujar el juego en la web: un simple contexto en
2D y el contexto WebGL, basado en OpenGL. WebGL es dos veces más rápido que 2D y tiene
más características, incluyendo efectos de soporte, pero no funciona en todas las plataformas. La
mayoría de los navegadores funcionan con WebGL, pero no Internet Explorer. C2 funciona con
las dos tecnologías. WebGL puede ser habilitado o deshabilitado para cada juego en las
propiedades del proyecto (Project Properties). Generalmente, es recomendable habilitarlo,
porque el juego funcionará más rápido y los efectos no funcionan sin él. Si el ordenador o
dispositivo del usuario no puede usar WebGL o éste está deshabilitado, C2 volverá al contexto
2D. En este caso el juego puede seguir jugándose, pero funcionará un poco más lento y no se
verá tan bien.
Ya que Internet Explorer no soporta WebGL, si lo usas sería mejor cambiar de navegador como
Firefox o Chrome. Quizás también quiera avisar a los usuarios de que hagan lo mismo.
WebGL puede no funcionar en un ordenador aunque esté habilitado. En este caso el contexto 2D
funcionará en su lugar. Puedes comprobar que lienzo está usando el juego con la expresión del
sistema lienzo (renderer), que puede ser “canvas2d” o “webgl”.
Oscurecimiento y empequeñecimiento
El código Javascript de tu juego está minimizado y oscurecido con el Closure Compiler ⇗ de
Google. Esto reduce el tamaño y lo hace extremadamente difícil de modificar para otros usuarios.
Las imágenes del juego están comprimidas en PNG. También están comprimidos al exportar
para asegurar que la descarga es lo más pequeña posible. Para más información, mira este post
Image compression in Construct 2 ⇗.
Audio
El motor del juego de C2 soporta Web Audio API en Google Chrome para play-backs de baja
latencia o efectos de sonido. En otros navegadores se usa el estándar de audio HTML5.
Soporte Offline
A pesar de que los juegos HTML5 funcionan en un navegador web, los juegos C2 usan el
HTML5 AppCache para permitirles funcionar también offline. Esto es útil para aplicaciones iOS
y Chrome, ya que algunos usuarios quizás utilicen el juego offline. También el AppCache ayuda
a ahorrar ancho de banda en los servidores que hospedan el juego: los archivos del juego solo
serán descargados una vez y cada visita después el juego se cargará desde el disco local
(mientras se buscan actualizaciones). Mira el tutorial offline support in Construct 2 ⇗ para más
información. Lo más importante es que tu servidor debe estar configurado para archivos
.appcache con el tipo MIME text/cache-manifest si no el soporte offline no funcionará y
malgastarás mucha banda ancha.
C2 tiene características para hacer copias de seguridad fácilmente, incluyendo copias externas
usando Dropbox. Para más información ve al tutorial Keep your work safe with Construct 2's
backup options ⇗.
Este consejo no es solo para C2. Es vital adoptar estas prácticas para todos tus trabajos
importantes. No esperes hasta haber perdido tu trabajo para empezar a hacer esto. La gente
pierde trabajos a menudo por no realizar esto. ¡No seas uno de ellos!
32-bit PNG para imágenes. Asegúrate de elegir 32-bit si tienes elección, la versión de 8-bit o
inferior son de peor calidad. Los PNG de 32-bit no tienen pérdidas y soportan el canal de
transparecia alfa (alpha-channel transparency). Nótese que el Paint de Windows no soporta la
transferencia PNG. Usa un editor distinto al Paint, como Paint.NET ⇗.
Puedes elegir diferentes formatos de salida en C2, como JPEG, para reducir el tamaño de tu
proyecto finalizado. Aunque cuando exportas debes mantener el PNG de 32-bit si es posible, y
dejar que C2 los recomprima. Para más información ve al post Image compression in Construct 2
⇗.
16-bit PCM WAV para audio. Estos son los típicos archivos .wav, pero nota que no todos los
.wav son de 16-bit PCM. Suponiendo que estés usando Windows 7 o superior, al importar un
archivo .wav de 16-bit PCM a C2 éste se encodeará automáticamente a los dos AAC y Ogg
Vorbis, los dos formatos necesarios. Para más información ve a la sección del manual Import
Audio dialog.
Seguridad
Nunca jamás escribas nombres de usuario o contraseñas en los eventos. Estos serán visibles
como texto plano en Javascript, y usuarios maliciosos podrán controlar tu cuenta fácilmente. Si
necesitas conectarte a algo como una base de datos, escribe el script que se ejecuta en el servidor
y conecta con la URL o el servidor.
Rendimiento
Hay un gran número de consejos sobre el rendimiento del juego (garantizando que el juego
siempre funcionará rápido). Lo más importante es cuando se desarrolla para móviles, hay que
probar el dispositivo móvil desde el principio. Tu ordenador funcionará 10 o 20 veces más
rápido que un móvil, y algo que funciona muy rápido en tu ordenador puede no ser imposible de
jugar en el móvil por su lentitud. Para más información Performance Tips.
Uso de memoria
Algunos diseñadores están tentados a diseñar niveles enteros como simples imágenes grandes,
por ejemplo 10000x10000 píxeles. Este método debe evitarse a toda costa. No es sólo que
malgaste memoria, si no que muchos dispositivos no soportan imágenes tan grandes, por lo que
no funcionará. Generalmente el mayor tamaño que soportan todos los sistemas (incluyendo
móviles) es de 2048x2048 píxeles. De todas maneras, evita imágenes de ese tamaño también, lo
más apropiado es usar fondos adosando imágenes de tamaño medios como 512x512 que cubran
todo el plano. Después, compón el diseño de nivel adosando varios objetos. Cada objeto puede
ser estirado y rotado individualmente lo que evitará una apariencia repetitiva.
Imagina una sola imagen de 10000x10000 que usa 400mb de memoria, que dejaría sin espacio a
los ordenadores más potentes. Por otra parte, un nivel compuesto por 512x512 fondos adosados
y 50 objetos diferentes de un tamaño de 200x200 usaría menos de 20mb de memoria. Sería
perfecto para encajar en la memoria de los móviles.
Efectos
Recuerda que los efectos requieren WebGL para funcionar, que no es soportado en todos los
ordenadores. Asegúrate de configurar recursos apropiados y probar tu proyecto con WebGL
deshabilitado para que se vea bien en los sistemas de otros usuarios que no puedan usarlo.
Manejar proyectos
Si trabajas en grupo, probablemente encuentres muy útil el software de control SVN para
manejar las carpetas del proyecto. Éste puede destacar y fusionar los cambios que cada persona
hace. También hay un historial de todos los cambios y restauraciones hechos en todo momento.
C2 guarda los datos del proyecto en formato XML así que es apropiado para este control.
Debes probar tu juego en móviles desde el principio. Tu ordenador es unas 10 veces más rápido
que tu móvil. Para evitar sorpresas haz pruebas regulares para comprobar la velocidad. La
característica Preview on LAN ⇗ puede hacer esto fácil y rápido. Tu propósito debe ser crear
juegos simples para los móviles y tener menores expectativas de índice de frames (30 FPS es un
buen objetivo para móviles).
El rendimiento de los móviles mejorará con el tiempo, así que si ahora tienes problemas, los
dispositivos futuros o las actualizaciones lo mejorarán.
Confusiones comunes
Las siguientes confusiones suelen ser acusadas de afectar el rendimiento (como en los tiempos
de ejecución), pero el efecto no es muy grande o directamente no hay:
Formatos de imagen (por ejemplo, JPEG, PNG-8, PNG-32) afectan el tamaño al descargar pero
no afectan al tiempo de ejecución (se descomprimen todos en 32-bit en el programa).
El Número de capas normalmente no afecta, a menos que la mayoría de las capas hayan
cambiado su opacidad, tengan efectos aplicados, tengan un modo de fusión distinto a “Normal” o
usen “forzar una textura” “force own texture”. Así que no hay problema en usar muchas capas
con una configuración por defecto.
WebGL
WebGL ayuda a que el juego vaya más rápido: WebGL es unas 2 veces más rápido que Canvas
2D así que, para mejorar la ejecución, asegúrate de que está habilitado en las propiedades del
proyecto (Project properties) Aunque WebGL no es siempre soportado, por lo que esto no es
garantía de que el juego vaya a usar WebGL. Usa la expresión del sistema Lienzo (Rederer) para
determinar cual usar.
Hay muchas razones por las que WebGL no es soportado, aquí una lista:
Más consejos
Para más información y consejos, mirar el post Optimisation: don't waste your time ⇗.
Medidas y pruebas
Desde el principio tu proyecto debe usar un indicador de índice de frames (framerate indicator) y
controlar el rendimiento. Esto te permite notar si, haciendo algún cambio, éste afecta al
rendimiento.
Si crees que algo está causando problemas de rendimiento en tu trabajo, es fácil comprobar tu
teoría: haz una copia de seguridad, borra lo que pienses que está afectando y mira si el índice de
frames ha mejorado. Si es así, lo que has borrado era la causa, si no debe ser otra cosa.
Mide siempre el rendimiento. Los sistemas de un ordenador son muy complejos, y hay muchos
resultados y cambios inesperados en su rendimiento. La única forma de saber qué efecto tiene
algo sobre el rendimiento es medirlo. Si no puedes medir la diferencia, entonces el efecto no es
significativo.
Fps – da la tasa de frames por segundo. Normalmente la velocidad máxima es de 60 frames por
segundo, pero puede cambiar dependiendo del sistema.
Lienzo (Renderer) - con canvas2d o webgl. WebGL es dos veces más rápido, pero solo funciona
en ordenadores y no en todos los navegadores. Para más información, mirar la sección
tecnología.
Puedes mostrar los dos en un objeto de texto (Text object) para echarle un vistazo al rendimiento
mientras pruebas el juego, usando la acción:
Esto siempre mostrará unos 60 FPS (webgl) indicando ambos, el índice de frames y el lienzo.
3. Interfaz
Esta sección trata sobre la Interfaz de usuario. Para un resumen ve a Resumen de Interfaz, de la
sección anterior.
Los objetos abiertos recientemente aparecen a mano derecha del menú que aparece debajo.
Nuevo (New) abre Crear un nuevo diálogo de proyecto (Create New Project dialog).
Abrir (Open) abre un proyecto existente en el disco.
Guardar (Save) guarda el proyecto actual en el disco.
Guardar proyecto como (Save as project) y guardar como archivo único (sabe as single
file) lo guarda en una carpeta o archivo diferente. Ver Saving and sharing projects.
Exportar el proyecto (Export project) exporta el juego a HTML5, listo para distribución.
Ver Exporting and Publishing.
Cerrar pestaña (Close tab) cierra la pestaña que tengas abierta en ese momento. También
se pueden cerrar clicándolas en el centro.
Cerrar proyecto (Close project) Cierra el proyecto actual, preguntándote si quieres
guardar los cambios.
Por defecto esta barra está escondida hasta que clicas una de las pestañas. Puedes mostrarla de
forma permanente clicando el botón Pin de la barra arriba a la derecha.
Los accesos directos del teclado se ven o pasando sobre un botón de la barra o presionando Alt,
que los muestra todos en pantalla.
Estas pestañas tienen las funciones más usadas y comunes a todos los programas: Cortar (Cut),
Copiar (Copy), Pegar (Paste), Deshacer (Undo) y Rehacer (Redo).
Los botones Borrar (Delete), Seleccionar todo (Select All) y Deseleccionar todo (Select None)
afectan la selección actual en la Vista de la Hoja de Eventos o la Vista de Plano.
La sección Online contiene algunos enlaces a webs que te pueden ser útiles.
La sección Vista previa (Preview) tiene botones para hacer una vista previa del proyecto y
exportarlo a HTML5 para su distribución.
La sección Barras (Bars) te permite mostrar o esconder las diversas barras de la interfaz de C2
clicando en las cajas.
La sección Zoom se usa para hacer zoom en ambos, la Vista de Plano y la Hoja de Eventos.
La sección Cuadrícula de Plano (Layout Grid) sólo se aplica a la Vista de Plano. Habilitando
Snap to Grid (Ajustar a la cuadrícula) los objetos que muevas y sitúes se ajustarán a una
cuadrícula invisible en la que puedes establecer las medidas.
El Tema (Theme) te permite elegir diferentes estilos visuales a la interfaz de C2. Es sólo estético
y no afecta a la funcionalidad del editor.
Esta pestaña sólo se aplica a la Vista de la Hoja de Eventos. Si una vista de plano está activada
los botones estarán desabilitados.
El botón Add (Añadir) da formas rápidas de añadir un nuevo evento, condición, acción, sub-
acontecimiento, grupo de aeventos, variables locales o globales, incluir evento o comentario. Si
tienes algo seleccionado en la Hoja de Eventos, el nuevo item se añadirá al lado de la selección.
Deshabilitar (Disable) te permite alternar condiciones, acciones o eventos completos,
activándolos o desactivándolos. Un evento desactivado aparecerá tachado y si se ha borrado
correctamente no afectará más al juego. Pero siempre puedes volver a activarlo clicando
Deshabilitar otra vez. Esto es útil para las pruebas.
La sección Búsqueda (Search) te permite filtrar los eventos en las hojas actuales con una
búsqueda. Si un acontecimiento contiene el texto que has buscado, aparecerá, a no ser que lo
hayas eliminado. Esto es útil para localizar eventos relacionados con un proyecto concreto o para
encontrar algo en una larga hoja de eventos. El botón Eliminar Búsqueda (Clear Search) vuelve a
mostrar todos los eventos, también pulsando Escape.
Mostrar enlaces de “Añadir acción” (Show 'Add action' links) puede usarse para esconder o
mostrar el enlace “Añadir acción” (Add action) en cualquier evento. Esto ofrece una forma
rápida de añadir acciones nuevas. Aunque puede incrementar significativamente la altura dede la
hoja de eventos, haciéndola difícila para leer o encontrar eventos. Si quieres revisar una hoja de
evento es útil quitar estos enlaces. Las acciones se pueden seguir añadiendo a los eventos incluso
aunque los enlaces estén escondidos usando el botón Añadir acción (Add action) de la barra de
herramientas o del menú del botón derecho del ratón.
Organizando proyectos
La Barra del Proyecto puede usarse para organizar tu proyecto en subcarpetas (solo con licencia).
Las Subcarpetas se añaden clicando con el botón derecho en una carpeta y seleccionando Añadir
subcarpeta (Add subfolder). Entonces, puedes arrastrar y soltar carpetas e ítems para
organizarlos.
Manejando el proyecto
Clica con el botón derecho cualquier ítem de la Barra del Proyecto y mostrará una lista de
opciones. La mayoría de los ítems pueden ser renombrados y eliminados. Clicando una carpeta
con el botón derecho te da la opción de añadir ítems nuevos en esa carpeta, como un plano u hoja
de eventos nuevos. Los objetos se suelen añadir en la Vista de Plano, pero también puedes
añadirlos a la Barra del Proyecto.
Clica con el botón derecho el nombre del proyecto en la parte de arriba para cerrar, exportar o
abrir la carpeta del proyecto en Windows Explorer.
Borrar objetos
Borrarlos de la Vista de Plano no eliminará un objeto del proyecto. La única forma de borrarlo
completamente es eliminarlo de la Barra del Proyecto.
Importar audio
Clica con el botón derecho las carpetas de Sonido o Música y selecciona Importar (Import) para
abrir el diálogo de importación de audio (Import Audio dialog). Esto te permitirá coger archivos
de audio de tu ordenador e importarlos. C2 los convertirá a los formatos necesarios. Para audio
en play-back asegúrate de que añades el Objeto de Audio (Audio object) al proyecto.
Importar archivos
Puedes importar archivos externos adicionales al proyecto. Para más información, ve a Project
Files.
3.4 Barra de propiedades
La Barra de Propiedades (Properties Bar) es una parte esencial. Muestra una lista de todos los
ajustes que puedes cambiar seleccionándolos. En la imagen de abajo, un plano está seleccionado,
así que se muestran las propiedades de ese plano.
Hay demasiadas propiedades en C2 para listarlas aquí. En cambio, las propiedades de diferentes
partes del proyecto se explican en su sección del manual. Por ejemplo, las propiedades de los
planos se definen en la sección Planos.
Las propiedades están organizadas en categorías que pueden expandirse con el botón +. Hay
muchos tipos de propiedades, incluyendo campos de números y de texto, listas que se despliegan
y enlaces para clicar. El nombre de las propiedades aparece en la columna de la izquierda, y los
valores editables en la columna de la derecha.
Siempre que algo del proyecto es clicado o seleccionado, sus propiedades aparecen en la Barra
de Propiedades. Por ejemplo, seleccionando la vista de plano o clicando ítems de la Barra del
Proyecto se muestran las propiedades más relevantes.
Proyectos (Projects)
Planos (Layouts)
Capas (Layers)
Ejemplos de Objeto (Object instances)
Animaciones (Animations)
Muchos comportamientos (behaviors) tienen sus propias propiedades – ver Behavior reference
Muchos plugins tienen sus propias propiedades – ver Plugin reference
Muchos objetos también tienen efectos que tienen sus propias propiedades.
Mira la sección del manual referente a cada elemento. También hay un enlace de Ayuda (Help)
en la parte de debajo de las propiedades que te llevaran a la parte adecuada del manual.
Descripciones de la propiedad
Todas las propiedades tienen una descripción que ofrece información adicional sobre para qué se
usa cada una. Esto se muestra en el panel de la parte de debajo de la Barra de Propiedades. Es
mejor echarle un ojo ya que contiene información útil y consejos. Aquí se muestra un ejemplo.
La Barra de Objetos también da otra forma de acceder a las propiedades del objeto.
Seleccionando un icono en la barra puedes ver las propiedades en la Barra de Propiedades. Si
una Vista de Plano está abierta, también seleccionará todos los ejemplos de ese objeto que
existan en él.
Por defecto, la Barra de Objetos los muestra organizados en carpetas. Si haces doble clic en una
se muestra el contenido. Clica la flecha verde Arriba (Up) para volver a la carpeta general.
Si seleccionas una carpeta en la Barra del Proyecto también aparece el contenido en la Barra de
Objetos.
Clica el botón derecho en un espacio de la Barra de Objeto para mostrar las opciones.
Insertar un nuevo objeto (Insert new object) y Añadir subcarpetas (Add subfolder)
Accesos directos de las funciones de organizar en la Barra del Proyecto.
Las capas pueden ser arrastradas y soltadas en la Barra de Capas para cambiar su orden. Las
capas de debajo de la lista se muestran al fondo (por ejemplo, objetos de fondo) y las capas de
arriba al frente (por ejemplo, objetos HUD).
La lista de capas
Cada capa de la lista tiene:
Una casilla para cambiar la capa visible en el editor (esto no afecta al juego en la vista
previa o al exportar)
Un icono de candado. Clicando esto la capa se bloquea. Si una capa está bloqueada, los
objetos que contenga no se pueden seleccionar. Esto es útil para prevenir selecciones
accidentales en capas que no se usan casi nunca.
Un número a la derecha. Esto es un índice que empieza en 0 (la primera capa es 0, no 1).
Si necesitas introducir un número de capa en el sistema de eventos, este es el número que
debes introducir. (También puedes introducir el nombre de capa que sería más eficiente si
reorganizas las capas a menudo).
La Barra de Capas
Los iconos a lo largo de la parte de arriba ofrecen accesos directos para editar las capas. Se
pueden añadir capas y hay opciones alternativas para la visibilidad y el bloqueo. También hay
unos botones de Renombrar (Rename) y Borrar (Delete), (F2 y Borrar en el teclado
respectivamente). Las capas se pueden renombrar clicando una vez sobre ella, al igual que los
archivos en Windows. Finalmente, hay unos botones Mover arriba (Move up) y Mover abajo
(Move down) que ofrecen la alternativa de arrastrar y soltar para reordenar capas.
Haz doble clic en un espacio del plano o clica el botón derecho y selecciona Insertar objeto
nuevo (Insert new object) para añadir un nuevo tipo de objeto. Aparecerá el diálogo Insert New
Object dialog.
Para crear nuevos ejemplos de un tipo de objeto existente, otro objeto similar puede ser
arrastrado usando la tecla control, copiado y pegado, o arrastrado y soltado desde la Barra del
Proyecto o la Barra de Objeto. Asegúrate de que tienes clara la diferencia entre tipo de objeto y
ejemplo, está en Project Structure).
Un acceso directo para importar archivos de imagen como objetos ligeros (Sprites) arrastrar y
soltar la imagen desde el explorador de Windows a la Vista de Plano. Esto crea automáticamente
un nuevo tipo de objeto ligero. Si arrastras varias imágenes, el objeto se convertirá en animación
con las imágenes arrastradas como frames de la animación.
Los ejemplos pueden moverse arrastrándolos y soltándolos con el ratón. Mantén presionado shift
para fijar el eje a la diagonal. También puedes empujar 1 pixel cada vez que pulsas una flecha
del teclado (mantén pulsado shift al empujar y se moverá 10 píxeles) o puedes introducir las
coordenadas directamente en la Barra de Propiedades.
La tecla Borrar o la opción Borrar del botón derecho elimina ejemplos. Borrar todos los ejemplos
de un objeto no eliminará el tipo de objeto del proyecto. Para eliminarlo completamente debes
borrarlo vía la Barra de Proyecto.
Clica objetos para seleccionarlos. No se pueden seleccionar si la capa está bloqueada. Mantén
presionado control mientras clicas para seleccionar varios objetos, o clica y arrastra un
rectángulo de selección. La Barra de Propiedades muestra las propiedades de todos los objetos
seleccionados, así que si cambias alguna propiedad será para todos.
Cuando se selecciona un simple objeto aparece con unos ajustes de tamaño alrededor:
Clica y arrastra estos ajustes para cambiar el tamaño del objeto. Mantén shift presionado para
hacerlo proporcionalmente. El tamaño de los ajustes se puede cambiar en Preferencias
(Preferences).
Los objetos que se pueden rotar también tienen unos ajustes de ángulo. Estos pueden ser clicados
y arrastrados para cambiar el ángulo del objeto. También puedes introducir un ángulo en la Barra
de Propiedades.
Desplazamiento y Zoom
Hay tres formas de desplazarse en la Vista de Plano:
Las barra de desplazamiento horizontal y vertical a los márgenes
Mantener presionado el botón central del ratón y arrastrar el ratón
Mantener presionada la barra espaciadora (útil para portátiles)
En ordenadores fijos, usar el botón central y arrastrar el ratón es lo más conveniente para
moverte por el plano.
El Zoom es útil para enfocar areas pequeñas o tener una vista completa del plano completo. Hay
diversas formas de hacer zoom:
Los botones de Zoom en la Barra de Herramientas (mantiene Shift presionado mientras
clicas para ajustar)
Mantener control presionado y mover la ruleta del ratón. Mantén pulsado Control y Shift
para hacer zoom en intervalos regulares (por ejemplo, 100%, 200%, 400%...)
+ y – en el teclado (Mantén pulsado Shift para ajustar el zoom)
El zoom actual se muestra en la Barra de Estado. Presiona Control+0 para volver al zoom 100%.
Otros
Para ir a la Hoja de Eventos asociada, presiona Ctrl+E o Ctrl+Tab o clicar el botón derecho y
seleccionar Editar Hoja de Eventos (Edit Event Sheet).
El orden de objetos Z dentro de una capa puede ajustarse usando el botón derecho y
seleccionando Orden Z – Enviar a la primera capa o Enviar a la última capa (Z Order - Send to
top of layer or Send to bottom of layer).
Los objetos pueden ajustarse a la cuadrícula para hacer un mosaico. Esto se puede habilitar en la
Barra de Vista en las Herramientas.
El editor de imagen o animación se puede ver haciendo doble clic en un objeto con imagen o
animación como el Fondo Adosado (en mosaico) y los objetos pequeños o Sprite.
Diagrama de un Evento
Las Condiciones y Acciones pueden seleccionarse clicando sobre ellas. El Evento completo
puede seleccionarse (seleccionando también todas sus condiciones y acciones) clicando el
margen del Evento o la parte de abajo del Bloque de Eventos. Como en la Vista de Plano, se
pueden hacer selecciones múltiples manteniendo Control cuando clicas distintos ítems. Aunque
sólo puedes seleccionar eventos, condiciones o acciones de una sola vez (no puedes seleccionar
distintos tipos de ítems de una vez). También puedes mantener pulsado Shift y clicar el evento,
condición o acción para seleccionar todos los ítems entre la selección y el evento clicado.
Creando Eventos
Hay varias formas de añadir nuevos Eventos:
Haciendo doble clic en un espacio de la Hoja de Eventos
Clicando el enlace Añadir Evento (Add event) detrás del último evento.
Clicando el botón derecho y eligiendo un ítem para añadir en el menú.
Usar la Barra de Eventos
Cuando añades un Evento nuevo, el diálogo que aparece es para añadir la primera condición (ver
Diálogo de Añadir condición, Add Condition dialog). Para añadir más condiciones la Evento,
usa el botón derecho en el margen o en una condición ya creada y selecciona Añadir otra
condición (Add another condition).
Se pueden añadir acciones clicando el enlace Añadir acción (Add action) (si no ha sido
escondida de la barra), o usando el botón derecho en el margen o en una acción ya creada y
seleccionando Añadir otra acción (Add another action). Mirar también Diálogo de Añadir acción
(Add Action dialog).
Modificar Eventos
Haz doble clic o selecciona y pulsa Enter en una condición o acción para editarla.
Sería conveniente organizar los eventos en Grupos de Eventos (Event Groups), que se pueden
activar y desactivar en conjunto.
Desplazamiento y zoom
Hay varias formas de desplazarse en la Vista de Hoja de Eventos:
La barra vertical a la derecha de la vista.
Usando la rueda del ratón
Manteniendo pulsado el botón central del ratón y arrastrándolo.
Manteniendo la barra espaciadora y moviendo el ratón (útil para portátiles)
Usa los botones de zoom de la Barra en la Barra de Vista o mantén pulsado control y mueve la
rueda del ratón para hacer zoom. Pulsa Ctrl+0 para volver al zoom 100%. El tamaño de fuente en
la Hoja de Eventos se puede configurar en Preferencias (Preferences).
El editor de imagen
El Editor de imagen se usa para editar imágenes para fondos adosados y animaciones usando
Sprites.
Barra de Animaciones
En la Barra de Animaciones se pueden crear varias animaciones a partir de pequeños objetos o
Sprites.
Clica el botón derecho en un espacio par añadir una nueva animación o una subcarpeta para
organizar animaciones. Clica el botón derecho en una animación y selecciona Vista previa
(Preview) para hacer una vista previa de la animación en el juego.
Cuando seleccionas una animación, la Barra de Propiedades muestra sus ajustes. Estos son:
Velocidad (Speed) El número de frames por segundo. Por ejemplo, si está en 5, cada frame de la
animación durará 1/5 de segundo. Si no quieres que la animación se mueva ponlo a 0 (si un
mosaico se hace con baldosas distintas en cada frame).
Bucle (Loop) Vuelve a empezar la animación siempre que acaba.
Repetir (Repeat count) Si no hay bucle, el número de veces que quieres repetir la animación.
Repetir en (Repeat to) El número de frame (índice 0) en el que quieres repetir si hay bucle o
repetición.
Ping-Pong a animación va hacia delante y hacia atrás.
Barra de Frames
La Barra de Frames muestra la lista de frames de la animación actual.
Selecciona una imagen para activar el Editor de Imagen y editar el frame de la animación.
También puedes arrastrar y soltar frames para ajustar la secuencia.
Si la palabra checked no aparece, indica que la versión de C2 es estable y apropiada para el uso
diario.
Es importante mantener los drives de la tarjeta actualizados. Muchos fallos en el plano (como
objetos que no aparecen o secciones cortadas) son causados por los drivers. Actualizar a la
última versión arregla estos problemas casi siempre. Si no lo has hecho antes de instalar C2, te
recomendamos que busques el enlace de actualización y lo ejecutes. Quizás necesites permisos
del administrador para hacerlos funcionar.
Página de Créditos
Lista todas las personas y organizaciones que han trabajado en la creación de C2.
3.10.2 Añadir comportamiento (Add behavior)
Simplemente, haz doble clic en el comportamiento que quieras añadir. Selecciónalo para ver una
breve descripción bajo los iconos. Los comportamientos disponibles se pueden filtrar por nombre
o tipo en el cuadro de búsqueda arriba a la derecha.
Los botones Siguiente (Next) y Anterior (Back) se usan para moverse adelante y atrás por estos
pasos.
Paso 1: Elige el objeto
En este paso aparece una lista de todos los tipos de objeto. El Sistema de objeto (System object),
que representa la funcionalidad, siempre aparece primero y el resto de objetos están ordenados
alfabéticamente.
Haz doble clic en un objeto para seleccionarlo. Escribe en el cuadro de búsqueda para un filtro
rápido cuando hay muchos objetos.
Las condiciones y acciones que cada objeto contiene se relacionan con el tipo de objeto que es
(Sprite, teclado o audio). Por ejemplo, para situar la acción Reproducir sonido (Play sound) en el
diálogo, primero haz doble clic en el objeto de Audio. Recuerda que el Sistema de objeto tiene
algunas condiciones que se pueden usar en cualquier objeto, como Recoger aleatoriamente (Pick
random) y Para cada (For each).
Paso 2: Elegir una condición o acción
En este paso aparece una lista de condiciones y acciones en el objeto elegido. Están ordenados en
categorías. Abajo se muestra una lista de las condiciones del Sistema de objeto.
Haz doble clic en una condición o acción para elegirla. Como antes, escribir en el cuadro de
búsqueda ayuda a localizarlos más rápido en una lista.
Para más información de cada condición y acción, ve a Plugin reference. Si el objeto elegido
tiene algún Comportamiento, se pueden añadir condiciones y acciones extra en el diálogo.
Algunas condiciones y acciones requieren parámetros. Por ejemplo, La acción Ajustar posición
(Set position) para un Sprite requiere las coordenadas X, Y. Esto se hace en el diálogo de
parámetros en el siguiente paso. Otras no los usas, como Destruir (Destroy). En este caso el
proceso ya estaría completo.
Los efectos se pueden añadir con la barra de arriba o clicando el botón derecho y seleccionando
Añadir efecto (Add effect). Esto abre el diálogo de Añadir Efecto. Ambas formas también te
permiten renombrar (F2) o borrar (Del) efectos.
Se pueden ordenar los efectos usando los botones Arriba (Up) y Abajo (Down) de la barra o
arrastrando y soltándolos. El orden de los efectos es importante porque define el orden en el que
son procesados, que puede alterar el resultado visual. Para más información, mira la sección
Effects.
3.10.6 Grupo de eventos (Event group)
El diálogo de Añadir/Editar grupo de eventos (Add/Edit Event Group) contiene los ajustes de los
mismos.
Nombre (Name)
Un nombre identifica un grupo de eventos y se muestra en grande en la Hoja de Eventos. Cuando
habilitas o deshabilitas un grupo de eventos, el nombre identifica qué grupo es.
El Tipo (Type) especifica qué tipo de de valor tiene la variable. La variable de un evento puede
almacenar un Número o Texto (también llamado string). El tipo de variable de evento no cambia
– no puedes almacenar texto en una variable numérica ni viceversa.
El Valor inicial (Initial value) es el primer Número de una variable numérica, o la inicial de un
Texto en una no numérica. Este cuadro se puede dejar vacio. La inicial no necesita comillas. En
otras palabras, Hola es una entrada válida y si introduces “Hola” la inicial incluirá las comillas.
Nota que esto es diferente a introducir textos que requieran comillas.
Si estás buscando consejos para publicar tu juego, ve al tutorial Publishing and promoting your
Construct 2 game ⇗.
Haz doble clic en un objeto para listar todas sus expresiones. Las descripciones se muestran
también al lado de cada expresión para indicar el valor de recuperación. Haz doble clic en una de
las expresiones de la lista para introducirla en la expresión actual en el Diálogo de parámetros.
Pulsa Escape o clica el botón Atrás (Back) para volver a la lista de objetos.
Las imágenes del proyecto se guardan siempre en formato PNG-32. Este es el único formato que
preserva una imagen con el canal alfa (alpha chanel). Estos ajustes sólo se aplican cuando el
proyecto se exporta. Son principalmente para reducir el tamaño de los archivos de imagen para
que el juego ocupe menos.
Las imágenes en PNG se recomprimen al exportarlas para reducir el tamaño sin afectar la calidad
de imagen. Para más información, mira el post Image compression in Construct 2 ⇗.
Formato (Format)
Para más información sobre estos formatos busca en Wikipedia PNG ⇗ o JPEG ⇗.
Calidad (Quality)
Los ajustes de calidad cuando usas el formato JPEG. La calidad va desde 0 (peor calidad,
archivo más pequeño) a 100 (mejor calidad, archivo más grande). Las calidades por encima de
85 son difíciles de distinguir del original.75 es la recomendada en relación calidad tamaño.
Clica Importar (Import) para empezar a importar la lista de archivos al proyecto. Esto puede
tardar si los audios son muy largos (como canciones enteras); una barra de progreso aparecerá
durante el proceso. Solo se importarán los audios que tengan un formato válido para el programa.
Una vez el proceso haya finalizado, la lista mostrará los archivos que se hayan importado
correctamente. Clica Hecho (Done) para cerrar el diálogo.
Para poder reproducir el audio en todos los navegadores, tus audios deben estar en los dos
formatos. C2 te ayuda encodeando y descomprimiendo el audio que importas al formato .m4a o
.ogg automáticamente. Aunque sólo lo hará automáticamente en Windows 7 o superior. Los
usuarios de Windows XP y Vista deben encodear ellos mismos los archivos .m4a. La extensión
del archivo será .m4a. Hay encodeadores gratuitos; busca en la web AAC encoders.
C2 favorece el formato Ogg Vorbis. Cuando eliges un sonido en el sistema de eventos, sólo
aparecerán los archivos .ogg. El otro formato se considera como un apoyo para aquellos
navegadores que no soportan Ogg Vorbis. Esto significa que si importas un archivo en .m4a sin
el correspondiente .ogg, este no aparecerá en el sistema de eventos.
Hay muchos formatos y muchos de ellos son aceptados a distintos niveles. Además, muchos
tienen sub-formatos y no todos los sub-formato son aceptados. Esto hace complicado
describirlos. Pero te recomendamos que solo importes archivos PCM .wav, que son los más
aceptados y pueden encodearse en los dos formatos necesarios .m4a y .ogg. Nota que hay
distintos tipos de archivos .wav a parte de PCM y éstos pueden no ser aceptados. Cualquier buen
software de codecs podrá convertirlos a PCM .wav. Intenta evita formatos con pérdidas antes de
importarlos a C2, porque la calidad empeoraría al encodearlos a .ogg y .m4a.
El Origen (Origin) es un punto especial que define el cetro del objeto, o su punto de rotación. Es
diferente, de color rojo. Se incluye dentro de los puntos de imagen y tienen un índice que
empieza en 0, en el que el 0 es siempre el origen. No se puede renombrar.
Los Puntos de la imagen (Image points) son útiles para crear puntos derivados en otros objetos.
Ya que puedes crear objetos en un punto de imagen en Eventos, es útil situar puntos en lugares
como la punta del arma del jugador. Estos puntos sí que pueden renombrarse, para referirse a
ellos en Eventos por su nombre.
Debajo, se sitúa un punto de imagen en la punta del arma de un jugador.
Selecciona un punto de imagen de la lista para que aparezca en la imagen. Clica el botón derecho
para situar el punto bajo el ratón. Las flechas del teclado también pueden moverlo 1 píxel cada
vez.
Se puede situar un punto rápidamente usando los números, 1 para la esquina izquierda y 5 para el
centro. También puede clicarse con el botón derecho el punto en el diálogo de puntos de imagen
y elegir la opción en el menú de acceso rápido.
Clicar con el botón derecho un punto de imagen en el diálogo también da la opción de Aplicar a
toda la animación (Apply to whole animation). Esto sitúa el punto en el mismo lugar en todos los
frames. Si el punto no existe en alguno de los frames, esta opción lo crea. Mantener shift
mientras sitúas el punto es un acceso directo.
Esta imagen está en una cuadrícula que tiene 4 celdas horizontales y 4 verticales:
El dialogo para importar un Nuevo objeto aparece después de hacer doble clic en un espacio de
la Vista de Plano. Te permite elegir el tipo de objeto a insertar (cada tipo se conoce como
plugin). Insertando un nuevo objeto creas un nuevo tipo de objeto. Mira Estructura del Proyecto
(Project Structure) para una descripción de la diferencia entre tipos y ejemplos de objeto.
También mira Plugin Reference para más información sobre plugings.
Los plugins se ordenan en grupos. Dentro de cada uno están ordenados alfabéticamente.
Seleccionando un ítem se muestra una breve descripción de lo que el plugin hace en el campo
Descripción (Description) en la parte baja del diálogo. Escribir en el cuadro de búsqueda de
arriba filtrará rápidamente la lista para ayudarte a encontrar lo que buscas.
El Nombre que introduces indica el nombre del tipo de objeto que aparecerá en el proyecto tras
insertarlo. Por defecto se nombrarán numéricamente como Sprite2, Sprite3, etc. Sería buena idea
darles nombres descriptivos para no confundirte más tarde. Puedes introducir un nombre
descriptivo en este cuadro, pero si no puedes renombrarlo también a través de la Barra de
propiedades o la Barra del proyecto.
Haz doble clic en un ítem para insertarlo. Si el objeto puede situarse en un plano y está abierta la
Vista de plano, el cursor se convertirá en una mira para situar el primer ejemplo del objeto. Para
objetos con imágenes o animaciones, tras haber situado el ejemplo el editor de imágenes o
animaciones aparecerá para poder diseñar sobre ella.
Otros tipos de objeto (como el teclado o un objeto de audio) no necesitan ser situados en el
plano. Tras insertarlos, el diálogo se cierra sin necesidad de situarlo. En su lugar aparecerá una
barra notificadora indicando que ya está disponible en todo el proyecto. Este tipo de objetos solo
pueden ser insertados una vez y desaparecerán de la lista si vuelves a abrir el diálogo.
El Nombre (Name) identifica la variable de ejemplo. Ésto se escribe como expresiones tras el
nombre de objeto (por ejemplo, Sprite.MyVariable) para poder recuperar el valor de la variable.
Algunos nombres no se pueden usar si entran en conflicto con otras expresiones o
comportamientos de objeto.
El Tipo (Type) especifica qué tipo de valor tiene la variable. Una variable de objeto puede
almacenar Número (Number), Texto (Text)-(también llamado string) o Booleano (Boolean)-(un
valor on/off, también llamado flag). El tipo de una variable de ejemplo no cambia – por ejemplo,
no puedes almacenar texto en una variable numérica.
El Valor inicial (Initial value) es el primer número o inicial del texto o verdadero/falso en un
Booleano. El texto inicial se puede dejar vacio y si lo introduces no son necesarias comillas. En
otras palabras Hola es una entrada válida, pero si introduces “Hola” la inicial incluirá las
comillas. Nota que eso es diferente a si la expresión necesita comillas.
El Diálogo de Nuevo proyecto aparece cuando creas un Nuevo proyecto. Te permite elegir entre
distintos tipos de proyecto.
Elige entre un proyecto de un solo archivo o una carpeta del proyecto. Ve a project types para
más información.
Un proyecto de un solo archivo puede crearse inmediatamente, pero una carpeta del proyecto
requiere que se cree la carpeta antes de empezarlo. Los proyectos de un solo archivo son mejores
para proyectos pequeños y los de carpeta para proyectos grandes. El tipo se puede cambiar en
cualquier momento eligiendo Guardar como proyecto (Save as project) o Guardar como un solo
archivo (Save as single file) en el Menú de Archivos.
El diálogo de Variables de ejemplo de objeto enumera todas las variables de ejemplo que un tipo
de objeto tiene. Se puede abrir desde la Barra de Propiedades mientras se muestran las
propiedades del objeto, o clicando el botón derecho en el objeto en la Barra del Proyecto o en la
Barra de Objeto y seleccionando Variable de ejemplo... (Instance variables...)
Las variables de ejemplo se pueden añadir con la barra superior o clicando el botón derecho y
seleccionando Añadir variable de ejemplo (Add instance variable). Esto abre el diálogo de
Añadir variable de ejemplo (Add Instance Variable dialog). La barra superior y el menú del
botón derecho también te permiten renombrar (rename)-F2 o borrar (delete)-Del variables de
objeto. Haz doble clic en una variable de ejemplo de la lista para editarla.
Las variables de ejemplo pueden reordenarse usando los botones Arriba (Up) y Abajo (Down) en
la barra, o arrastrándolas y soltándolas. El orden es solo para organización – no afecta a cómo
funcionan.
Si todos los ejemplos de un tipo de objeto tienen el mismo valor inicial para una variable de
ejemplo, se mostrará en la columna Valor inicial (Initial Value). De todas formas, los ejemplos
pueden tener diferentes valores iniciales ajustados en la Barra de Propiedades. Si es así la
columna Valor inicial (Initial value) mostrará <varies>. Editar una variable de ejemplo variando
los valores y cambiando el valor inicial en el diálogo de Editar variables de ejemplo dará un
nuevo valor inicial para todos los ejemplos, sobrescribiendo los valores previos.
El diálogo de Comportamientos de Objeto enumera todos los comportamientos que tiene un tipo
de objeto. Se puede abrir desde la Barra de Propiedades mientras se muestran las propiedades del
objeto o clicando el botón derecho en el objeto en la Barra del Proyecto o en la Barra de Objeto y
seleccionando Comportamientos… (Behaviors…) Para información sobre los comportamientos,
ve a la sección Behavior Reference.
Los Comportamientos se pueden añadir con la barra superior o clicando el botón derecho y
seleccionando Añadir comportamiento (Add behavior). Esto abre el diálogo de Añadir
Comportamiento. La barra y el menú del botón derecho también te permiten renombrar
(rename)-F2 o borrar (delete)-Del comportamientos. El comportamiento aparece por su nombre
en el sistema de eventos.
Los comportamientos se pueden reordenar usando los botones Arriba (Up) y Abajo (Down) en la
barra, o arrastrándolas y soltándolas. El orden es solo para organización – no afecta a cómo
funcionan.
3.10.19 Parámetros (Parameters)
El diálogo de parámetros aparece después del diálogo de añadir condición o acción, o cuando
editas una condición o acción. Te permite introducir parámetros como las coordinadas X e Y
para Ajustar la posición (Set position) de los objetos (sprite). No aparece para acciones o
condiciones que no usen parámetros, como Destruir (Destroy). Se introducen expresiones, que
pueden ser cualquier cosa, desde un único valor numérico a una sofisticada cuenta matemática.
El panel de expresiones (expressions panel) aparece al lado del diálogo de parámetros dándote
una lista de todas las expresiones que puedes introducir. Por defecto, el panel de expresiones está
difuminado a menos que pases el ratón sobre él. También se puede esconder o mostrar pulsando
F4.
Usa el panel de expresiones para localizar expresiones del sistema, expresiones de objeto,
expresiones de comportamiento, variables locales o globales o variables de ejemplo. También
puedes usar autocompletar (autocomplete): tecleas una expresión hasta el punto (por ejemplo
Sprite.) y aparecerá una lista de todas sus expresiones. Esta lista muestra las expresiones de
objeto, sus variables de ejemplo y los comportamientos. Usa las flechas arriba y abajo del
teclado para seleccionar una y Enter para entrar en ella.
Algunas expresiones también tienen consejos para ayudarte a recordar cómo usarla. Aparece
cuando escribes un paréntesis abierto ( al lado de la expresión. Esto es muy útil en expresiones
del sistema que suelen tener muchos parámetros.
Pulsa el tabulador para ir al siguiente parámetro o Shift + Tabulador para ir a la anterior. Enter es
un acceso directo de presionar Hecho (Done) – quizás tengas que pulsa Enter dos veces si estás
usando autocompletar: una para elegir la entrada de autocompletar y otra para cerrar el diálogo.
Cerrar la página de inicio cuando clicas en algo (Close the start page when I click on something)
Si lo seleccionas, la página de inicio se cerrará en cuanto cliques alguno de los enlaces (por
ejemplo, un proyecto reciente). Si no, la página de inicio continuará abierta.
HTML5 exporter
Esta sección contiene ajustes para el exportador de HTML5, además de los servidores locales
para la vista previa.
Navegador por defecto de vista previa (Default previewer browser)
Elige los ajustes del navegador de vista previa de tus nuevos proyectos. Esto no afecta a ningún
proyecto ya existente.
Esta sección contiene ajustes que te ayudan a fijar una copia de seguridad automática para tu
trabajo. Esto es esencial para mantenerlo a salvo de fallos del hardware, robos, fuegos o
inundaciones. Para más información, mira el tutorial Keep your work safe with Construct 2's
backup options ⇗.
También puedes presionar Alt para navegar por la barra de herramientas. Cuando lo presionas,
aparecen las teclas de acceso directo de cada herramienta.
F4 Vista previa desde el primer plano (Preview project from first layout)
F5 Vista previa del plano actual (Preview current layout)
F6 Exportar proyecto (Export project)
Ctrl + Rueda del ratón hacia arriba o Números del teclado + Más Zoom
Ctrl + Rueda del ratón hacia abajo o Números del teclado – Menos Zoom
Añadir shift para ajustar la distancia del zoom.
Arrastar el botón central del ratón o Mantener pulsado espacio y mover el ratón Mueve la vista
(Pan the view)
Flechas del teclado (Arrow keys) Mueve el objeto seleccionado 1 píxel – mantén shift pulsado
para 10 píxeles.
Ctrl + L o Shift + Tab Ir al plano asociado (si hay – algunas hojas de eventos no tienen)
Flecha del teclado hacia arriba y hacia abajo Mueve la selección arriba y abajo en la hoja
Flecha del teclado izquierda y derecha Mueve la selección a ambos lados de la hoja entre
eventos, condiciones y acciones.
4.1 Proyectos
Un proyecto es un juego o aplicación completa hecha con C2. Los proyectos contienen todos los
elementos que componen el juego, desde eventos a archivos de sonido. Se muestra un resumen
del proyecto en la Barra del Proyecto y allí se pueden añadir, renombrar, eliminar y ordenar en
carpetas los elementos. Mira la Estructura del Proyecto (Project structure) para ver un resumen
de todos los elementos. A continuación se tratan más detalles sobre cada una de las partes.
Los proyectos se pueden abrir, cerrar y exportar desde el Menú de archivos. Mira también
Guardar y compartir proyectos (Saving and sharing projects) y Exportar y publicar (Exporting
and Publishing). Si estás interesado en aspectos técnicos ve a la sección Tecnología
(Technology). Se recomienda seguir los consejos de Buenas Prácticas (Best practices) cuando
trabajas en un proyecto.
Nombre (Name)
El nombre o título del proyecto.
Autor (Author)
El nombre de la persona o equipo que desarrolla el proyecto.
Descripción (Description)
Una frase o dos que resuman el proyecto.
Versión (Version)
Un número que identifique la versión o revisión del proyecto. Puedes usarlo para tus propias
copias pero a veces es útil al exportar para identificar una nueva versión del mismo proyecto. Es
buena idea incrementar el número cuando publiques una nueva versión.
Primer plano (First layout)
Selecciona que plano es el primero en aparecer cunado exportes el proyecto. Cuando haces una
vista previa en el editor suele ser de un solo plano específico, así que este ajuste no se aplicará
hasta la exportación.
Muestra (Sampling)
Elige entre muestra linear (nítida) o point (pixelada) cuando cambies el tamaño de las imágenes.
Se recomienda linear para juegos modernos con gráficos de alta resolución y point para juegos
retro que usan bloques pixelados.
4.2 Planos
Un plano se conformas de un diseño de objetos. Puede corresponder a un nivel del juego, al
menú o a una pantalla de títulos. En otras herramientas también pude significar escenas,
habitaciones, frames o etapas. Se pueden añadir, renombrar y borrar en la Barra del Proyecto.
Los planos se editan en la Vista de plano. Cada plano tiene una hoja de eventos asociada que
define como funciona.
Los planos contienen diversas capas. Los objetos que aparecen en la pantalla no pertenecen
directamente al plano, si no a la capa que está en el plano.
Los planos no tienen un fondo de color. Para asignar un color al fondo, haz que la capa de abajo
sea opaca y asígnale un color. Se puede hacer en la Barra de Capas.
También se le pueden aplicar efectos, que se aplican a todos los elementos que aparecen en la
pantalla.
Layout properties
Las propiedades de un plano se pueden editar en la Barra de Propiedades tras clicar un espacio
en el plano o seleccionando el nombre del plano en la Barra del Proyecto.
Nombre (Name)
El nombre del plano.
Hoja de eventos (Event sheet)
La Hoja de eventos asociada que define como funciona el plano. Estas hojas se pueden usar en
más de un plano usando incluye (includes) en planos con los mismos eventos.
Márgenes (Margins)
El tamaño, en píxeles, de los márgenes, que son las áreas grises fuera del plano. Sólo se ven en la
Vista de plano y no aparecen al hacer la vista previa.
4.3 Capas
Una capa es como una lámina de cristal en la que se sitúan los objetos. Se pueden usar para
superponer diferentes grupos de objetos, tanto en el fondo como en el primer plano. Las capas
pertenecen a un plano y se editan en la Barra de Capas. Se pueden desplazar a ritmos diferentes
para crear efectos de paralaje, así como escalar o girar, todo para conseguir efectos visualmente
más poderosos en los juegos.
También son importantes para añadir interfaces estáticas (o HUDs o UIs) a juegos dinámicos.
Una capa con el paralaje a 0, 0 no se moverá, así que cualquier objeto en ella siempre estará en
el mismo lugar.
Un conjunto común de capas sería:
HUD (capa superior – barra de vida del personaje, información UI, etc)
Primer plano (los objetos principales del juego)
Plano intermedio (capa de fondo con paralaje)
Fondo (última capa – el fondo)
También se pueden aplicar efectos a las capas, que afectan a todo el contenido de la capa.
Propiedades de capa
Las propiedades de la capa se pueden editar en la Barra de Propiedades tras clicar la capa en la
Barra de Capa. Nota que esto modifica cual es la capa activa – mira las propiedades de la capa
activa en Propiedades del Plano.
Nombre (Name)
El nombre de la capa, para referirte a ella en el sistema de eventos.
Transparencia (Transparent)
Ignora el color de fondo y hace que la capa sea transparente.
Opacidad (Opacity)
Ajusta la opacidad (o semitransparencia) de la capa, de 0 (invisible) a 100 (opaca).
Paralaje (Parallaz)
Cambia el índice al cual se desplaza la capa en dirección vertical y horizontal. En un paralaje de
100,
100 significa desplazamiento normal, 0,0 significa que no se mueve (útil para UIs), 50 significa
que se mueve a la mitad de velocidad, etc. También es útil para múltiples fondos en movimiento.
Bloqueada (Locked)
Si una capa está o no bloqueada en la Vista de plano. Los objetos en capas bloqueadas no se
pueden seleccionar. Se puede acceder también a través de la Barra de capas.
Paralaje en el editor (Parallax in editor)
Si está habilitado, las propiedades del paralaje también se aplicarán a la Vista de plano,
permitiéndote hacer una vista previa de cómo se verían los efectos.
4.4 Objectos
En C2 los objetos son lo más útil en un proyecto. La mayoría de las cosas que ves en un juego
de C2 son los objetos, incluyendo los objetos ocultos con otros propósitos (por ejemplo el audio
de fondo).
Cuando introduces un nuevo objeto, eliges en primer lugar un plugin en el diálogo (por ejemplo,
Sprite). Esto crea un tipo de objeto (por ejemplo, EnemigoTroll-TrollEnemy). Cuando el ratón
se convierte en una mira puedes situar el primer ejemplo y puedes duplicarlos para crear más
ejemplos del mismo tipo.
Las diferencias entre tipo y ejemplo de objeto son esenciales para usarlos correctamente. Los
objetos constan de varias partes, explicadas debajo. También hay secciones del manual que dan
más detalles de cada una.
Plugins
Un plugin se define como objeto. Por ejemplo, un Sprite es un tipo de objeto, y un Audio es otro
distinto. Se definen como Sprite plugin y Audio plugin respectivamente.
Los programadores de Javascript pueden crear plugins nuevos (y comportamientos) usando
Javascript SDK.
Ejemplos (Instances)
Usando el ejemplo anterior, si hay cuatro objetos de EnemigoTroll en un plano, estos son
ejemplos del tipo de objeto EnemigoTroll. Sólo hay un tipo EnemigoTroll. Así mismo, puede
haber múltiples ejemplos del tipo de objeto EnemigoOgro.
Comportamientos (Behaviors)
Se pueden añadir comportamientos a los tipos de objeto para añadir cierta funcionalidad. Por
ejemplo la Dirección 8 (8 direction) se puede añadir a un Sprite, y podrá ser movido con las
flechas del teclado. Esto ayuda a agilizar el desarrollo e incrementa la productividad. Los
comportamientos no están para hacer todo por ti: en el sistema de eventos es donde la mayoría de
la lógica del juego se define. Los comportamientos son, básicamente, atajos. La mayoría de ellos
pueden repetirse con eventos, pero así ahorras más tiempo. Los comportamientos son muy
personalizables, si uno de ellos no hace exactamente lo que quieres que haga, puedes
personalizarlo usando un evento.
Efectos (Effects)
Los efectos cambian la apariencia visual del objeto. No funcionan en todas las plataformas,
porque requiere WebGL. Se pueden ajustar los recursos para que todo aparezca razonablemente
bien aunque no funcione WebGL. Nota que los efectos son distintos de mezclar movimientos
(blend move) que funciona en todas las plataformas.
Familias (Families)
Las familias son grupos de tipos de objeto. Te ayudan a repetir eventos en distintos tipos de
objetos en grandes proyectos.
4.4.1 Plugins
Los plugings son los objetos. Por ejemplo, un Sprite es un tipo de objeto, y un Audio es otro
distinto. Se definen como Sprite plugin y Audio plugin respectivamente. Mira Referencia de
plugings (Plugin reference) para más información de cada uno.
La mayoría de los plugings definen sus propiedades en la Barra de Propiedades. Para ver una
lista completa, sitúa el pluging en Referencia de plugings (Plugin reference).
C2 está diseñado modularmente. Esto significa que no hay mucha funcionalidad: debes insertar
un plugin antes de poder usar sus funciones. Por ejemplo, no puedes reproducir ningún audio
antes de añadir el plugin de Audio al proyecto. Hacerlo puede parecer innecesario, pero hay
muchos plugings del proyecto completo y no todos los proyectos necesitarán todos. Por ejemplo,
si el plugin de Audio se aplicara automáticamente en cada proyecto, los que no lo necesiten
gastarían rendimiento, espacio en el disco y demás. Así que recuerda que si no añades un plugin
no estará realmente en el proyecto y hará que este sea más ligero y eficiente al exportar.
Hay múltiples ejemplos de un tipo de objeto en el proyecto. Por ejemplo, quizás quieras que
haya cuatro objetos de EnemigoTroll esperando al jugador. Estos cuatro ejemplos comparten la
animación, imágenes, comportamientos, variables de ejemplo y eventos. (En el caso de las
variables de ejemplos, cada ejemplo almacena un valor único – como la salud- y
comportamientos que funcionan independientemente del resto de ejemplos.)
Los tipos de objeto no tienen una posición, ángulo o tamaño. Estas son propiedades de los
ejemplos de ese tipo de objeto. La Barra del proyecto y la Barra de objeto muestran los
diferentes tipos de objetos del proyecto, pero no los ejemplos.
Los eventos son para añadir a un tipo de objeto. El evento filtra los ejemplos que cumplen esa
condición. Por ejemplo, el evento “Bala impacta en el Alien” ("Bullet collides with Alien") se
aplica a todos los ejemplos de los tipos de objeto “Bala” (“Bullet”) y “Alien”. Aunque cuando
el evento funciona, las acciones solo se aplican a los ejemplos específicos envueltos en el
impacto. Para más información ve a Cómo funcionan los eventos (How events work).
Los tipos de objeto pueden agruparse en familias. Te puede ayudar a evitar repetir los mismos
eventos en diferentes tipos de objeto.
4.4.3 Ejemplos
Los ejemplos son los objetos reales que puedes ver en el juego: un ejemplo de un tipo de objeto.
Por ejemplo, si hay cuatro EnemigoTroll en un plano, hay cuatro ejemplos del tipo de objeto
EnemigoTroll.
Son los ejemplos los que tienen una posición, ángulo y tamaño en el plano. Los tipos de objetos
no tienen estas propiedades – solo definen la “clase” de objeto.
Se pueden crear ejemplos en el tiempo de ejecución en el sistema de eventos (por la acción Crear
Objeto (Create Object) y Generar objeto (Spawn an objet)). También puedes prepararlos de
antemano en los planos con la Vista de plano para diseñar niveles y pantallas de título.
Nombre (Name)
El nombre del tipo de objeto al que pertenece.
Plugin
Un recordatorio del plugin al que pertenece.
Global
Por defecto, todos los ejemplos se destruyen cuando finaliza el plano (cuando se pasa al
siguiente). Si está seleccionado Global ninguno de los ejemplos de ese tipo de objeto se destruirá
al cambiar.
Capa (Layer)
La capa en la que está situado el ejemplo.
Ángulo (Angle)
El ángulo en grados en el que está orientado el ejemplo. También puede cambiarse por el ángulo
en la Vista de plano.
Opacidad (Opacity)
La opacidad del objeto (o semitransparencia) de 0 (tranparente) a 100 (opaco).
Posición (Position)
Las coordenadas X e Y en el plano, en píxeles. Se mide desde el origen del objeto (mirar puntos
de imagen). También pueden cambiarse moviendo el ejemplo en la Vista de plano.
Tamaño (Size)
La altura y anchura de los ejemplos, en píxeles. También se puede modificar recortando el
tamaño en la Vista de plano cuando el ejemplo está seleccionado.
Las variables de objeto también se pueden usar para ayudar a controlar los ejemplos. Por
ejemplo, una variable de ejemplo booleana puede usarse para determinar si un enemigo caza al
jugador (verdadero-true) o si escapa (falso-false). Si todos los ejemplos tienen diferentes
valores, la condición aplicada variable de ejemplo booleana puede usarse para aplicar acciones a
enemigos que cazan al jugador. Invirtiendo la condición (seleccionando ejemplos con el valor
falso-false) se pueden usar para aplicar acciones a enemigos que escapan. El resultado final es un
número de ejemplos del mismo tipo actuando de forma independiente: algunos cazarán y otros
escaparán. Éste es un ejemplo sencillo, pero se puede aplicar a casos más complicados.
Las variables de ejemplo también pueden agruparse en familias. Todos los tipos de objeto en la
familia tendrán la misma variable de ejemplo.
4.4.5 Comportamientos
Los comportamientos dan a los tipos de objeto una funcionalidad concreta. Se pueden añadir
con el Diálogo de comportamientos de objeto. Mira la Referencia de comportamientos (Behavior
reference) para más información sobre cada uno.
Algunos comportamientos también transmiten a los objetos a los que se les aplica sus propias
condiciones, acciones y expresiones. Así, éstas se muestran junto con las propias del objeto en el
diálogo de Añadir condición o acción y en el Panel de expresiones.
Los comportamientos se pueden agrupar en familias. Todos los tipos de objeto en la familia
tendrán el mismo comportamiento.
4.4.6 Efectos
Los efectos cambian la apariencia visual de los objetos. Se pueden añadir con el Diálogo de
efectos. También se pueden añadir a capas y planos, aunque los efectos que se combinan con el
fondo no se pueden usar en planos. Los efectos también son llamados shaders o WebGL shaders
effects, ya que se estos son la tecnología oculta que hace posibles los efectos. Debajo hay un
ejemplo de Efecto agua (Water effect) en una imagen.
C2 tiene una biblioteca con más de 70 efectos. Al añadirlos se muestran en la Vista de Plano si
WebGl está habilitado en las propiedades del proyecto. (Si WebGL está deshabilitado la Vista de
plano no mostrará ningún efecto). Se dan gran número de ejemplos de efectos en la Carpeta de
Ejemplos (Examples folder) de C2.
Se pueden aplicar varios efectos a un objeto, capa o plano. En este caso se encadenan los efectos.
Los resultados del primer efecto son procesados por el segundo, los del segundo por el tercero y
así sucesivamente.
Soporte (Support)
Para que se muestren los efectos es necesario que el dispositivo soporte WebGL. Para más
información mira la sección Tecnología (Technology) en la parte de Lienzo Canvas. En resumen,
no todas las plataformas u ordenadores soportan WebGL así que los efectos no se ven en estas
plataformas. Para asegurar que tu proyecto siga funcionando correctamente aunque el dispositivo
no soporte WebGL, mira la sección Recursos (Fallbacks).
Si se ven o no los efectos se puede comprobar con la Condición del sistema (system condition)
Se muestran efectos (Effects are supported).
Modo de mezcla (Blend mode)
La propiedad Modo de mezcla (Blend mode) funciona en todas las plataformas ya que también
funciona con el lienzo Canvas 2D. Es el único efecto que no requiere WebGL ni otros recursos
para funcionar.
El Modo de Mezcla ofrece unas sencillas formas predeterminada para mezclar objetos con el
fondo. Para ver un ejemplo de cómo funciona este Modo, mira el ejemplo Blend modes.capx en
la carpeta de ejemplos de C2.
Si se usan múltiples efectos, el Modo de mezcla se aplica sólo al último efecto. Por ejemplo con
tres efectos, los efectos se encadenaran con normalidad, y el Modo de mezcla se usará solo para
mezclar el resultado del tercer efecto con el fondo.
Recursos (Fallbacks)
Si el dispositivo no soporta WebGL, puedes especificar qué hacer usando la propiedad Recursos
(Fallbacks) en la categoría Efectos (Effects) en la Barra de Propiedades.
Por defecto, la propiedad Recursos cambia el Modo de mezcla a Normal si no se pueden soportar
los efectos. (Recuerda que la propiedad Modo de mezcla siempre funciona, en cualquier
plataforma u ordenador.) Esto hará que el objeto aparezca como si no tuviera ningún efecto
cuando no se soporta WebGL.
Las otras opciones de Recursos te permiten cambiar la propiedad Modo de mezcla a otra opción.
Por ejemplo, cuando usas el efecto pantalla (Screen effect) puedes conseguir un resultado similar
usando Aditivo (Additive) en el Modo de mezcla, así que puedes poner en Recursos - Aplicar
mezcla “Aditivo” (Set “Additive” blend). Si se soporta WebGL el objeto se mostrará con el
efecto pantalla (Screen effect). Si no, no funcionará este efecto pero sí el Aditivo (Additive) del
Modo de mezcla, pareciendo algo similar al efecto.
Finalmente, los recursos te permiten configurar un objeto para que se destruya (o que la capa se
esconda). Esto se puede usar en objetos opcionales con un uso meramente estético, por lo que si
no puede mostrar el efecto, simplemente no aparecerá dicho objeto.
Pruebas (Testing)
Asegúrate de probar tu proyecto con WebGL habilitado y deshabilitado en las propiedades del
proyecto para comprobar que los recursos funcionan correctamente y el contenido se muestra de
una forma razonablemente correcta. No puedes asumir que todos los usuarios tendrán soporte
para WebGL, incluso si usan un navegador que soporta WebGL, ya que un hardware antiguo o
unos drivers caducados harán que no se pueda usar WebGL. Hacer pruebas es la mejor forma de
proceder.
Rendimiento (Performance)
Usar demasiados efectos puede ralentizar el rendimiento, especialmente en móviles. Intenta usar
los efectos solamente cuando sea necesario.
Crear muchos ejemplos de un objeto que contiene efectos puede resultar ineficiente, ya que los
efectos deben procesarse muchas veces en pequeños objetos. Si muchos ejemplos necesitan usar
efectos, sería más apropiado situar todos los ejemplos en la misma capa y aplicar el efecto a la
capa. Esto mejorará el rendimiento manteniendo el mismo efecto.
Nunca uses efectos para crear un efecto estático en un objeto. Por ejemplo, no uses “Escala de
grises” (“Grayscale”) para que un objeto aparezca en escala de grises. En su lugar, aplica la
escala de grises a la propia imagen en el editor e impórtala así al proyecto. Tiene el mismo efecto
visual y evitas que el efecto se degrade al procesarlo. Los efectos como “Escala de grises”
(“Grayscale”) se deben usar solamente para transiciones o para que los objetos aparezcan en
escala de grises sólo ocasionalmente.
Para más información, mira la sección del manual Consejos para el rendimiento (performance
tips).
4.4.7 Familias (Families)
In C2, las Familias son agrupaciones de grupos de objetos. Todos los tipos de objeto de una
familia deben provenir del mismo plugin (p.e Sprite objetcs) y no una mezcla como Sprites o
Fondo mosaico.
Las familias evitan que no repitas eventos. Por ejemplo, en vez de tener los mismos eventos para
los objetos Enemy1, Enemy2 y Enemy3, puedes añadir los eventos una sola vez a la familia
Enemigos (Enemies). Automáticamente se aplicaran a todos los tipos de objeto dentro de la
familia.
Esto hace la tarea más fácil, agrupando objetos que funcionan de la misma forma.
Cómo crear una familia (How to create a family)
Haz clic con el botón derecho en la carpeta de Familias (Families) en la Barra del Proyecto y
selecciona Añadir familia (Add family). Aparece entonces el diálogo de Editar Familia (Edit
Family):
Los objetos de la izquierda son los objetos del proyecto que puedes añadir a la familia. Los de la
derecha son los que ya has añadido. Haz doble clic en un objeto para pasarlo al otro lado.
Puedes seleccionar varios objetos a la vez manteniendo pulsado Control y clicando varios de
ellos, después pulsas el botón del centro del diálogo para transferirlos.
Cuando hayas terminado, clica OK y la familia aparecerá en la Barra del Proyecto. Se puede
expandir para ver todos los objetos que contiene:
La familia, y los objetos que contiene, se pueden editar clicando el botón derecho sobre ella y
eligiendo opciones en el menú, como Quitar de la familia (Remove from family) o Editar familia
(Edit family).
Se pueden añadir objetos a múltiples familias. Todos los eventos de la familia se aplicarán al
objeto.
Si un tipo de objeto pertenece a distintas familias, adquiere todas las variables de las familias.
Al igual que con las variables de ejemplo, si añades un comportamiento a una familia, todos los
tipos de objeto de la familia adquirirán el comportamiento. El comportamiento aparecerá en los
eventos para cada objeto y para el conjunto de la familia. Por ejemplo, si añades el
comportamiento Bala (Bullet) a la familia llamada Balas (Bullets) significa que la acción Ajustar
velocidad (Set speed) de bala estará disponible para todos los objetos de la familia o para la
propia familia en conjunto.
Al igual que con las variables de ejemplo y los comportamientos, si añades un efecto a una
familia, todos los tipos de objeto de la familia adquirirán el efecto. Esto es útil para aplicar
objetos rápidamente a diferentes objetos.
Resumen (Summary)
Las familias son una función muy importante y esencial para ayudarte a simplificar los
proyectos. Las variables de ejemplo y los comportamientos que se añaden a las familias son
adquiridos por todos los objetos dentro de ella, lo que permite aplicar la lógica a varios objetos a
la vez.
4.5 Eventos
Los eventos son la principal función de C2: en vez de complicados lenguajes de programación y
scripts con una sintaxis enrevesada, en la que es fácil cometer errores, puedes definir cómo
quieres que funcione el juego usando un sistema lógico de bloques. Los bloques se refieren a los
eventos, aunque hay varios bloques que conforman una hoja de eventos.
El sistema de eventos de C2 puede no resultar familiar a los nuevos usuarios. Lee Como
funcionan los eventos (How Events Work) para ver un resumen. Los eventos no son bloques
prediseñados que limitan lo que quieres hacer. Están diseñados para darte las herramientas
básicas para crear juegos sofisticados.
Los conceptos básicos de los eventos son que las condiciones filtran los ejemplos que cumplen
la condición, entonces las acciones funcionan solamente para esos ejemplos. Un malentendido
común es que todos los ejemplos deben funcionar de la misma forma. Ése no es el caso: la
función de los eventos es filtrar ejemplos de forma individual, y aplicar acciones en aquellos que
cumplen cierta condición.
Debajo se muestra un sencillo diagrama. (No incluye todas las funciones de los eventos – el resto
están explicados en esta sección).
Las partes que forman los eventos se resumen debajo. Revisa todas las secciones relevantes del
manual para más información de cada una. Mira también, Cómo funcionan los eventos (How
events work).
Los eventos consisten en condiciones que se deben reunir, acciones que funcionan si es el caso
y, opcionalmente, más sub-eventos que prueban más condiciones, activas más acciones, etc. Por
ejemplo, si la condición Las balas impactan en el Alien (Bullet collides with alien) aparece, la
acción Destruir Alien (Destroy Alien) funcionará, y la acción de dest5ruir sólo afectará a
aquellos ejemplo que tengan dicha condición.
Las condiciones indican el criterio que se debe reunir. Filtran los ejemplos que sí los reúnen.
Las acciones hacen que sucedan cosas. Solamente afectan a los ejemplos filtrados por las
condiciones.
Las expresiones pueden ser sumas que resolver para obtener valores, o recuperarlos de objetos,
como lq coordenada X de un Sprite.
Incluir (Includes) puede intercambiar hojas de eventos entre planos. Esto evita que tengas que
copiar y pegar los eventos de forma individual en cada plano. Añadir incluir es como hacer un
copia-pega automático del contenido de una hoja de eventos en otra.
Las variables de evento pueden almacenar números y textos de forma global (para todos los
planos) o local (para un rango específico de eventos).
Las hojas de evento son una lista de eventos. Se pueden asignar a un plano específico, o
incluirlas en otra hoja de eventos.
Scripting
C2 sólo usa el sistema de eventos y no funciona con ningún script. Esto es porque el sistema de
eventos es suficientemente potente para sustituir cualquier script. Aunque, si eres programador,
quizás te interese extender C2 usando Javascript SDK.
Los eventos están diseñados para ser fáciles de manejar y muy intuitivos. Aunque tienen ciertas
formas específicas de funcionar, que se describen aquí.
Funcionan filtrando ciertos ejemplos que reúnen cierta condición. Las acciones entonces
funcionan sólo para esos ejemplos. Por ejemplo, tenemos el siguiente ejemplo:
Cuando una Bala (Bullet) colisiona con un Monstruo (Monster) la condición tiene lugar. Los
ejemplos de Balas y Monstruos envueltos en la colisión son seleccionados por el evento.
Entonces, la acción sólo funciona para los ejemplos seleccionados por la condición. Por ejemplo,
si hay otras 3 balas en la pantalla, sólo la que esté incluida en la colisión se destruye por la
acción Bala: Destruir (Bullet: Destroy). También, sólo el Monstruo que es golpeado resta una
unidad de salud (Subtract 1 from health) que es una variable de ejemplo. ¡Sería muy difícil hacer
buenos juegos si esto no funcionara así y las acciones afectaran a todos los ejemplos de
monstruos y balas! Así que recuerda que las condiciones filtran o recogen los ejemplos para que
las acciones funcionen en ellos.
Otra forma de pensar en los eventos es la de “Si todas las condiciones se reúnen en un ejemplo,
entonces las acciones funcionan”.
ejemplo:
Usando varias condiciones puedes hacer funcionar las acciones solo en los ejemplos que
cumplen todos los criterios. Los usuarios de lenguajes de programación u otras herramientas
reconocerán esto como “AND”. Todas las condiciones de un evento deben reunirse para que se
aplique la acción. Si no hay monstruos en pantalla o ninguno de los que hay tiene menos de 5
unidades de salud la acción no funciona.
Para empezar, piensa en condiciones que cumplan todos los ejemplos y después,
progresivamente, ves seleccionándolas y filtrándolas. Si no hubiese condiciones, entonces se
seleccionarían todos los ejemplos, afectándoles las acciones a todos.
Borrar recoger eventos entre uno y otro (Picking resets between events)
Cuando un evento finaliza, el siguiente comienza desde cero. Sus condiciones empezarán a filtrar
todos los ejemplos de nuevo.
Por otra parte, los sub-eventos (que aparecen con sangría) continúan la tarea desde donde la dejó
el evento del que provienen. Un sub-evento filtrará aún más los ejemplos dejados por el evento
que venía antes de él. Si un evento tiene dos sub-eventos, ambos recogerán ejemplos del mismo
grupo del que recogía el padre (el primer sub-evento no afecta al segundo). En otras palabras, los
eventos en el mismo nivel de sangría siempre recogen del mismo grupo de ejemplos, y los
eventos de nivel más bajo siempre trabajan con los ejemplos filtrados desde más arriba.
Las acciones de sistema no funcionan en los objetos recogidos: solo si todas las condiciones del
evento se reúnen.
Lo mismo pasa dentro de los propios eventos: las condiciones se comprueban de arriba a abajo, y
las acciones funcionan de arriba a abajo.
Aunque hay una excepción, los detonantes (triggers). Mira la flecha verde a la izquierda de
Teclado: al presionar espacio (Keyboard: On Space pressed) en el ejemplo anterior:
Esto indica que el evento está detonado. En lugar de ejecutarse siguiendo los pasos, este evento
funciona (o se detona) cuando ocurre algo. En este caso, el evento funciona cuando el usuario
pulsa la barra espaciadora del teclado. No aparece en ningún otro momento. Los detonantes
hacen que un evento no siga la secuencia de ejecución de arriba a abajo. Esto significa que el
orden de los eventos con un detonante no es relevante (excepto en relación con otros detonantes
del mismo tipo, que siguen actuando de arriba a abajo).
Sólo puede haber un detonante por evento, porque dos no pueden funcionar simultáneamente.
Pero varios detonantes sí pueden agruparse en bloques “o” (ver la explicación siguiente).
Bloques “o”
Como se ha mencionado antes, se tienen que reunir todas las condiciones para que un evento
funcione. Esto se llama “Lógica Y” (“Logica AND”), porque la condición 1 Y la condición 2 Y
la condición 3... deben cumplirse. Pero puedes modificar un evento para que funcione cuando
cualquiera de las tres condiciones se cumpla. Esto se llama “Lógica O” (“Logical OR”), porque
el evento funcionará si la condición 1 O la condición 2 O la condición 3… se cumplen.
Normalmente los bloques funcionan como bloques Y (AND). Para crear bloques O (OR), clica
sobre el bloque con el botón derecho y selecciona Crear bloque O (Make Or block). Entonces
aparecerá un -or- entre cada condición, como se muestra abajo.
Date cuenta que normalmente sólo puedes poner un detonante por evento, pero puedes juntar
varios en un bloque de este tipo, por lo que el evento funcionara si cualquiera de los tres se da.
Puedes combinar los tipos de bloques usando sub-eventos. Esto te permite construir una lógica
más compleja, como un bloque “O” seguido de uno “Y”.
Condiciones enlazadas
Algunos eventos se enlazan, es decir, se repiten sus acciones varias veces. Date cuenta que las
flechas circulares en el ejemplo siguiente indican esto.
Esto significa que, cuando comienza el plano, la acción Crear objeto (Create object) se repite 10
veces. El resultado final es la creación de 10 monstruos en lugares al azar dentro del plano.
Puede haber más condiciones que sigan la condición Repetir (Repeat). Se comprueban en todas
las repeticiones y deben cumplirse para que la acción se desencadene. Puede haber más de un
enlace en un evento, pero no es frecuente.
Familias
Date cuenta que las familias recogen sus ejemplos independientemente a los tipos de objeto que
contienen. Para más información ve a la sección Seleccionar familias en los eventos (Picking
families in events).
Resumen
Usando este sistema de eventos es posible crear una lógica sofisticada que hace juegos de forma
rápida y fácil. Es una alternativa muy poderosa a los lenguajes de programación para personas
que no están acostumbradas al uso de estas técnicas.
Aunque esta sección ha descrito las partes esenciales del sistema de eventos, todavía no ha
cubierto todo. El resto de la sección de Eventos trata más características que puedes usar.
Behavior reference, Plugin reference y System reference también hablan de las condiciones,
acciones y expresiones en C2.
Los Planos tienen asociada una Hoja de Evento que define como funciona el plano. Hay dos
formas de compartir eventos entre capas:
1. Establecer la propiedad Hoja de Evento a varios planos en la misma hoja.
2. Crea una hoja de evento independiente con los eventos comunes e inclúyela en otras hojas.
La segunda opción es preferible ya que no estás forzado a usar los mismos eventos para
diferentes planos – sólo añades unos cuantos eventos extra para personalizarlos.
4.5.3 Condiciones
En los Eventos, las condiciones filtran los ejemplos que reúnen ciertos criterios. Aparecen a la
izquierda del evento. Todas las condiciones en un evento deben reunirse para al menos un
ejemplo para que la acción funcione. Las acciones solo se aplican a los ejemplos que tienen esas
condiciones.
Hay tres tipos de condiciones: las normales, las detonadas y las enlazadas. Mira la sección
Cómo funcionan los eventos (How events work) para más información.
Invertir condiciones
Las condiciones se pueden invertir, lo que cambia aquello que comprueba. Por ejemplo, la
condición Monstruo se superpone a Jugador (Moster is overlapping Player) es verdadera
siempre que el monstruo toca al jugador. Pero, si se invierte, aparece un icono rojo tachado que
significa Monstruo no se superpone a Jugador (Monster is not overlapping Player).
No se pueden invertir todas las condiciones (los detonadores no se pueden, ya que el evento no
tendría sentido en ese caso).
4.5.4 Acciones
En los eventos, las acciones hacen algo, como crear un objeto o ir a otro plano. Aparecen a la
derecha del evento.
Las acciones solo afectan a los ejemplos que reúnen las condiciones del evento. Mira la sección
Cómo funcionan los eventos (How events work) para más información.
4.5.5 Expresiones
En los eventos, las expresiones se usan para calcular sumas o recuperar información de un
objeto, como la coordenada X de un Sprite. Las expresiones se introducen el Diálogo de
parámetros. El Panel de Expresiones se muestra a la vez que da un catalogo de todas las
expresiones del sistema y de objeto disponibles en el proyecto.
Algunos ejemplos de expresiones, que pueden ir desde un número simple a un cálculo complejo,
son:
0
random(360)
Sprite.X
(Player1.X + Player2.X) / 2
Sprite.8Direction.Speed
Sprite.X + cos(Sprite.Angle) * Sprite.Speed * dt
Números
Los números simplememnte se introducen como dígitos con un decimal opcional separado por
un punto. Por ejemplo: 5 o 1.2.
Texto (Secuencias/Strings)
El texto, también conocido como secuencias (strings) en programación y a veces en C2. El texto
en las expresiones debe ser entrecomillado, por ejemplo “Hola” (“Hello”).
Las comillas no se incluyen como parte del texto, así que establecer que un objeto de texto
muestre la expresión “Hola” (“Hello”) hará que aparezca Hola (Hello), sin comillas. Para
incluir comillas en una secuencia deberás duplicarlas, por ejemplo “Él me dijo “”hola””” (“He
said” “””hi”” to me”) se convertirá en Él me dijo “hola” (He said “hi” to me).
Puedes usar & para crear cadenas de texto y números, por ejemplo “Tu puntuación es: ” &
puntuación” (“Your score is: ” & score)
Para añadir un salto de línea a la secuencia usa la expresión del sistema línea nueva (newline),
por ejemplo, “Hola” & línea nueva & “mundo” ("Hello" & newline & "world").
Operadores (Operators)
Puedes usar los siguientes operadores en las expresiones:
+ (suma)
- (resta)
* (multiplicación)
/ (división)
% (módulo, el resto tras la división)
^ (incrementar el poder)
& (crear secuencias)
También hay operadores de comparación =, <>, <, <=, >, >= para comparar valores. Vuelven a 1
si la comparación es verdadera o a 0 si es falsa.
& también se puede usar en la lógica Y (AND) y | para la O (OR). Es útil usarlos junto a los
comparadores, por ejemplo puntuación < 0 | salud < 0 (score < 0 | health < 0), que vuelve a 1
si es verdadero y 0 si es falso.
La expresión Mismo (Self) se puede usar como acceso directo para referirse al proyecto actual.
Por ejemplo, en una acción para el Jugador, Self.X se refiere al Jugador.X (Player.X).
Puedes añadir un índice de objeto basado en 0 para conseguir expresiones para distintos
ejemplos de objeto. Por ejemplo, Sprite(0).X consigue la primera posición X del ejemplo, y
Sprite(1).X consigue la segunda. Para más información mira el índice IDs (IIDs) en las
características comunes. También puedes aprobar otra expresión para el índice. Los números
negativos empiezan en el extremo opuesto, así que Sprite(-1).X consigue la última posición de
X.
4.5.6 Sub-eventos
Los sub-eventos aparecen detrás de otros eventos. Estos continúan recogiendo ejemplos del
evento “padre”. Siguen funcionando tras el término de la acción que activa el evento “padre”.
Debajo un ejemplo.
En otras palabras, los monstruos hieren al jugador al tocarlo, a menos que el jugador habilite su
escudo, en cuyo case el herido será el monstruo.
Esto funciona porque el objeto seleccionado por el evento superior se recuerda y se usa también
para los sub-eventos. Si el segundo y el tercero no fueran sub-eventos (no aparecerían sangrados)
el segundo evento sustraería 1 punto de salud de todos los Mostruos, ya que no habría referencia
alguna en el evento. (Mira Objetos sin referencia (Unreferenced objects) en la sección de cómo
funcionan los eventos para más información).
Los sub-eventos pueden tener sus propios sub-eventos también, que hacen que sean más
poderosos y flexibles para ajustar la lógica de avance del juego.
Nota que los sub-eventos funcionan después de las acciones solamente si las hay – en el ejemplo
de arriba, si ningún monstruo se solapa con el jugador, ni la acción ni el evento o sub-evento
funcionan.
Los eventos se pueden arrastrar y soltar dentro y fuera del grupo. Grupos enteros también
pueden ser habilitados y deshabilitados con la acción del sistema Activar Grupo (Set Group
Active), lo que es útil en pausas del juego.
4.5.8 Comentarios
Los comentarios del evento son notas que te ayudan a recordar cómo funcionan los eventos y
qué hacen. ¡Son muy importantes para ayudarte a recordar cómo funcionan las cosas en grandes
proyectos! Los comentarios tienen el fondo amarillo y aparecen sobre el evento que están
describiendo.
Se pueden editar haciendo doble clic sobre ellos. Puedes hacer un comentario con un salto de
línea manteniendo pulsado shift y pulsando Enter.
Si usas C2 muy a menudo, encontrarás esenciales los comentarios para ayudar a organizarte y
entender el funcionamiento de trabajos grandes. Volver a un proyecto tras unos pocos meses sin
ningún comentario sería difícil, así que no los subestimes.
4.5.9 Adjunto
La Hoja de eventos adjunta te permite incluir una hoja de evento en otra. Es como un copia-
pega automático del contenido de una hoja a otra. Esto es útil para compartir eventos comunes en
varios planos. Por ejemplo, puedes usar diferentes hojas de eventos para distintas partes de la
lógica del juego. Puedes tener hojas de eventos llamadas Entrada del Jugador (Player input),
Control del enemigo (Enemy control), Efectos (Effects) y demás. Entonces cada nivel del juego
puede incluir estos eventos habituales en la propia hoja de evento de ese plano. Esto te permite
compartir eventos entre múltiples planos sin tener que copiar y pegar todos los eventos una y
otra vez.
Los adjuntos pueden añadirse haciendo doble clic en un espacio de la Hoja de eventos, o usando
la Barra de Eventos.
4.5.10 Variables
Las Variables de Evento son los valores numéricos o textuales para el proyecto global o local,
para un conjunto de eventos. Se modifican con el Diálogo de Variables de evento.
Variables globales
Las variables globales aparecen con el icono un globo terráqueo (como en la imagen de arriba).
Están en el nivel más alto de la hoja de eventos- no son sub-eventos ni están dentro de un
grupo.
Almacenan sus valores entre planos. Los eventos en cualquier plano pueden acceder a las
variables globales.
Variables locales
Las variables locales se sitúan tras otros eventos o dentro de un grupo. Aparecen con el icono
de un diamante en vez de un globo.
El radio de alcance de una variable de evento está diseñado también para coincidir con los
lenguajes de programación reales. El radio de alcance ce una variable local es su nivel de sub-
eventos. El resto de eventos a su nivel, o a más bajos, pueden acceder a la variable local. Los
eventos por encima (menos sangrados) no pueden acceder a ellas. Esto hace que las variables
locales sean apropiadas para un grupo reducido de eventos o eventos de corta duración.
Por ejemplo, si una variable de evento está en un grupo de eventos se convierte en una variable
local. Entonces, solo aparecerá como opción para los eventos de ese grupo. En otros grupos o
en otras hojas de eventos no aparecerá por lo que no podrá ser accedida. Esto hace que el radio
de alcance sea el lugar en el que está contenida la variable.
4.6 Archivos
Cualquier archive externo puede ser importado a tu proyecto usando la Barra del Proyecto. Es
útil para incluir cualquier otro recurso que tu proyecto pueda necesitar, como videos, imágenes
extras, datos JSON, datos XML, datos de texto, documentos, o otros archivos generales que
quieras permitir descargar a los usuarios.
Para ver ideas sobre usos de archivos en tu proyecto, mira el tutorial Using project files in
Construct 2 ⇗.
Por defecto puedes añadir cualquier tipo de archivo a tu proyecto, pero también puedes filtrar los
archivos para mostrar sólo aquellos del tipo que buscas.
Los archivos del proyecto pueden ser solicitados por AJAX en tiempo de ejecución mediante la
acción Request project file de objetos AJAX. Esto es útil para datos XML o JSON en tiempo de
ejecución.
Para importar y reproducir audio en C2, debes seguir los siguientes pasos:
1. Importa sonidos clicando el botón derecho en las carpetas de Sonido (Sound) y Música
(Music) en la Barra del Proyecto y seleccionando Import sounds o Import music.
2. Importa el audio mediante el diálogo de Importar audio.
3. Añade el objeto de audio al proyecto y añade eventos para reproducir el audio.
Para más información a la hora de importar audio, ve a la sección Diálogo de Importar audio
Import Audio dialog.
Sin estos tipos MIME quizás no puedas escuchar el audio tras subir el proyecto al servidor, o al
entrar a la URL del archivo de audio te aparecerá 404 Not Found error.
5. Referencia de
Comportamientos
Está sección nos da una referencia de todos los comportamientos oficiales que vienen con C2.
Cada uno tiene un resumen de su uso, una lista de propiedades y una detallada lista de acciones,
condiciones y expresiones específicas del comportamiento. Los comportamientos transmiten sus
condiciones, acciones y expresiones al objeto al que son añadidos, apareciendo junto a las
propias características del objeto en el Diálogo de Añadir Condición/Acción y en el Panel de
expresiones.
Los comportamientos se pueden añadir y quitar a un objeto vía Barra de Propiedades, que abre el
Diálogo de Comportamientos de objeto y el de Añadir comportamiento.
Personalizar controles
Por defecto, los movimientos del comportamiento controlados por el usuario usan unos
controladores estándares ya fijados (normalmente basados en las flechas del teclado). Para
cambiarlos, cambia la propiedad Controles por defecto (Default controls) a No, y configura
algunos eventos usando la acción Control simulado (Simulate control). Para un ejemplo, ve al
ejemplo Paltform 4 (custom controls).capx en la carpeta de ejemplos en el directorio de
instalación de C2. Utiliza los siguientes eventos para cambiar las flechas del teclado a W, A y D:
La acción Control simulado (Simulate control) no tiene que manejarse con el teclado. Por
ejemplo, se puede usar con un toque para crear controles de toque de pantalla o con un mando.
También puedes configurar eventos para que controlen ejemplos automáticamente con la acción
Control simulado (Simulate control). Esto te permite configurar enemigos controlados por el
ordenador o personajes sin jugador (NPCs), a veces referidos como “AI”.
5.1 8 direcciones
El comportamiento de 8 direcciones permite que un objeto se mueva arriba, abajo, izquierda,
derecha o en las diagonales, controlado por las flechas del teclado por defecto. Suele ser útil para
controlar al jugador en juegos con vista cenital. También se puede simplificar a 4 direcciones
(arriba/abajo, izquierda/derecha) útil para deslizarse o para nadar.
La velocidad máxima a la que un objeto puede viajar en cualquier dirección, en píxeles por
segundo.
Aceleración (Acceleration)
La tasa a la que acelera el movimiento, en píxeles por segundo por segundo. Al invertir el
movimiento actual, la aceleración y la deceleración contribuyen a disminuir la velocidad.
Deceleración (Deceleration)
La tasa a la que decelera el movimiento para descansar cuando no hay movimiento, en píxeles
por segundo por segundo. Al invertir el movimiento actual, la aceleración y la deceleración
contribuyen a disminuir la velocidad.
Direcciones (Directions)
Ajusta cuantas direcciones tiene el movimiento. Por defecto son 8, incluyendo las diagonales.
Las 4 direcciones no usan las diagonales y, Arriba&Abajo e Izquierda&Derecha solo permiten
el movimiento a lo largo de esos ejes.
Parada (Stop)
Un acceso directo para poner la velocidad a cero.
Expresiones de las 8 direcciones
Aceleración (Acceleration)
Deceleración (Deceleration)
Velocidad máxima (MaxSpeed)
Restablece las propiedades correspondientes, descritas en las propiedades de las 8 direcciones.
Velocidad (Speed)
Da la velocidad del movimiento del objeto, en píxeles por segundo.
VectorX
VectorY
Da la velocidad del objeto en cada eje, en píxeles por segundo. Por ejemplo, si el objeto se
mueve a la izquierda a 100 píxeles por segundo, el VectorX es -100 y el VectorY es 0.
Este comportamiento sólo tiene un efecto útil cuando la propiedad pantalla completa en el
navegador está activada tanto en On (crop mode) como en On (scale mode).
Los objetos que usan el Ancla deben estar en una capa cuyo paralaje sea 0,0. De otra forma,
mientras el juego avanza el objeto podría quedarse atrás en la pantalla.
Posicionar objetos en relación al tamaño de la ventana
En la parte superior izquierda de la Vista del plano, un cuadro intermitente representa el tamaño
por defecto de la pantalla del juego. Los objetos anclados deben posicionarse dentro del área del
cuadro de puntos, como se muestra a continuación.
Ahora, si la ventana cambia su tamaño durante la vista previa, los objetos mantendrán sus
posiciones relativas, como se muestra abajo:
Esto es útil para elementos de la interfaz como notificaciones y pantallas de visualización frontal
(HUDs).
Posiciones relativas
El Borde izquierdo (Left edge) y el Borde derecho (Right edge) posicionan el objeto en
relación a las esquinas de la ventana, sin cambiar el tamaño del objeto. Por ejemplo, si el borde
izquierdo (left edge) se ajusta a la ventana derecha, (window right) el objeto siempre estará a la
misma distancia del borde derecho de la ventana.
El Borde derecho (Right edge) y el Borde del fondo (Bottom edge) ajustan el tamaño del
objeto en relación a las esquinas de la ventana. Por ejemplo, si quieres que un Fondo adosado
(mosaico) se extienda más allá del ancho de la ventana, ajusta el borde derecho (right edge) a la
ventana derecha (window right).
Condiciones, acciones y expresiones del Ancla
El Ancla solo tiene una acción:
Ajusta al Origen (Origin) sólo para evitar que el objeto salgo completamente del plano. El
resultado depende de donde hayas marcado el origen del objeto, pero con un origen centrado se
parará en una posición similar a la siguiente imagen:
Para dos ejemplos del comportamiento Bala ve a Bouncing balls.capx y Bouncing bullets.cap en
la carpeta de ejemplos en el directorio de instalación de C2.
Propiedades de Bala
Velocidad (Speed)
La velocidad inicial de la bala, en píxeles por segundo.
Aceleración (Acceleration)
La tasa de aceleración de la bala en píxeles por segundo por segundo. Cero mantendrá una
velocidad constante, los valores positivos la acelerarán y los negativos la decelerarán hasta
pararse (el objeto no puede volver).
Gravedad (Gravity)
La fuerza de la gravedad que hace que la bala descienda, en píxeles por segundo por segundo.
Cero deshabilita la función de la gravedad que es útil en juegos con vista cenital. Los valores
positivos hacen que la bala dibuje una parábola mientras avanza, por efecto de la gravedad.
Rebotar contra sólidos (Bounce off solids)
Si lo ajustas a Sí, la bala rebotará en cualquier objeto con el comportamiento Sólido (Solid).
También calculará en ángulo de reverberación para que sea realista dependiendo de la forma y el
ángulo del objeto.
Ajustar ángulo (Set angle)
Si está en No, el comportamiento nunca cambiará el ángulo del objeto. Si está en Sí, el
comportamiento siempre ajustará el ángulo del objeto al del movimiento.
Condiciones de la Bala
Cotejar velocidad (Compare speed)
Coteja la velocidad actual de la bala, en píxeles por segundo.
Acciones de la Bala
Rebotar en objeto (Bounce off object)
Hace que la bala rebote en un objeto si lo toco. Ya que la bala solamente toca el objeto, es útil
usar el evento Colisión (On collision). También calculará el ángulo de reverberación para rebotar
de forma realista dependiendo de la forma y ángulo del objeto. Si la bala no se solapa al objeto, o
se queda atascada dentro, está acción no tendrá efecto.
Ajustar aceleración (Set acceleration)
Ajusta la aceleración de la bala en píxeles por segundo por segundo.
Ajustar ángulo de movimiento (Set angle of motion)
Ajusta el ángulo al que se mueve la bala, en grados.
Habilitar (Set enabled)
Habilita o deshabilita el movimiento. Si está deshabilitado, el comportamiento dejará de mover
la bala, pero recordará la velocidad, aceleración, etc. si la vuelves a habilitar.
Expresiones de la Bala
Aceleración (Acceleration)
Da la aceleración actual en píxeles por segundo por segundo.
Velocidad (Speed)
Da la velocidad de movimiento de la bala en píxeles por segundo.
Propiedades de coche
Velocidad máxima (max speed)
La velocidad máxima, en píxeles por segundo, a la que el coche puede acelerar.
Aceleración (Acceleration)
La tasa a la que el coche acelera, en píxeles por segundo por segundo.
Deceleración (Deceleration)
La tasa a la que el coche frena, en píxeles por segundo por segundo.
Fricción (Friction)
La cantidad de velocidad perdida cuando se colisiona con un sólido, de 0 (parada) a 1 (no afecta
a la velocidad). Por ejemplo, para bajar la velocidad a la mitad cuando se colisiona, ajusta la
Fricción a 0,5.
Condiciones de coche
Cotejar velocidad (Compare speed)
Coteja la velocidad actual del coche, en píxeles por segundo.
Acciones de coche
Ajustar aceleración (Set acceleration)
Ajustar deceleración (Set deceleration)
Ajustar recuperación de la deriva (Set drift recover)
Ajustar fricción (Set friction)
Ajustar velocidad máxima (Set max speed)
Ajustar velocidad de manejo (Set steer speed)
Ajustan las propiedades correspondientes. Mira las propiedades de coche para más información.
Parada (Stop)
Un acceso directo para poner la velocidad a cero.
Expresiones de coche
Aceleración (Acceleration)
Deceleración (Deceleration)
Recuperación de la deriva (DriftRecover)
Fricción (Friction)
Velocidad máxima (MaxSpeed)
Velocidad de manejo (SteerSpeed)
Dan las propiedades correspondientes. Mira las propiedades de coche para más información.
Da el ángulo de movimiento actual (que puede ser distinto del ángulo del objeto), en grados.
Velocidad (Speed)
VectorX
VectorY
Da la velocidad del objeto en cada eje, en píxeles por segundo. Por ejemplo, si el objeto se
mueve a la izquierda 100 píxeles por segundo, VectorX será -100 y VectorY 0.
5.6 Personalizar movimiento (Custom movement)
El comportamiento Personalizar movimiento no implica ningún movimiento para el objeto.
Pero tiene funciones que hacen más fácil incluir tus propios movimientos “personalizados”
(basados en eventos).
Los diferentes movimientos no se pueden explicar en esta sección del manual. Pero sí que se
hará un resumen de los comportamientos básicos de movimiento y lo que hacen. Para un ejemplo
de movimiento estilo asteroides usando movimientos personalizados, ve al ejemplo Custom
movement (asteroids).capx en la carpeta de ejemplos de C2.
Para muchos juegos, los comportamientos predefinidos como Platafora (Platform) y las 8
Direcciones (8 Direcction) son suficientes. Modificar comportamientos existentes con la
herramienta de personalizar se debe evitar, ya que son más difíciles de hacer funcionar
correctamente. Los predefinidos han sido probados concienzudamente y tienen más funciones de
las que puedas imaginar (como la detección de inclinación en Plataforma), y son más rápidos y
fáciles de usar que los personalizados.
A cada vez, el movimiento personalizado ajusta la posición del objeto dependiendo de los
valores dx y dy. Esto se llama paso. También puede usar múltiples pasos por vez, lo que ayuda a
detectar colisiones de forma más precisa si el objeto se mueve muy rápidamente. Cada paso
detonará En el paso (On step), En el paso horizontal (On horizontal step) o En el paso vertical
(On vertical step) dependiendo en la propiedad Modo de paso (Stepping mode).
On horizontal step
On vertical step
Detonados para cada paso a lo alrgo de un eje cuando el modo de paso está en Horizontal then
vertical o en Vertical then horizontal. Se usa para detectar colisiones de forma precisa si hay
solapamiento (Is overlappeing).
On step
Detonado para cada paso cuando el modo de paso está en Linear. Se usa para detectar colisiones
de forma precisa si hay solapamiento (Is overlappeing).
Acciones de movimiento personalizado
Habilitar (Set enabled)
Habilita o deshabilita el comportamiento. Si está deshabilitado no modificará la posición del
objeto.
Acelerar (Accelerate)
Acelera el movimiento total o el movimiento en un eje específico.
Invertir (Reverse)
Invierte el movimiento volteando los valores de dx y dy.
Parada (Stop)
Un acceso directo para poner la velocidad a cero.
Paras pasos (Stop stepping)
Sólo válido para On step, On horizontal step y On vertical step. Para el modo de pasos en esa
vez. El objeto puede volver a su Antigua posición (dónde estaba la vez anterior) o mantenerse en
su posición actual (probablemente a medio camino entre las dos posiciones).
Velocidad (Speed)
Da la velocidad total en píxeles por segundo, calculados como la magnitud del vector (dx, dy).
Este comportamiento es útil para evitar que balas y otros proyectiles permanezcan todo el tiempo
volando sobre el plano. Por ejemplo, sin el comportamiento, si el usuario dispara a un enemigo y
falla, la bala continuaría volando fuera del plano para siempre. Con el avance del juego, más y
más balas se añadirían, todas moviéndose más lejos y continuamente, lo que usaría más y más
memoria haciendo que el ordenador y el juego vayan más despacio. Esto se puede evitar
fácilmente añadiendo Destruir fuera del plano a las balas, para que se vayan eliminando de
forma gradual cuando salen del plano.
5.8 Arrastar y Soltar (Drag & Drop)
El comportamiento Arrastrar y Soltar hace que los objetos puedan ser arrastrados y soltado
con el ratón o tocándolos en una pantalla táctil. En dispositivos multi-táctiles varios objetos se
pueden arrastrar y soltar a la vez.
Un objeto se arrastra clicando sobre él con el ratón o con el dedo. La acción finaliza cuando se
suelta el ratón o se deja de tocar.
Por ejemplo, si cada paso está ajustado a 1 segundo, el objeto aparecerá desde invisible durante 1
segundo, esperará durante 1 segundo y se desvanecerá durante 1 segundo.
Se recomienda establecer Destruir (Destroy) tras Después de desvanecerse (After fade out). Si lo
estableces a No, el objeto seguirá existiendo tras desvanecerse, pero invisible. Si muchos objetos
usan este comportamiento, puede haber muchos objetos invisibles lo que ocupará memoria y el
juego irá lento.
Propiedades de desvanecerse
Activar al inicio (Activate at start)
Si Sí, el objeto empezará a desvanecerse tan pronto como sea creado. Si No, el desvanecimiento no
empezará hasta que uses la acción Empezar (Start).
Destruir (Destroy)
Si se establece tras Después de desvanecerse (After fade out), el objeto será automáticamente
destruido tras la acción. Si No, el objeto no se destruirá con el comportamiento. Asegúrate de
destruir los objetos cuando no sean necesarios, ya que aquellos que están siendo invisibles pueden
causar que el juego se ralentice.
Condiciones de desvanecerse
Terminar desvanecerse (On fade out finished)
Detonado cuando se termina el desvanecimiento.
Acciones de desvanecerse
Comenzar desvanecimeinto de nuevo (Restart fade)
Hace funcionar el desvanecimiento otra vez desde el principio.
Comenzar desvanecimiento (Start face)
Si Activo en el inicio (Active on start) está en No, esto detonara el desvanecimiento.
Expresiones de desvanecerse
No hay expresiones para este comportamiento.
5.10 Flash
El comportamiento Flash hace que un objeto parpadee cambiando su visibilidad de forma
intermitente durante un periodo de tiempo. No tiene propiedades ni expresiones.
Solamente añadiendo Flash a un objeto no haces nada. Debes usar una acción de Flash para
hacerlo funcionar.
Condiciones de Flash
Esta haciendo flash (Is flashing)
Verdadero si el objeto está en dentro de un periodo de flash.
Acciones de Flash
Flash
Hace que el objeto parpadee cambiando su visibilidad de forma intermitente. El “On” es el tiempo
en segundos en el que el objeto está visible. El “Off” es el tiempo en segundos en el que es
invisible. El objeto alternará entre estos dos estados durante los segundos establecidos. El objeto
siempre volverá a ser visible tras la acción.
Usar Física en C2
El comportamiento Física simula las física en un plano separado. C2 mantendrá los dos “mundos”
sincronizados si uno cambia y el otro no, pero esto es impredecible. Por ejemplo, ajustar la
posición o el ángulo de un objeto hace que C2 traspase los nuevos datos del objeto
correspondiente a la simulación física, cosa que a veces no se hace de forma adecuada con las
colisiones. También pasa eso al usar otros comportamientos de C2 a la vez que el de Física.
Por lo tanto es altamente recomendado controlar los objetos de Física directamente desde el
comportamiento Física (ajustando fuerzas, impulsos, torsiones, etc.) más que intentar manipularlos
con Ajustar posición (Set position), Ajustar ángulo (Set angle), etc.
Otra consecuencia es que Física no responderá a objetos con los comportamientos Sólido (Solid) o
Saltar a través (Jumptrhu). Estos comportamientos son redundantes cuando usas Física y no
tienen efecto. A cambio, usa la propiedad Inmovible (Immovable).
Propiedades de Física
Inmovible (Immovable)
Si Sí, simula que el objeto tiene masa infinita. Su densidad se ignora y nunca se moverá.
Densidad (Density)
La densidad del objeto físico. Solo se usa si la Inmovilidad está en No. La masa del objeto se
calcula como su densidad multiplicada por el área de su máscara de colisión. El valor de la
densidad exacta usada no es importante y no tiene unidades específicas – sólo la densidad relativa
es relevante (un objeto con densidad 6 será dos veces más denso que otro con densidad 3).
Fricción (Friction)
El coeficiente de fricción del objeto físico de 0 (sin fricción) a 1 (fricción máxima). Esto ajusta
como los objetos se mueven unos contra otros cuando se tocan.
Elasticidad (Elasticity)
La elasticidad (también llamada restablecimiento o flexibilidad) del objeto físico, de 0 (inelástico, como
una piedra) a 1 (elasticidad máxima, como una pelota de goma). Esto afecta a como los objetos rebotan
cuando golpean el suelo.
Amortiguación linear (Linear damping)
La tasa a la que el objeto disminuye su velocidad cuando se mueve, desde 0 (no decelera) a 1
(deceleración máxima).
Bala (Bullet)
Habilita una mejor detección de la colisión para objetos que se mueven muy rápido. Puede afectar
al rendimiento, así que no lo habilites a menos que el objeto se mueva tan rápido que la detección
de la colisión estándar no sea fiable.
Condiciones de física
Está durmiendo (Is sleeping)
Verdadero si el objeto ha estado descansando y no ha sido movido por un tiempo, por lo que el
motor de física no lo estará procesando. Nota que los objetos pueden estar moviéndose de forma
imperceptible lo que evitará que “se queden durmiendo” aunque den la sensación de estarlo.
Estas acciones afectan al comportamiento Física en general, no solo donde se han establecido.
Elige si los tiempos de Física usan dt (delta time, para una tasa de frames independiente) o un
valor fijado (fixed). Por defecto usa un tiempo fijado para eliminar cualquier aleatoriedad que
venga de dt, asegurando que las simulaciones se reproducen exactamente todas las veces. Ajusta a
tasa de frames independiente (framerate independent) para ajustar el tiempo de a cuerdo a la tasa
de frames (framerate), que puede causar que la misma simulación de distintos resultados si se
vuelve a reproducir. Para más información ve a Delta-time and framerate independence ⇗.
Ajusta la fuerza de la gravedad que afecta a los objetos físicos. Por defecto, es una fuerza de 10
puntos descendentes.
Acciones de física: Uniones
Crear unión de distancia (Create distance joint)
Fija dos objetos físicos a una distancia fijada, como si estuviesen conectados por un polo.
Expresiones de Física
Velocidad angular (AngularVelocity)
La velocidad angular actual (tasa de rotación) del objeto físico, en grados por segundo.
Masa (Mass)
La masa del objeto físico, calculada por el motor físico. Es el área de la máscara de colisión del
objeto multiplicada por su densidad.
Velocidad X (VelocityX)
Velocidad Y (VelocityY)
La velocidad actual del objeto físico, en píxeles por segundo.
5.13 Pin
El comportamiento Pin posiciona un objeto a una distancia y ángulo relativo a otro, dando la
impresión de estar “atado” a ese objeto. Para un ejemplo, ve a Pin behavior.capx en la carpeta de
ejemplos de C2.
Añadir simplemente el comportamiento al objeto no hará nada. Debes usar alguna de las acciones
de Pin para unir un objeto a otro.
Condiciones de Pin
Está atado (Is pinned)
Verdadero si el objeto está atado a otro.
Acciones de Pin
Atar a objeto (Pin to object)
Ata un objeto a otro. La distancia y el ángulo relativo entre los objetos usados en el momento de la
acción se recordará. El parámetro Modo (Mode) elige como se mueve el objeto en relación al otro:
Posición y ángulo (Position & angle) (por defecto): mantiene ambos objetos a su distancia y
ángulo relativo. El objeto aparecerá unido y estará en el lugar mientras el otro se mueve y rota.
Sólo posición (Only position): como antes, pero el ángulo del objeto no cambia; solo mantiene la
distancia relativa.
Sólo ángulo (Only angle): el objeto solamente rota en relación con el otro, y no cambia su
posición.
Estilo cuerda (Rope style): el objeto no rota, pero se mantiene a la distancia máxima del otro.
Estilo barra (Bar style): el objeto no rota, pero se mantiene a una distancia fijada del otro objeto.
Para más ejemplos, ve a los ejemplos Pin rope style.capx y Pin chain style.capx de la carpeta de
ejemplos de C2.
Desatar (Unpin)
Desata el objeto, así que ya no será situado por el comportamiento Pin.
Expresiones de Pin
Atado UID (PinnedUID)
Da la UID del objeto al que está atado, o a -1 si no está atado. Para más información sobre UID,
ve a características comunes (common features).
Por defecto, el movimiento de la Plataforma se controla con las flechas del teclado (arriba para
saltar). Para personalizar los controles, ve al resumen de referencia de comportamientos (behavior
reference summary).
Una pregunta frecuente es como hacer que el jugador dispare a la izquierda y a la derecha, ya que
incluso cuando los espejas el jugador seguirá disparando a la derecha. Para solucionar esto usa la
condición Está espejado (Is mirrored) y si es verdadera, que dispare a la izquierda.
Propiedades de la Plataforma
Velocidad máxima (Max speed)
La velocidad máxima del suelo en píxeles por segundo.
Aceleración (Acceleration)
La aceleración del movimiento horizontal en píxeles por segundo por segundo.
Deceleración (Deceleration)
La deceleración del movimiento horizontal en píxeles por segundo por segundo. Cuando se mueve
en la dirección contraria al movimiento aceleración y deceleración se combinan.
Acciones de Plataforma
Caer a través de (Fall through)
Si el jugador está sobre una plataforma con Saltar a través, esta acción lo hará caer a través de ella.
Es útil para añadir otro control, la flecha hacia abajo, para bajar de las plataformas.
Expresiones de Plataforma
Aceleración (Acceleration)
Deceleración (Deceleration)
Gravedad (Gravity)
Fuerza del salto (JumpStrength)
Velocidad máxima de caída (MaxFallSpeed)
Velocidad máxima (MaxSpeed)
Da las propiedades correspondientes. Para más información, ver las propiedades de Plataforma.
Velocidad (Speed)
Da la velocidad total en píxeles por segundo.
VectorX
VectorY
Da los componentes de movimiento de X e Y, en píxeles por segundo.
5.15 Rotar (Rotate)
El comportamiento Rotar simplemente hace que el objeto gire.
Propiedades de Rotar
Velocidad (Speed)
La tasa de rotación, en grados por segundo. Usa un valor positivo para rotación en el sentido de las
agujas del reloj y negativo para el sentido contrario.
Aceleración (Acceleratio)
La tasa a la que cambia la velocidad de rotación, en grados por segundo por segundo. Usa un valor
positivo para acelerar en el sentido de las agujas del reloj y negativo para el sentido contrario.
Condiciones de Rotar
El comportamiento Rotar no tiene condiciones.
Acciones de Rotar
Ajustar aceleración (Set acceleration)
Ajustar velocidad (Set speed)
Ajusta las propiedades correspondientes. Mira las propiedades de Rotar.
Expresiones de Rotar
Aceleración (Acceleration)
Da la propiedad Aceleración correspondiente.
Velocidad (Speed)
Da la velocidad de rotación, en grados por segundo. Un valor positivo indica rotación en el sentido
de las agujas del reloj y negativo en el sentido contrario.
5. 16 Desplazarse a (Scroll to)
El comportamiento Desplazarse a simplemente centra la vista en el objeto con el
comportamiento. Es un acceso directo para la acción del sistema Desplazarse al objeto (Scroll to
object). Además, da la opción de Agitar la pantalla, y si varios objetos tienen el comportamiento
es centrará la vista entre todos ellos.
Para desplazarte, el tamaño del plano debe ser mayor que el de la ventana, o la propiedad de
desplazamiento ilimitado (Unbounded scrolling) seleccionada. De otra manera no habría donde
desplazarse y el comportamiento no tendría efecto.
Acciones de Desplazarse a
Agitar (Shake)
Agitar la pantalla durante un periodo de tiempo, compensando la posición de la pantalla
aleatoriamente cada vez. La Magnitud (Magnitude) es la distancia máxima en píxeles de la
posición del desplazamiento hasta que se compensa vista. La Duración (Duration) es cuánto
durará el movimiento en segundos. En el modo Reducir magnitud (Reducing magnitude), la
Magnitud se reducirá gradualmente hasta cero una vez llegados al fin el movimiento. En el modo
Magnitud Constante (Constant magnitude) la Magnitud permanecerá estable hasta el final del
movimiento y parará de forma abrupta.
Propiedades de Seno
Activo desde el inicio (Active on start)
Si No, el comportamiento no tendrá efecto hasta que se use la acción Activar (Set active).
Movimiento (Movement)
El comportamiento tiene 8 modos diferentes:
Horizontal mueve el objeto de izquierda a derecha en el eje X.
Vertical mueve el objeto arriba o abajo en el eje Y.
Tamaño (Size) hace que el objeto crezca o se reduzca.
Amplitud (Width) hace el objeto más ancho o más estrecho.
Altura (Height) hace el objeto más alto o más bajo.
Ángulo (Angle) rota el objeto en el sentido de las agujas del reloj o al contrario.
Opacidad (Opacity) cambia la opacidad del objeto. Va de 0 a 100.
Sólo valor (Value only) no modifica el objeto. Simplemente almacena los valores cambiantes a los
que acceder con la expresión Valor (Value). Puede ser útil para crear efectos personalizados o
modificar cualquier propiedad del objeto o comportamiento basándote en el comportamiento
Seno.
Onda (Wave)
Esta función se usa para calcular el movimiento. Para verlo ve a este diagrama en Wikipedia (this
Wikipedia diagram ⇗).
Seno (Sine) - una suave oscilación del movimiento basada en la onda sinusoidal.
Triángulo (Triangle) - un movimiento linear de adelante a atrás.
Diente de sierra (Sawtooth) - movimiento linear con un salto al volver al inicio.
Diente de sierra invertido (Reverse Sawtooth) - lo anterior invertido.
Cuadrado (Square) - alternar entre los dos valores máximos.
Periodo (Period)
La duración, en segundos, de un ciclo completo que se repite.
Magnitud (Magnitude)
El cambio máximo de la posición, tamaño o ángulo del objeto. Está en píxeles para posición y
para el tamaño y en grados para el ángulo.
Condiciones de Seno
Cotejar magnitud (Compare magnitude)
Coteja la magnitud actual del movimiento.
Acciones de Seno
Activar (Set active)
Habilita o deshabilita el comportamiento. Cuando está deshabilitado el comportamiento no afecta
al objeto.
Expresiones de Seno
Posición de Ciclo (CyclePosition)
Da el valor de 0 a 1 que representa el progreso a través del ciclo actual. Por ejemplo, será 0,5
cuando el ciclo esté a la mitad.
Magnitud (Magnitude)
Da la magnitud del ciclo actual. Está en píxeles cuando modifica la posición o el tamaño y en
grados cuando modifica el ángulo.
Periodo (Period)
Da el periodo de un único ciclo completo en segundos.
Valor (Value)
Da el valos cambiante u oscilante. Se alternará como valores positivos y negativos centrados en 0.
Es útil para crear efectos personalizados cuando está en modo Sólo valor (Only value).
Es sólo por mover (o rehabilitar) Sólidos, o usar Ajustar posición (Set position), que el objeto
pueda quedar atrapado. Si ninguno de los Sólidos de tu juego se mueven y no “teletransportas” al
jugador usando Ajustar posición (Set position), será prácticamente imposible que el jugador se
quede atrapado.
Acciones de Sólido
Habilitar (Set enabled)
Habilita o Deshabilita Sólido de ese objeto. Si lo deshabilitas, el objeto no actuará como si fuera
un sólido, y los objetos podrán pasar a través de él. Ten cuidado de no atrapar objetos habilitando
el sólido otra vez cuando se están solapando, mira la sección anterior.
No todos los objetos usan todas las características comunes, algunos usan sólo unos pocos de los listados.
Esta lista es una referencia de las características que puedes encontrar en C2, sin describirse ningún
plugin en particular.
Ángulo (Angle)
Nota que los ángulos en C2 empiezan en 0 grados mirando hacia la derecha y avanzan en el sentido de las
agujas del reloj.
Apariencia (Appearance)
Cotejar opacidad (Compare opacity)
Coteja la opacidad del objeto, de 0 (transparente) a 100 (opaco).
La variable de ejemplo booleana esta activa (Is boolean instance variable set)
Comprueba si una variable de ejemplo booleana es verdadera. Invierte la condición para comprobar si es
falsa.
Miscelanea (Misc)
Creado (On created)
Destruido (On destroyed)
Detonados para cada ejemplo que se crea o se destruye durante el juego. Por ejemplo, un efecto de
partículas se puede activar siempre que un objeto se crea, y una explosión siempre que se destruye. Estas
condiciones son análogas a los constructores y los destructores en un lenguaje de programación
tradicional (comandos que funcionan en la creación y destrucción de objetos). Ten cuidado de no crear un
objeto del mismo tipo en un evento Creado (On created) (On Sprite2 created: create Sprite2) ya que
creará un bucle infinito y el juego se enganchará.
Recoger (Pick)
Recoger por ID única (Pick by unique ID) (UID)
Recoge el ejemplo que coincide con el número de ID dado.
Cotejar X (Compare X)
Cotejar Y (Compare Y)
Coteja la posición del objeto en el plano, en píxeles. Nota que los objetos se pueden posicionar entre
píxeles (5,5 o 10,33333). Por ello es una mala idea confiar que un objeto este en una posición exacta.
Orden Z (Z Order)
Está en la capa (Is on layer)
Recoge todos los ejemplos de una capa dada, especificados por su nombre o por su índice basado en cero.
Ángulo (Angle)
Nota que los ángulos en C2 empiezan en 0 grados mirando hacia la derecha y avanzan en el sentido de las
agujas del reloj.
Apariencia (Appearance)
No todos los objetos soportan las acciones en relación con los efectos. Para más información ve a Efectos.
Ajustar (Set)
Ajusta un número o texto a la variable de ejemplo.
Miscelanea (Misc)
Destruir (Destroy)
Elimina el objeto del juego.
Ajustar X (Set X)
Ajustar Y (Set Y)
Ajustar posición (Set position)
Ajusta la posición del objeto en el plano, en píxeles. El origen (0,0) es la parte de arriba a la derecha del
plano y el eje Y se incrementa hacia abajo.
Orden Z (Z Order)
Mover abajo (Move to bottom)
Mover arriba (Move to top)
Posiciona el objeto en la parte de arriba o de abajo de la capa actual.
Ángulo (Angle)
Ángulo (Angle)
El ángulo actual del objeto en grados. 0 grados comienza a la derecha y se incrementa en el sentido de las
agujas del reloj.
Apariencia (Appearance)
Opacidad (Opacity)
La opacidad actual del objeto (semitransparencia), de 0 (transparente) a 100 (opaco).
Miscelanea (Misc)
Conteo (Count)
El número de ejemplos de ese tipo de objeto
UID
Da la ID única del ejemplo (UID). Ver características comunes.
X
Y
Da la posición del objeto en el plano, en píxeles. El origen (0,0) es la parte de arriba a la derecha del
plano y el eje Y se incrementa hacia abajo.
Tiempo (Time)
dt
Da el tiempo delta (delta-time) de acuerdo a la propia escala de tiempo del objeto. Ve a Delta-time and
framerate independence ⇗ para más información.
Orden Z (Z Order)
Nombre de capa (LayerName)
El nombre de la capa en la que el objeto está actualmente.
Índice Z (ZIndex)
Da el índice basado en 0 del orden Z de ese ejemplo dentro de la capa actual. 0 es el ejemplo de abajo,
incrementándose hasta el ejemplo de arriba.
6.2 AJAX
El plugin AJAX permite que se soliciten páginas web durante el juego. Su nombre se deriva de
“Asynchronous JavaScript and XML” una técnica usual en la mayoría de desarrolladores web. El objeto
AJAX se diseña para el uso de desarrolladores web ya familiarizados con la técnica - esta referencia no
describirá los principios de AJAX, solo mostrará cómo usarlo en C2 con el objeto AJAX. Normalmente,
usar el objeto AJAX también requiere scripts del lado del servidor personalizados (custom server-side
scripting) que están fuera del alcance de este manual.
Como hacer una solicitud
El uso básico del objeto AJAX consiste en:
1. Uso de la acción Solicitud (Request) para cargar la URL.
2. Un momento después de que la solicitud se complete, se detona Completado (On completed).
3. La expresión Último Dato (LastData) se puede usar para acceder al contenido de la respuesta.
La expresión del sistema tokenat puede ser útil para dividir respuestas simples. También puedes cargar
Último dato (LastData) en el plugin XML para leerlo en un documento XML.
Etiquetas (Tags)
Se puede crear una etiqueta diferente para cada solicitud. Es una secuencia simple que se usa para separar
solicitudes distintas. Por ejemplo, en el arranque quizás solicites ambos foo.php con la etiqueta “foo” y
bar.php con la etiqueta “bar”. Cuando se completa la primera solicitud, se detona “foo” completado (On
“foo” completed); cuando la segunda se completa, se detona “bar” completado (On “bar” completed).
Las solicitudes se pueden completar en distinto orden al que se realizaron, así que sin etiquetas sería
imposible decir cual se ha completado.
Además, cuando haces vista previa en C2 el juego funciona en localhost. Esto cuenta como un dominio
diferente para el resto de internet así que las solicitudes de AJAX a cualquier página fallarán, a menos
que el servidor permita específicamente solicitudes entre dominios.
Si quieres que las solicitudes de AJAX funcionen para cualquier dominio, o en la vista previa, puedes
configurarlo para enviar el siguiente encabezado HTTP:
Access-Control-Allow-Origin: *
Esto habilitará las solicitudes AJAX para cualquier dominio, pero debes tener en cuenta las implicaciones
de ello en tema de seguridad. Para más información ve a HTTP access control on MDN ⇗.
Condiciones de AJAX
Completado (On completed)
Detonado cuando la solicitud con la misma etiqueta se ha completado satisfactoriamente. La expresión
Último dato (LastData) contiene la respuesta.
Solicitud (Request)
Envía OBETENER respuesta para recuperar los contenidos de una URL. Se da una etiqueta que coincida
con los detonadores Completado (On completed), En progreso (On progress) y Error (On error).
Expresiones AJAX
Último Dato (LastData)
El contenido de la última respuesta. Se activa en el detonador Completado (On completed). Si se vuleve a
usar en un evento distinto, contendrá la respuesta de la última solicitud completada. La expresión del
sistema tokenat pude ser útil para dividir en respuestas simples.
Progreso (Progress)
Da el progreso de la solicitud AJAX en un evento En progreso (On progress). El progreso se representa
como un número de 0 a 1 (0,5 para la mitad completada).
6.3 appMobi
El plugin appMobi proporciona integración con el servicio de publicación móvil de appMobi ⇗. Para
más información ve al tutorial How to export to appMobi ⇗.
Condiciones de appMobi
Está en AppMobi (Is in AppMobi)
Verdadero si el juego está funcionando dentro de appMobi. Será falso si el juego está funcionando en otro
lugar, como en la web abierta (open web).
Acciones appMobi
Registrar evento (Log event)
Registra un evento con nombre para el servicio analítico de appMobi. Los parámetros se pueden
ser proporcionados en formato URL (foo=bar&baz=ban).
Orientación (Orientation)
La orientación actual del dispositivo, dado en grados (0, -90, 90 o 180).
6.4 Matriz (Array)
El objeto Matriz almacena listas de valores (cifras o texto). Es análogo a las matrices en los lenguajes de
programación tradicionales.
Cada elemento de la matriz puede almacenar una cifra o texto. La cifra o el texto se pueden cambiar con
las acciones de Ajuste (Set) y se puede acceder a ellas con la expresión En (At). Por ejemplo, una matriz
de 10 x 10 x 1 es igual a una cuadrícula 2D con un total de 100 valores. Se puede almacenar un número
en la posición (3,7) con la acción Ajustar en XY (Set at XY), y se puede acceder mediante Matriz.En(3,7)
(Array.At(3,7)). Nota que, al igual que el resto de C2, los índices comienzan en 0, así que el primer
elemento será 0. En este ejemplo, Matriz.En(0,0) (Array.At(0,0)) dará el primer número de la cuadrícula.
La matriz puede almacenar tanto cifras como texto con cualquiera de sus elementos. Incluso se pueden
mezclar números y letras dentro de ella.
Las matrices no cambian su tamaño automáticamente. Si accedes a un valor fuera de la matriz, te dará el
número 0. Si ajustas un valor fuera de ella, no tendrá efecto.
Manipular matrices
Una matriz de una dimensión, de tamaño N x 1 x1, funciona como una lista simple de valores N. Las
acciones de la categoría Manipular (como Push (Insertar), Pop (Quitar)) permiten que las matrices de
una dimensión se usen como otras estructuras de datos. (Estas acciones funcionan con matrices
multidimensionales pero están hechas específicamente para las de una sola).
Por ejemplo, el siguiente esquema usa una fila (último en entrar, primero en salir o “LIFO”):
Añade nuevos ítems con Insertar al frente (Push front).
Recupera el siguiente valor con Matriz.AlFinal (Array.Back).
Elimina el valor recuperado con Quitar al final (Pop back).
El siguiente esquema usa una pila (primero en entrar, primero en salir o “FIFO”)
Añade nuevos ítems con Insertar al final (Push back).
Recupera el siguiente valor con Matriz.AlFinal (Array.Back).
Elimina el valor recuperado con Quitar al final (Pop back).
Propiedades de Matriz
Amplitud (dimension X) (Width (X dimension))
Altura (dimension Y) (Height (Y dimension))
Profundidad (dimensión Z) (Depth (Z dimension))
El tamaño de la matriz. Si quieres que sea de 1 dimensión (una lista de valores) usa A x 1 x 1. Si quieres
que sea de 2 (una cuadrícula de valores) usa A x B x 1.
Condiciones de Matriz
Cotejar en X (Compare at X)
Cotejar en XY (Compare at XY)
Cotejar en XYZ (Compare at XYZ)
Coteja un valor en una posición de la matriz. Los índices están basados en 0. Todos los valores fuera de la
matriz dan 0. Si se usa Cotejar en X (Compare at X) los índices de Y y Z serán 0. Si se usa Cotejar en XY
(Compare at XY) el índice Z será 0.
Acciones de Matriz
Borrar (Clear)
Pone a 0 todos los elementos de la matriz.
Ajustar en X (Set at X)
Ajustar en XY (Set at XY)
Ajustar en XYZ (Set at XYZ)
Escribe un valor en una posición en la matriz. Los índices están basados en 0. Escribir valores fuera de la
matriz no tendrá efecto. Si se usa Ajustar en X (Set at X) los índices de Y y Z serán 0. Si se usa Ajustar en
XY (Set at XY) el índice Z será 0.
Descargar (Download)
Abre una nueva pestaña en el navegador con un enlace de descarga del contenido de la matriz como un
archivo en formato JSON. Se usa para desarrollo offline (como crear editores de nivel). Ya que funciona
abriendo una pestaña nueva, puede no aparecer si tienes activado el bloqueo de ventanas emergentes -
asegúrate de que el localhost permite estas ventanas para que la acción funcione.
Cargar (Load)
Carga los contenidos de la matriz de una secuencia en formato JSON. Debe recuperarse de la acción
Descargar (Download) o de la expresión AsJSON. También se puede recuperar del objeto AJAX.
Insertar (Push)
Añade un nuevo valor al principio (al frente) o al final de un eje. Ya que la matriz es un cubo de valores
en 3D, técnicamente esto insertará un nuevo plano de elementos 2D con los valores dados. Pero en
matrices de 1 dimensión esto añade un único elemento, y en una de 2 dimensiones insertará una fila de
elementos.
Quitar (Pop)
Borra el valor al principio (al frente) o al final de un eje. Ya que la matriz es un cubo de valores en 3D,
técnicamente esto quitará un nuevo plano de elementos 2D con los valores dados. Pero en matrices de 1
dimensión esto quita un único elemento, y en una de 2 dimensiones quitará una fila de elementos.
Introducir (Insert)
Inserta un nuevo valor en un índice específico de un eje. Ya que la matriz es un cubo de valores en 3D,
técnicamente esto insertará un nuevo plano de elementos 2D con los valores dados. Pero en matrices de 1
dimensión esto añade un único elemento, y en una de 2 dimensiones insertará una fila de elementos.
Borrar (Delete)
Borra el valor en un índice específico de un eje. Ya que la matriz es un cubo de valores en 3D,
técnicamente esto quitará un nuevo plano de elementos 2D con los valores dados. Pero en matrices de 1
dimensión esto quita un único elemento, y en una de 2 dimensiones quitará una fila de elementos.
Invertir (Reverse)
Invierte el orden de elementos en un eje. Nota que en matrices multidimensionales solo invierte un eje.
Por ejemplo, en el eje X de una matriz 2D se invertirá el orden de las columnas guardando el contenido de
cada una de ellas.
Sort (Ordenar)
Ordena el orden de los elementos de un eje en sentido ascendente. Nota que en matrices
multidimensionales se ordena desde el primer elemento del eje. Por ejemplo, en el eje X de una matriz 2D
se clasificará el orden de columnas basándose en los elementos de la coordenada Y, guardando el
contenido de cada columna.
Expresiones de Matriz
En (X) (At(X))
En (X, Y) (At(X, Y))
En (X, Y, Z) (At(X, Y, Z))
Recupera el valor de una posición en la matriz. Los índices están basados en 0. Los valores de fuera de la
matriz serán 0. Si no se dan los índices Y o Z se usará el 0.
CurX
CurY
CurZ
El índice basado en 0 actual de cada dimensión en un bucle Para cada elemento (For each element).
Valor actual (CurValue)
El valor actual en el bucle Para cada elemento (For each element). Esto es un acceso directo para
Array.At(Array.CurX, Array.CurY, Array.CurZ).
Amplitud (Width)
Altura (Height)
Profundidad (Depth)
Da el tamaño de cada dimensión de la matriz.
Al frente (Front)
Acceso directo para acceder al primer valor de la matriz, que es lo mismo que At(0, 0, 0).
Al final (Back)
Acceso directo para acceder al último valor del eje X, que es lo mismo que At(Self.Width - 1, 0, 0).
Índice de (IndexOf)
Último Índice de (LastIndexOf)
Busca en el eje X de la matriz un valor dado y da el índice en el que se encuentra, o -1 si no se encuentra.
IndexOf encuentra en primer elemento que coincide y LastIndexOf en último que coincide.
AsJSON
Da el contenido de la matriz como una secuencia en formato JSON. Esto puede cargarse luego en la
matriz con la acción Cargar (Load).
6.5 Audio
El objeto Audio reproduce archives de audio que has importado al proyecto. Debe insertarse a todos los
proyectos que necesiten reproducción de audio. Se importan haciendo clic con el botón derecho en las
carpetas de Sonido o Música en la Barra del Proyecto y seleccionando Importar… (Import…), lo que
hace que aparezca el Diálogo de importar audio. Ve a las secciones relacionadas con la importación de
archivos de audio para más información.
Actualmente, el soporte de audio en los navegadores es irregular. No todas las características funcionaran
en todos los navegadores. Por ejemplo, ajustar la tasa de playback no funcionará en muchos dispositivos
móviles. Esto es un problema del navegador y no del objeto Audio de C2. Se recomienda probar tu
proyecto en varios navegadores para identificar que características funcionan en cada navegador. Sin
embargo, este área está en pleno desarrollo para futuros navegadores y el problema podría resolverse
pronto.
Puedes usar también la acción Precargar (Preload) para descargar antes el audio sin necesidad de
reproducirlo en ese momento. Esto se puede hacer en el Inicio del Plano (Start of layout) para empezar a
descargar unos pocos efectos de sonido importantes para que no haya retraso en la primera reproducción.
Sin embargo esto es opcional (todos los juegos funcionan sin Precargado) y no debe usarse demasiado
pues puede ralentizar la descarga del resto y encontrarte con un tiempo sin ningún efecto de sonido.
Etiquetas de Audio
Algunas acciones afectan a parámetros de audio como el volumen al reproducirse. Sin embargo, puede
haber varios sonidos sonando a la vez. Para identificar a qué sonido quieres que afecte, se reproducen con
una etiqueta asociada. Es una secuencia que identifica al sonido. Por ejemplo, el sonido del arma del
jugador se reproducirá con la etiqueta “ArmaJugador” (“PlayerWeapon”) y la de su enemigo con “Arma
Enemigo” (“EnemyWeapon”). Entonces, la etiqueta puede usarse en la acción Ajustar Volumen (Set
Volume) para especificar a qué sonido quieres ajustar el volumen. Las etiquetas no diferencian
mayúsculas y minúsculas.
Varios sonidos pueden reproducirse a la vez usando la misma etiqueta. En este caso, las acciones como
Volumen (Set Volume) afectaran a todos los sonidos con esa etiqueta.
Una etiqueta con una secuencia vacía (“”) tiene un significado especial: se refiere sólo al último sonido
reproducido con la acción Reproducir (Play). Es útil para reproducir un sonido inmediatamente después
de ajustarlo.
Propiedades de audio
Escala de tiempo de audio (Timescale audio)
La escala de tiempo puede usarse para acelerar o ralentizar la reproducción, para algunos efectos como
cámara lenta. Ve a Delta-time and framerate independence ⇗ para más información. Esta propiedad
controla si la escala de tiempo afecta al audio.
Off reproducirá el audio sin tener en cuenta la escala de tiempo.
On (sounds only) reproducirá el audio de la carpeta Sonidos a una tasa distinta dependiendo de la escala
de tiempo, pero lo hará de la carpeta de Música sin tenerla en cuenta.
On (sounds and music) reproducirá el audio de ambas carpetas a una tasa distinta dependiendo de la
escala de tiempo.
Algunos navegadores pueden no soportar las escalas de tiempo de audio; prueba en varios navegadores.
Además, diferentes navegadores pueden usar distintos algoritmos de tiempo de audio. También puede
alterar el tono, tomando tonos más bajos para escalas más bajas, lo que puede sonar como una cinta de
casete a velocidades distintas; también puede cambiar la velocidad sin afectar el tono. Prueba en varios
navegadores para establecer el efecto deseado.
Condiciones de Audio
Finalizado (On ended)
Detonado cuando un sonido con cierta etiqueta finaliza su reproducción. No se detona para sonidos en
bucle.
Precargas completas (Preloads complete)
Ya que el audio se descarga de acuerdo a la demanda, los archivos sólo se descargan cuando se usan las
acciones Precargar (Preload) o Reproducir (Play). Esta condición será verdadera cuando todos los
audios hayan descargado lo suficiente para reproducirse hasta el final. Se puede usar para precargar
ciertos sonidos en el plano inicial e ir al siguiente cuando hayan terminado, eliminando los retrasos de la
primera reproducción.
Acciones de Audio
Reproducir (Play)
Reproducir (por nombre) (Play (by name))
Reproduce un archivo de audio con cierta etiqueta. La segunda acción te da la oportunidad de usar una
expresión para el nombre del archivo de audio. Se pude establecer que se haga una reproducción en bucle.
Precargar (Preload)
Precargar (por nombre) (Preload (by name))
Empieza a descargar el archivo de audio par que no haya retrasos al reproducirlo. Mira la sección El
Audio se descarga según demanda para más información. No es necesario precargar los archivos para que
se reproduzcan - sólo sirve para reducir la posibilidad de retraso en la primera reproducción. Sólo se
deben precargar dos o tres sonidos de una vez.
Parar (Stop)
Para un sonido reproduciéndose inmediatamente.
Expresiones de Audio
El objeto Audio no tiene expresiones.
6.6 Browser
El objeto Navegador accede a las características del navegador web que ejecuta el juego HTML5.
También cambia el modo a pantalla completa, detecta si el juego tiene actualizaciones y determina si la
página es visible.
A veces, las limitaciones de seguridad evitan acciones de Navegador. Por ejemplo, la acción de la ventana
Cerrar (Close) sólo se puede usar cuando la ventana se crea con javascript window.open.
Condiciones de Navegador
Cookies habilitadas (Cookies enabled)
Verdadero si el usuario tiene habilitadas las cookies del navegador. (Normalmente es raro que estén
deshabilitadas ya que muchas páginas web funcionan con ellas).
Acciones de Navegador
Ir atrás (Go back)
Ir adelante (Go forward)
Se mueve por el historial de navegación como si clicaras en los botones Atrás y Adelante del navegador.
Recargar (Reload)
Fuerza que la página se recargue. El juego se reinicia.
Alerta (Alert)
Hace que surja un mensaje de “alerta” en un cuadro.
Desenfocar (Blur)
Desenfoca la ventana del navegador.
Cerrar (Close)
Cierra la ventana actual si el script da permiso para ello.
Enfocar (Focus)
Enfoca la ventana del navegador.
Solicitar pantalla completa (Request fullscreen)
Solicita que el navegador entre en el modo pantalla completa. Nota que el navegador puede ignorar la
solicitud a menos que la acción la haga el usuario con un clic del ratón, presionando una tecla o tocando
algo en la pantalla. Hay tres modos de pantalla completa:
Centro (Center) - centra la pantalla completa en la ventana del juego.
Estirar (Stretch) (crop) - extiende la ventana del juego para que ocupe la ventana completa.
Estirar (Stretch) (scale) - escala (hace zoom) en la ventana del juego para que ocupe la ventana completa.
Las dos últimas opciones corresponden a la propiedad del proyecto Pantalla completa en el navegador
(Fullscreen in browser). Para más información ver supporting multiple screen sizes ⇗.
Expresiones de Navegador
Idioma (Language)
Da el idioma configurado en el navegador. Ejemplo, en-US.
Nombre (Name)
Da el nombre que el navegador se da a sí mismo. Este puede ser inexacto por razones de compatibilidad
anteriores, como Google Chrome que se llama Netscape.
Plataforma (Platform)
Da la plataforma en la que el navegador se ejecuta, como Win32 para Windows.
Producto (Product)
Da el nombre del producto del navegador. Este puede ser inexacto por razones de compatibilidad
anteriores, como Google Chrome, cuyo producto se llama Gecko.
Vendedor (Vendor)
Da el vendedor del navegador, como Google Inc. para Google Chrome.
Versión (Version)
Da la versión actual del navegador como una secuencia. Puede ser simplemente un subtexto en la
secuencia del agente de usuario.
Título (Title)
El título del documento HTML actual.
Dominio (Domain)
El dominio actual, como scirra.com.
Almohadilla (Hash)
La secuencia tras la almohadilla al final de la URL, incluyendo la almohadilla. Por ejemplo, si la URL es
http://scirra.com/mygame/index.html#teapot, esto da #teapot.
Referencia (Referrer)
Da la página anterior que enlaza a la actual, si la hay.
URL
Da la URL actual completa en la barra de direcciones del navegador, incluyendo el protocolo.
6.7 Botón (Button)
El objeto Botón crea un botón que el usuario puede clicar para realizar una acción.
Los controles de formulario son elementos HTML que flotan sobre el lienzo del juego en la
página HTML. Por lo tanto, no se puede mostrar nada por encima de un control, aparte de otros
controles.
Los controles se posicionan ellos solos de acuerdo al paralaje de la capa, su escala y otros. Sin
embargo, no están realmente en el juego (ya que flotan encima) por lo que se recomiendo evitar
el uso de desplazamientos, paralaje y escalas, de otra forma no quedaría natural.
Estilo de Botón
Los botones se pueden personalizar de un gran número de formas usando CSS (Hojas de estilo
en cascada). En vez de tener muchas acciones para ajustar todas las posibles propiedades, tiene
una sola acción Ajustar estilo CSS (Set CSS style). CSS ahorra trabajo, es sencillo para usar con
propiedades simples. Aquí algunos ejemplos:
Hacer el texto rojo (Make the text red): Ajusta el "color" a "rojo".
Hacer el fondo amarillo (Make the background yellow): Ajusta el "color del fondo" a "amarillo".
Hacer el borde gris claro y fino (Make the border a thick light grey: Ajusta el "borde" a "3px
solid #AAAAAA".
Hacer la letra más grande (Make the font bigger): Ajusta el "tamaño de letra" a "2em".
Hacer un borde rojo y discontinuo (Make a dashed red border): Ajusta el "borde" a "2px dashed
red".
Propiedades de Botón
Texto (Text)
El texto que aparecerá en el botón.
Habilitado (Enabled)
Si el botón está habilitado en el inicio. Si No, el botón estará deshabilitado y no podrá pulsarse.
ID (Opcional)
Una id adicional para el elemento en el DOM (Modelo de Objetos del Documento). Puede ser útil para
acceder al valor del elemento desde scripts externos, o dar estilo con CSS en la página HTML.
Condiciones de Botón
Clicado (on clicked)
Detonado cuando el usuario presiona el botón, con el teclado, ratón o tocándolo.
Acciones de Botón
Ajustar estilo CSS (Set CSS style)
Ajusta un estilo CSS (Hojas de estilo en cascada) en el elemento Botón. Para más información ver la
sección anterior Estilo de Botón. Nota que si la propiedad Tamaño de letra automático (Auto font size)
está activada, cualquier cambio a la propiedad tamaño de letra se sobrescribirá.
Expresiones de Botón
El objeto Botón no tiene expresiones.
Los nombres clave en Diccionario distinguen siempre entre mayúsculas y minúsculas. Esto significa que
“SCORE” se considera diferente a “score”.
Ejemplo
Suponemos que el número 100 se almacena con la clave “puntuación” (“score”) y la secuencia “Joe” se
almacena con la clave “nombre” (“name”). El resultado del almacenaje sería así:
“name”: “Joe”
“score”: 100
Reuperar la clave “nombre” con Dictionary.Get("name") dará “Joe”, y recuperar “puntuación” dará 100.
Al ajustar “puntuación” a 50 cambiará el valor de la clave.
Esto es como almacenar datos en variables de ejemplo o en variables de evento, pero ya que puedes usar
secuencias como claves puedes almacenar cualquier número de valores.
Condiciones de Diccionario
Cotejar valor (Compare value)
Coteja el valor almacenado para una clave.
Borrar (Clear)
Elimina todas las claves almacenadas, haciendo que el objeto quede vacío.
Expresiones de Diccionario
Conseguir (Get)
Da el valor almacenado de una clave, Dictionary.Get("score"). Si la clave no existe da 0.
AsJSON
Da los contenidos del objeto Diccionario en formato JSON. Puede ser cargado más tarde con la acción
Cargar (Load), enviada a un servidor mediante AJAX, guardada en un disco, etc.
6.9 Facebook
El objeto Facebook (FB de ahora en adelante) te permite integrar tu juego con FB. El tutorial How to
make a Facebook game ⇗ trata sobre como publicar juegos en FB y tiene una guía paso a paso para usar
el objeto Facebook. Esta sección del manual simplemente describe sus características.
El objeto FB se pude usar en cualquier juego, no solo para juegos de FB. Puedes tener tu juego
funcionando en tu propio servidor. El objeto te permitirá conectar con la cuenta de FB del usuario incluso
cuando este esté jugando en tu web. Sin embargo, es necesario conectar la aplicación con FB para guardar
la ID de la aplicación. Se pueden conectar a FB mediante Facebook Developers ⇗.
El objeto FB hace solicitudes asíncronas. Esto significa que el juego sigue funcionando mientras
operaciones que pueden durar varios segundos (como enviar una puntuación) se completan. Por ello, el
objeto funciona con una acción que activa una tarea (como Publicar puntuación (Publish scoore)), que, al
completarse, detona una condición (como Puntuación enviada (On score submitted)). Esto tardará unos
segundos mientras el juego sigue funcionando, en vez de congelarlo y esperar a que se completen las
acciones. Como muchas solicitudes asíncronas, las acciones pueden completarse en un orden distinto del
que fueron hechas.
Propiedades de Facebook
ID de la aplicación (App ID)
La ID dada a la aplicación en la sección de Programadores de FB (FB Developers).
Condiciones de Facebook
Está preparado (Is ready)
Verdadero si el objeto FB está preparado para usarse. Cuando es Falso es que todavía está cargando los
scripts necesarios.
Acciones de Facebook
Iniciar sesión (Log in)
Abre una ventana emergente pidiendo al usuario que se registre. Esto sólo se activa por voluntad del
usuario, como presionar una tecla, hacer clic o tocar la pantalla. El usuario puede cancelar el registro por
lo que esto no está garantizado su éxito. Se pueden pedir dos permisos: publicar automáticamente
(permitiendo que las publicaciones automáticas en el muro del usuario) y publicar puntuaciones
(permitiendo el uso del sistema de puntuaciones altas). Puedes pedir al usuario escribir en el muro
mediante un diálogo sin tener que pedir permiso cada vez - hacerlo siempre automáticamente. No pidas
permisos que tu aplicación no necesite.
Solicitar la puntuación más alta del usuario (Request user top score)
Solicita la puntuación más alta del jugador hasta el momento en el juego. Requiere que el usuario haya
aceptado Publicar puntuaciones (Publish scores). Cuando se completa la acción se detona Puntuación
más alta del usuario disponible (On user top score available).
Expresiones de Facebook
Nombre (FirstName)
El nombre actual del usuario. Sólo se ajusta tras la detonación de Nombre disponible (On name
available).
Apellidos (LastName)
Los apellidos actuales del usuario. Sólo se ajusta tras la detonación de Nombre disponible (On name
available).
ID de usuario (UserID)
La ID actual del usuario, que se usa para distinguir diferentes usuarios con el mismo nombre.
Sólo se ajusta después de que el usuario se haya registrado.
Puntuación (Score)
La puntuación más alta actual en el evento Puntuación Alta (On hi-score) o la puntuación actual del
usuario en Puntuación más alta del usuario disponible (On user top score available).
Para evitar que las páginas web hagan un seguimiento a través de tus controladores disponibles, la
mayoría de los navegadores que los soportan dirán que no hay controladores conectados hasta que se
pulse un botón de uno de los dispositivos.
El objeto Mando también asignará otros botones al diseño del controlador de la XBox 360 para asegurar
que el mismo botón detone siempre el mismo evento. Sin embargo no es práctico ajustar esto para cada
dispositivo, así que algunos botones pueden detonar distintos eventos. Por ello es por lo que se
recomiendan los controladores de la XBox 360. Si estás interesado en usar otros asegúrate de probarlos.
Las entradas en bruto se obtienen, evitando la asignación de teclas, usando la expresión En bruto (Raw).
Varios Mandos
Varios Mandos se pueden conectar a un solo ordenador. Para diferenciar entre ellos, la mayoría de las
acciones, condiciones y expresiones de este objeto toman unos parámetros. Es un índice basado en 0 del
controlador. Por ejemplo, 0 identifica al primer controlador, 1 al segundo y así sucesivamente. Esto te
permite jugar en multijugador.
Propiedades de Mando
Zona sin cobertura analógica (Analog deadzone)
Los dispositivos con joysticks analógicos son extremadamente sensibles. Esto te permite controlar los
juegos de forma precisa, pero el joystick registrará también un leve movimiento cuando no se toque. Si no
se ignoraran ciertos valores, el jugador controlado por el usuario se movería de forma incorrecta cuando
este no tocara el joystick. Para resolver el problema los valores por debajo de cierto límite se ignoran. El
movimiento del joystick tiene un rango de -100 a 100 en cada eje, y si la magnitud está por debajo del
valor Zona sin cobertura analógica (Analog deadzone) dará 0. Por ejemplo, por defecto es 25, así que
valores desde -25 a 25 contarán como 0. Se recomienda este valor para asegurar que no haya
movimientos no intencionados.
Condiciones de Mando
Cotejar ejes (Compare axis)
Coteja la posición de un joystick analógico en un mando específico. Los valores dentro de la Zona sin
cobertura analógica (Analog deadzone) dan 0. El rango de valores de los ejes es de -100 a 100.
Acciones de Mando
El objeto Mando no tiene acciones.
Expresiones de Mando
Eje (Mando, Índice) (Axis(Gamepad, Index))
Recupera la posición actual de un joystick analógico. Índice (Index) especifica a la izquierda y a la
derecha en los ejes X e Y, de acuerdo a la Asignación de Teclas. EL rango de valores de los ejes va desde
-100 a 100. Los valores dentro de la Zona sin cobertura analógica (Analog deadzone) dan 0.
Nota que hoy en día es ingenuo asumir que todos los usuarios tendrán teclado. Muchos ahora manejan las
redes con pantallas táctiles. (Este objeto no responde a teclados en pantalla u otras formas de pantalla
táctil). Por ello, si tu juego usa exclusivamente el ratón o el teclado, es imposible que se use en
dispositivos táctiles. Mira el tutorial Touch controls ⇗ para ver un sistema de control alternativo.
Acciones de Teclado
El objeto Teclado no tiene acciones.
Expresiones de Teclado
El objeto Teclado no tiene expresiones.
Nota que hoy en día es ingenuo asumir que todos los usuarios tendrán teclado. Muchos ahora manejan las
redes con pantallas táctiles. (Este objeto no responde a teclados en pantalla u otras formas de pantalla
táctil). Por ello, si tu juego usa exclusivamente el ratón o el teclado, es imposible que se use en
dispositivos táctiles. Mira el tutorial Touch controls ⇗ para ver un sistema de control alternativo.
Si sólo usas el botón izquierdo, considera usar el objeto Táctil (Touch) con el Uso de entrada de Ratón
(Use Mouse Input) en Sí. Esto permitirá que tu juego funcione en dispositivos táctiles sin tener que hacer
muchos cambios.
Puedes añadirlo a la etiqueta <cuerpo> (<body>) para evitar selecciones en toda la página, pero te
advertimos que puede causar dificultades a los usuarios si hay algo que éste quiera seleccionar.
Condiciones de Ratón
El cursor está sobre el objeto (Cursor is over object)
Verdadero si el cursor del ratón está sobre algo.
Acciones de Ratón
Ajustar cursor de un Sprite
Ajusta el cursor de la imagen de un objeto Sprite. Esto es preferible a ajustar las coordinadas del ratón,
puesto que el retardo de la entrada es bastante más bajo. Se aplican varias limitaciones: se usa la imagen
que aparece en el editor, sin tener en cuenta el tamaño o la rotación en le plano; la imagen no puede ser
demasiado grande (el límite suele ser 64x64); y el soporte varía dependiendo del navegador y el SO.
Expresiones de Ratón
X absoluta (AbsoluteX)
Y absoluta (AbsoluteY)
Da la posición del cursor del ratón sobre el lienzo. Es (0,0) en la parte de arriba a la izquierda y crece de
acuerdo al tamaño de la ventana. No se ve afectado por ningún desplazamiento o escala en el juego.
X
Y
Da la posición del cursor en coordinadas. Es (0,0) en la parte de arriba a la izquierda. Cambia según
desplazamientos y escalas. Sin embargo, si una capa individual se ha desplazado, escalado o rotado, no se
tiene en cuenta en la expresión - para ese caso, usa las versiones de capa de abajo.
X (“capa”) (X("layer"))
Y (“capa”) (Y("layer"))
Da la posición del cursor en coordinadas, con desplazamientos, escalas y rotaciones teniendo en cuenta la
capa dada. La capa se puede identificar por una secuencia de su nombre o por el índice basado en 0
(Ratón.X(0) ((Mouse.X(0))).
El Modo de Fusión aditivo (Additive blend mode) funciona especialmente bien con este objeto. Hace
que cada partícula ilumine el fondo en vez de pegarse sobre él y permite que se fundan unas con otras en
vez de solaparse. Hace que parezcan fuentes de luz. La imagen siguiente muestra el efecto cuando la
textura es un punto blanco en un fondo negro.
Los efectos de colores se crean usando partículas de colores. Nota que ya que el efecto Aditivo ilumina el
fondo, cualquier objeto que use este efecto no se verá en un fondo blanco. Funciona mejor en fondos
oscuros.
Para más información sobre modos de fusión y efectos, ve a la sección Efectos de este manual.
Hay tres ajustes diferentes para hacer que las partículas se destruyan, dadas por la propiedad Modo de
destrucción (Destroy mode). La que se aplica por defecto Desvanecerse hasta invisible (Fade to
invisible) disminuye la opacidad de cada partícula hasta 0 durante el Tiempo de espera (Timeout)
destruyendo la partícula cuando es invisible. Tiempo de espera acabado (Timeout expired) simplemente
destruye la partícula tras un tiempo, sin cambiar su opacidad. Partícula parada (Particle stopped) destruirá
la partícula cuando su velocidad sea 0, ¡pero debes tener cuidado de asegurar que la partícula decelere
hasta llegar a valores negativos ya que si no no se destruirá nunca!
Optimización
Los efectos de partículas son más eficientes que crear el efecto con objetos Sprite, pero no a gran escala.
Lo mismo que con los sprites, debes tener cuidado de no crear un gran número de partículas, ya que el
rendimiento bajaría, especialmente en móviles. Usa la expresión Contador de partículas
(ParticleCount) para saber cuántas has creado. En móviles, el uso de este objeto no está recomendado ya
que la tasa de frames es muy limitada; pero si es necesario, mantén el número por debajo de 50.
Para reducir mantener a raya el contador de partículas, intenta reducir la tasa o acortar el tiempo de
espera. Para compensar, puedes intentar hacer la partícula más grande para que el efecto no se quede muy
vacío.
Propiedades de Partícula
El objeto Partículas tienes bastantes propiedades, que están divididas en tres grupos: Propiedades del
espray de partículas (relativas al propio objeto Partículas), Propiedades de las partículas iniciales
(relativas a la creación de cada partícula de forma individual) y las Propiedades de la duración de la
partícula (relativas a cómo se comportan las partículas tras su creación).
Tipo (Type)
Las partículas pueden funcionar de dos modos:
Espray continuo (Continuous spray) creará un espray constante (por defecto).
Caso único (One-shot) creará una única explosió de partículas, el número total ajustado en la Tasa. Una
vez han sido todas destruidas, el propio objeto se destruye. Es útil para efectos como explosiones o
impactos.
Imagen (Image)
Clica para abrir el editor de imágenes y editar la partícula. Prueba un punto en un fondo transparente o en
un fondo negro con el efecto Aditivo.
Propiedades de las partículas iniciales
Velocidad (Speed)
La velocidad inicial a la que se dispara cada partícula, en píxeles por segundo.
Tamaño (Size)
El tamaño inicial de cada partícula, en píxeles. Las partículas se muestran siempre como cuadrados.
Opacidad (Opacity)
La opacidad inicial de cada partícula, desde 0 (transparente) a 100 (opaca).
Randomizador X (X randomizer)
Randomizador Y (Y randomiser)
El desplazamiento inicial de la partícula. Puedes hacer que sigan una línea o una caja con estas
propiedades.
Gravedad (Gravity)
La aceleración hacia abajo causada por la gravedad, en píxeles por segundo por segundo. Útil para hacer
efecto fuente o similares. Establece 0 para evitar que la gravedad tenga efecto en el movimiento de la
partícula.
Condiciones de Partículas
Está pulverizando (Is spraying)
Verdadero si el espray está habilitado.
Acciones de Partículas
Ajustar pulverización (Set spraying)
Habilita o deshabilita el espray, cuando está en modo Espray continuo (Continuous spray). Cuando está
deshabilitado no se crean nuevas partículas.
Expresiones de Partículas
Contador de partículas (ParticleCount)
El número de partículas actual que tiene el objeto Partículas. Es importante para asegurar que no creas
demasiadas para el buen funcionamiento del juego; ve a la sección Optimización. Nota que debido a
cómo funcionan las expresiones en C2, si tienes varios ejemplos del objeto, esto solo dará el número de
partículas de un ejemplo - usa Para Cada bucle (For Each loop) para contar varios ejemplos.
6.14 Sprite
El objeto Sprite es una imagen inimitable que aparece en el juego. Es uno de los objetos más importante
en la mayoría de los juegos de C2. Se usa para hacer elementos más visuales, como el jugador, los
enemigos, proyectiles, explosiones y escenarios sin mosaico (los escenarios de mosaicos es mejor
hacerlos con el objeto Fondo Adosado (Tiled Background)).
Si un Sprite tiene una animación sencilla con un solo frame, simplemente mostrará una imagen sin
animar. Sin embargo, se pueden añadir animaciones más complejas al objeto con el Editor de imágenes y
animaciones.
Todos los ejemplos de este objeto comparten la animación. En otras palabras, un único conjunto de
imágenes conforman una animación que pertenece al tipo de objeto, los ejemplos son referencias a este
objeto.
Se pueden aplicar efectos a los Sprites. Para más información ver Efectos.
Propiedades de Sprite
Animaciones (Animations)
Clica el enlace Editar (Edit) para abrir el Editor de imágenes y animaciones. Todos los ejemplos del tipo
de objeto compartirán esta animación.
Tamaño (Size)
Clica el enlace Hacer 1:1 (make 1:1) para ajustar la selección a tamaño real (100%). Esto hace que la
altura y la anchura del objeto sea la misma que las del primer frame de la animación.
Condiciones de Sprite
Para condiciones comunes a varios objetos, ver Condiciones Comunes.
Empezar (Start)
Si la animación actual se para, esto hará que se reproduzca de nuevo desde el frame en el que se
quedó (current frame) o desde el principio.
Parar (Stop)
Detiene la animación. El objeto dejará de mostrar el frame actual.
El objeto Texto no muestra nada si el rectángulo de texto es demasiado pequeño para que quepa
una sola letra. Si el texto desaparece prueba a agrandar el rectángulo.
Renderizar texto
Diferentes navegadores renderizan el texto de distintas formas, y la Vista de Plano de C2 también lo hace
distinto a los navegadores. Esto significa que debes esperar que la apariencia del texto sea algo distinta
cuando se juega en distintos navegadores.
Debes probar tu juego en varios de ellos para asegurarte que el texto se ve como tú pretendías. Para más
información ve a la sección Buenas prácticas.
Fuente (Font)
La fuente en la que el objeto muestra el texto. Clica el botón a la derecha del nombre de fuente
“…” para abrir un diálogo y seleccionar la fuente. Las fuentes elegidas deben estar instaladas en
el ordenador del usuario para que se muestren correctamente. Por esta razón se recomienda usar
Fuentes de Web en vez de elegir fuentes poco comunes.
Color
Elige el color del texto.
Origen (Hotspot)
Elige si el origen del objeto estará en la parte de arriba a la izquierda del rectángulo de texto (por
defecto) o centrado (centered). Esto sólo es importante si se quiere rotar el texto.
Ajustar (Wrapping)
Elige como se ajusta el texto al final de la línea. Palabra (Word) ajustará palabras enteras separadas por
espacios o guiones. Carácter (Character) se cambiará a la siguiente línea en cualquier carácter, lo que
podría partir palabras en Idiomas Occidentales, pero que es útil en idiomas como el chino.
Condiciones de Texto
Para condiciones comunes a otros objetos ve a Condiciones comunes.
Acciones de Texto
Para acciones comunes a otros objetos ve a Acciones comunes.
Expresiones de Texto
Para expresiones comunes a otros objetos ve a Expresiones comunes.
Texto (Text)
Da la secuencia que contiene el objeto de texto actual.
Los controles de formulario son elementos HTML que flotan sobre el lienzo del juego en la
página HTML. Por lo tanto, no se puede mostrar nada por encima de un control, aparte de otros
controles.
Los controles se posicionan ellos solos de acuerdo al paralaje de la capa, su escala y otros. Sin
embargo, no están realmente en el juego (ya que flotan encima) por lo que se recomiendo evitar
el uso de desplazamientos, paralaje y escalas, de otra forma no quedaría natural.
Hacer el texto rojo (Make the text red): Ajusta el "color" a "rojo".
Hacer el fondo amarillo (Make the background yellow): Ajusta el "color del fondo" a "amarillo".
Hacer el borde gris claro y fino (Make the border a thick light grey: Ajusta el "borde" a "3px
solid #AAAAAA".
Hacer la letra más grande (Make the font bigger): Ajusta el "tamaño de letra" a "2em".
Hacer un borde rojo y discontinuo (Make a dashed red border): Ajusta el "borde" a "2px dashed
red".
Tipo (Type)
Ajusta el tipo de contenido que se tiene que introducir en el campo. Puede ser:
Texto (Text) cualquier contenido.
Contraseña (Password) cualquier contenido pero escondiendo los caracteres.
Email para secuencias de formato similar a joe@bloggs.com.
Número (Number) sólo caracteres numéricos.
Número de teléfono (Telephone number) sólo caracteres de números de teléfono.
URL direcciones web de formato similar a http://example.com.
Área de texto (Área de texto) texto de varias líneas.
Los de tipo email, número, número de teléfono y URL son más útiles en dispositivos móviles ya que
cambia el tipo de teclado táctil de acuerdo al contenido a introducir. Por ejemplo, Texto mostrará un
teclado general mientras que Número mostrará solo los números, haciendo la tarea más fácil al usuario.
ID (Opcional)
Una id adicional para el elemento en el DOM (Modelo de Objetos del Documento). Puede ser útil para
acceder al valor del elemento desde scripts externos, o dar estilo con CSS en la página HTML.
Este mosaico se puede conseguir con un solo objeto de Fondo Adosado, y mucho más rápido (y más fácil
de editar) que usar varios objetos Sprite en una cuadrícula. Usa este objeto simpre que la imagen se repita.
Este objeto no puede tener polígono de colisión. Siempre colisionand e acuerdo al rectángulo de acción
(bounding rectangle).
Además, se les puede aplicar efectos. Para más información ve a Efectos.
Origen (Hotspot)
Elige donde está el origen en el objeto. Por defecto está en la parte de arriba a la izquierda del rectángulo
de acción, pero se puede poner en el Centro (Center) que puede ser útil para rotar el objeto.
Es mejor habilitar entradas táctiles siempre que sea posible. En la actualidad muchos usuarios suelen
navegar en dispositivos móviles sin teclado ni ratón. Si tu juego no soporta los controles táctiles, estos
usuarios no podrán jugar tu juego. Para una guía de cómo usar estos controles ve al tutorial Touch
controls ⇗.
Multi-táctil (Multi-touch)
El objeto Táctil soporta también estímulos táctiles múltiples. Este modo es más útil con las condiciones
Objeto tocado (On touched object) y Está tocando objeto (Is touching object), que pueden detectar varios
controles táctiles simultáneos.
Para más usos avanzados, las expresiones Contador de toques (TouchCount), XAt y YAt dan los contactos
actuales en la pantalla. Los toques tienen un índice basado en 0, así que 0 es el primer toque, 1 el segundo
y así sucesivamente. Los toques se ordenan como una pila: el primero (el más viejo) es siempre el 0, el
segundo es siempre el 1 y así sucesivamente. Si un toque se destruye y después se vuelve a añadir, se
convertirá en el último toque de la lista.
Propiedades de Táctil
Usar entradas de ratón (Use mouse input)
Si está en Sí, los clics del ratón simularán los toques en la pantalla. Clicar y arrastrar con el botón
izquierdo del ratón simulará un arrastre con el dedo y los clics sencillos simularán toques. Puede ser muy
útil para probar que los eventos táctiles funcionan correctamente en un ordenador de mesa que no tenga
pantalla táctil. Sin embargo, sólo los toques simples se pueden simular además de que el ratón es mucho
más preciso, por lo que es mejor probarlos en un dispositivo táctil real.
Condiciones de Táctil
Cotejar velocidad de toque (Compare touch speed)
Coteja la velocidad de un toque específico (dado por su índice basado en 0). La velocidad se mide en el
lienzo en píxeles por segundo, por lo que no se ve afectado por la escala de la pantalla.
Acciones de Táctil
El objeto Táctil no tiene acciones.
Expresiones de Táctil
Aceleración X (AccelerationX)
Aceleración Y (AccelerationY)
Aceleración Z (AccelerationZ)
Da el movimiento actual del dispositivo como su aceleración en cada eje en m/s^2 (metros por segundo
por segundo) excluyendo el efecto de la gravedad. La expresión que incluye la gravedad (abajo) es más
común; esta dará 0 en los dispositivos que no la soporten.
Aceleración X con G (AccelerationXWithG)
Aceleración Y con G (AccelerationYWithG)
Aceleración Z con G (AccelerationZWithG)
Da el movimiento actual del dispositivo como su aceleración en cada eje en m/s^2 (metros por segundo
por segundo) incluyendo la aceleración causada por la gravedad, que es sobre 9.8 m/s^2 hacia abajo. Esta
expresión es comúnmente soportada. Sin embargo, algunos dispositivos no garantizan la detección de
movimiento, en cuyo caso dará 0 en cada caso.
Alpha
Beta
Gamma
Da la orientación del dispositivo si es soportada, o 0 en caso de que no. Alpha es la dirección de la brújula
en grados. Beta es la inclinación de adelante hacia atrás en grados (la inclinación ante ti si lo mantienes
delante de ti). Los valores positivos indican inclinación hacia adelante y los negativos hacia atrás. Gamma
es la inclinación hacia los lados en grados (si lo mantienes delante de ti). Los valores positivos indican
inclinación hacia la derecha y los negativos hacia la izquierda.
X Absoluta (AbsoluteX)
Y Absoluta (AbsoluteY)
X en (índice) Absoluta (AbsoluteXAt(index))
Y en (índice) Absoluta (AbsoluteYAt(index))
Da la posición actual de un toque sobre el lienzo. Será (0, 0) en la parte de arriba a la izquierda y aumenta
con el tamaño de la ventana. No se ve afectado por desplazamientos o escalas del juego. Las expresiones
En (At) dan la posición absoluta de un toque dando su índice basado en 0, permitiendo toques múltiples.
X
Y
XAt(index)
YAt(index)
Da la posición actual de un toque en las coordinadas del plano. Cambia reflejando desplazamientos y
escalas. Sin embargo. Si se mueve, escala o rota una sola capa esta expresión no la tendrá en cuenta - para
ese caso usa la versión de abajo. Las expresiones En (At) dan la posición absoluta de un toque dando su
índice basado en 0, permitiendo toques múltiples.
X (“capa”) (X("layer"))
Y (“capa”) (Y("layer"))
XAt(index, "layer")
YAt(index, "layer")
Da la posición actual de un toque en las coordinadas del plano, incluyendo desplazamientos y escalas en
cualquier capa. La capa se identifica por la secuencia de su nombre o por su índice basado en 0
(Touch.X(0)). Las expresiones En (At) dan la posición absoluta de un toque dando su índice basado en 0,
permitiendo toques múltiples. Por ejemplo, para conseguir la coordinada X del segundo toque de la capa
de abajo, la expresión sería Touch.XAt(1, 0).
Este objeto tiene muchas características comunes a otros objetos, incluyendo la posibilidad de aplicar
efectos.
En el plano
El objeto Medios de comunicación del Usuario aparece como un rectángulo en la Vista de Plano,
con una cruz roja. Representa donde se mostrará el video introducido en el plano.
Foto (snapshot)
Si el usuario ha aprobado la solicitud de cámara y el objeto se muestra, está acción capturará el frame
actual. La imagen estará disponible en la expresión FotoURL (SnapshotURL) como datos URI. La imagen
se podrá cargar en un Sprite o Fondo adosado usando la acción Cargar imagen de una URL (Load image
from URL) y usando FotoURL (SnapshotURL). Esta acción muestra parámetros opcionales para
especificar el formato de compresión, lo que es útil si pretendes subir y guardar la imagen en un archivo
más pequeño.
Parar (Stop)
Finaliza cualquier captura de video activa. Se debe volver a pedir permiso para poder usarse de nuevo.
El almacenamiento local es permanente (hasta que el usuario borre el almacén). Si el usuario vuelve a
entrar al juego, el almacenamiento local tendrá sus datos anteriores guardados.
El almacenamiento de sesión sólo dura durante la sesión actual. Si el usuario vuelve a jugar este
almacenamiento estará vacío.
6.21 Windows 8
El objeto Windows 8 (W8 en adelante) da acceso a características específicas de plataformas disponibles
cuando se usa el juego como aplicación de Windows 8. Nota que estas características no se aplicarán para
otras formas, incluso en Internet Explorer - sólo funciona en el nuevo estilo de apps de W8 a partir de su
menú de inicio.
W8 también soporta entradas táctiles que es el único método disponible para móviles y tabletas de W8.
Para que funcione en estos dispositivos asegúrate de añadir el objeto Táctil.
Como en Almacenamiento Web todos los valores de datos de itinerancia son secuencias. Puedes
almacenar números en los datos de itinerancia, pero se convertirán automáticamente en secuencias. Para
volver a convertir secuencias en número usa las expresiones del sistema int() o float().
Condiciones de W8
Datos cambiados (On data changed)
Detonado cuando los datos de itinerancia se han actualizado con datos de otro dispositivo. Normalmente
esto ocurre cuando guardas los datos de itinerancia en un dispositivo y después el usuario cambia la
aplicación a otro dispositivo. Puede haber tiempo de espera hasta que se sincronicen los datos de
itinerancia y, cuando esté todo preparado, este detonador se disparará.
Acciones de W8
Ajustar texto en mosaico (Set live tile text)
Cambia el mosaico de la aplicación en el menú de inicio para que muestre texto. Se debe elegir una
plantilla prediseñada. Para una vista previa, mira el catálogo tile template catalog on MSDN ⇗. Nota que
usar plantillas amplias requerirá que tu aplicación esté usando un mosaico amplio; si lo cambias a una
plantilla de tamaño diferente no funcionará.
6.22 XML
El plugin XML puede analizar y leer datos de documentos XML. Usa XPath para acceder a ellos. XPath
es un tipo de lenguaje de consulta para XML similar a SQL para bases de datos. Para aprender más sobre
XPath clica los siguientes enlaces:
W3Schools XPath tutorial ⇗
Some XPath examples ⇗
Another XPath tutorial with examples ⇗
El plugin XML es solo de lectura. Puedes leer datos pero no cambiar ningún valor en
documentos XML.
Internet Explorer
Internet Explorer no soporta consultas XPath que dan un número (como count(…)). En este caso puedes
usar la expresión Contador de nodos (NodeCount) en su lugar. Asegúrate de probar tu proyecto en varios
navegadores. El resto de ellos tienen soporte completo estándar para XPath.
Condiciones XML
Para cada nodo (For each node)
Repite el evento una vez por cada nodo dado por la consulta XPath. Normalmente se usará con consultas
que dan nodos múltiples, como "/bookstore/book" para seleccionar todos los nodos “libro” (“book”) bajo
“almacen de libros” (“bookstore”). En el evento Para cada nodo (For each node) el nodo actual se ajusta
al que está siendo repetido. Esto significa que XPaths relativos, como "title/text()" trabajan en relación
con el nodo actual (en este caso dando el texto de la pestaña “título” (“title”)). Para cada nodo (For each
node) también se puede anidar, así que puedes repetir otra lista relativa en el nodo actual.
Acciones XML
Cargar (Load)
Carga un documento XML de una secuencia. Mira las sección de arriba Cargar un documento XML.
Expresiones XML
Contador de nodos (NodeCount)
Da el número de nodos dados por una expresión XPath. Por ejemplo, puede contar el número de
elementos en un nombre dado. En el evento Para cada nodo (For each node), XPath es relativo al nodo
actual.
General
Cotejar dos valores (Compare two values)
Coteja dos expresiones cualquiera (números o texto). El resultado puede ser Igual (Equal),
Distinto (Not equal), Menor (Less), Menor o igual (Less or equal), Mayor (Greater) o Mayor o
igual (Greater or equal).
Capas y Plano
Cotejar opacidad (Compare opacity)
Coteja la opacidad (o semitransparencia) de una capa, de 0 (transparente) a 100 (opaca). La
opacidad de una capa no puede estar fuera de este rango.
Bucles
Los bucles se pueden detener con la acción del sistema Parar bucle (Stop Loop).
Para (For)
Repite el evento un número de veces, usando una índice de variables con un rango de valores. El índice
puede recuperarse con la expresión Índice de Bucle (LoopIndex) y así dar el nombre del bucle.
Repetir (Repeat)
Simplemente repite el evento un número dado de veces. Esto comprueba cualquier condición que
lo sigue en cada repetición y, si se reúnen esas condiciones, también funcionarán las acciones y
sub-eventos en cada repetición.
Mientras (While)
Repite el evento hasta que una de las otras condiciones del evento sea falsa o se use la acción Parar bucle
(Stop loop). Ten cuidado de no crear bucles infinitos que pueden ralentizar el juego
Recoger ejemplos
Recoger todos (Pick all)
Selecciona todos los objetos. Las condiciones posteriores recogerán entonces de todas, en vez de la
selección hecha por condiciones previas. Para más información de cómo funciona la selección de
ejemplos en eventos ve a Cómo funcionan los ejemplos. Útil en sub-eventos para afectar a ejemplos
distintos del anterior.
Si todos los objetos están seleccionados, esta condición se puede usar también para recoger un objeto por
su índice de ID (IID). Para más información ve a Características comunes.
Recoger ejemplo al azar (Pick random instance)
Recoge un ejemplo al azar de la selección actual de objetos. En otras palabras, esta condición sigue a otra
condición y recogerá una al azar de las que han reunido la condición anterior. De otra forma recogerá al
azar de entre todos los ejemplos.
Condiciones especiales
Otro (Else)
Funciona si el evento anterior no ha funcionado. Nota que esta condición no selecciona objetos: si sigue a
un evento que recogió objetos, en el evento Otro (Else) todos los ejemplos se vuelven a seleccionar. Otro
(Else)sólo puede seguir a eventos normales (no detonados). También puede seguir a otro evento Otro
(Else) con otras condiciones para hacer una cadena “si - otro si -” (“if - else if -”).
Inicio y fin
Al final del plano (On end of layout)
Detonado cuando el plano está terminando. Puede ocurrir cuando se quiere cambiar de plano o cuando el
proyecto finaliza.
Tiempo
Cotejar tiempo (Compare time)
Coteja el tiempo, en segundos, desde que el juego empieza. Por ejemplo, los eventos se pueden programar
para suceder cuando el tiempo llegue (sea igual) a 10 segundos.
Monitor
Ajustar tamaño del lienzo (Set canvas size)
Ajusta el tamaño del lienzo en el área de la página, si aparece en línea a ella (no se usa el modo pantalla
completa).
Capas y plano
Para más información sobre acciones de los efectos ve a la sección Efectos.
Desplazamiento
Para desplazar, el tamaño del plano debe ser mayor que el tamaño de la ventana o estar activada la
propiedad Desplazamiento ilimitado (Unbounded scrolling). De otra forma no habría a donde desplazarse
y esta acción no tendría efecto.
Esperar (Wait)
Espera un número de segundos antes de continuar con la siguiente acción o sub-evento. Otros eventos
continuarán funcionando mientras. Mira el tutorial How to use the System 'Wait' action ⇗.
Esta sección no lista los operadores o sintaxis que se usan en las expresiones - solo las expresiones
específicas al objeto Sistema. Para más información general de cómo usar expresiones en C2 ve a
Expresiones.
Monitor
Anchura de la ventana (WindowWidth)
Altura de la ventana (WindowHeight)
Da el tamaño de la ventana. Útil con la propiedad Pantalla completa en el navegador (Fullscreen in
browser) ya que esto habilita una variable de tamaño de ventana. Mira también Supporting multiple
screen sizes ⇗.
Capas
Expresiones donde se requiere una capa, por su nombre (como secuencia) o su índice (como número
basado en 0).
CanvasToLayerX(layer)
CanvasToLayerY(layer)
Calcula las coordenadas del plano por debajo de una posición en las coordenadas del lienzo para una capa
dada.
LayerToCanvasX(layer)
LayerToCanvasY(layer)
Calcula las coordenadas del lienzo por encima de una posición en las coordenadas del plano para una
capa dada.
Da los límites de la vista en coordenadas del plano de una capa dada. No todas las capas tienen
la misma vista si estas usan paralaje, están escaladas o rotadas de forma independiente.
Plano
Captura del lienzo (CanvasSnapshot)
Contiene la imagen resultante de la acción Capturar lienzo (Snapshot canvas) y tras Captura del
lienzo (On canvas snapshot). (Nota que está expresión no estará disponible inmediatamente tras
la acción Capturar lienzo (Snapshot canvas) – solo puedes usarlo cuando Captura del lienzo (On
canvas snapshot) se detone).La expresión da los datos URI del archivo de imagen. Después, esto
puede cargarse en un objeto Sprite o Fondo Adosado mediante Cargar imagen de una URL
(Load image from URL), enviarse a un servidor para almacenarlo localmente o abierto con el
objeto navegador en una nueva pestaña para guardarla en el disco.
Desplazamiento X (scrollx)
Desplazamiento Y (scrolly)
Da la posición actual en la que la vista está centrada
Matemáticas
Estas expresiones son funciones matemáticas normales que puedes encontrar en calculadoras. Sin
embargo, nota que las funciones que usan ángulos trabajan con grados, no radianes. Los ángulos
empiezan en 0 grados y aumentan hacia la derecha en el sentido de las agujas del reloj.
sin(x), cos(x), tan(x), asin(x), acos(x), atan(x) Funciones trigonométricas que usan ángulos en grados.
Sistema
Progreso de carga (loadingprogress)
Da el progreso de la carga actual en un plano cargador, o el progreso de una actualización mientras que la
condición del objeto Navegador Está descargando actualización (Is downloading update) es verdadera.
El progreso viene dado por un número de 0 a 1 (0,5 sería la mitad). Para más información ve a los
tutoriales Como hacer una pantalla de carga personalizada (how to make a custom loading screen ⇗) y
Juegos offline en C2 (offline games in Construct 2 ⇗).
Lienzo (renderer)
Da el nombre del lienzo usado para dibujar el juego, que puede ser canvas2d o webgl. Mira la sección
Tecnología para más información sobre lienzos.
Texto
Encontrar (src, texto) (find(src, text))
Encuentra el primer índice en src que aparece en el texto, de lo contrario da -1.
left(text, count)
Da la primera cuenta de caracteres de texto.
len(text)
Da el número de caracteres en el texto.
right(text, count)
Da la última cuenta de caracteres del texto.
trim(src)
Da src con todos los espacios en blanco (espacios, tabulaciones, etc.) quitados desde el principio al final
de la secuencia.
Tiempo
Uso de CPU (CPUUtilisation)
El porcentaje del último Segundo que se gastó en la lógica de la aplicación. Eso es para que usuarios
avanzados hagan mediciones del rendimiento. Nota que en los dispositivos aceleradores de hardware la
renderización ocurre en una GPU separada y esta medición no te podrá decir nada sobre como de rápido
se produce; para ello sería mejor la medición fps.
dt
El tiempo delta en segundos. Ver Delta-time and framerate independence ⇗.
fps
La tasa de frames por segundo (FPS) actual, que es cuantos veces la pantalla se dibuja cada segundo. La
mayoría de los ordenadores funcionan a 60 fps si son suficientemente rápidos.
Valores
Elegir ((a, b [, c...])) (choose(a, b [, c...]))
Elige uno de los parámetros dados al azar. Por ejemplo, choose(1, 3, 9, 20) escogerá al azar uno de los
cuatro números. También funciona con secuencias, por ejemplo choose("Hello", "Hi") dará Hello o Hi.
Se puede usar cualquier número de parámetros, mínimo dos.
clamp(x, lower, upper)
Da inferior (lower) si x es menor que inferior (lower), superior (upper) si x es mayor que superior
(upper), de lo contrario dará x.
float(x)
Convierte el número entero o el texto x en un número fraccionado.
int(x)
Convierte el número fraccionado o texto x en un número entero.
random(x)
Genera una fracción al azar de 0 a x, sin incluir x. Por ejemplo, random(4) puede generar 0, 2.5, 3.29293,
pero no 4. Usa floor(random(4)) para generar números enteros como 0, 1, 2, 3.
random(a, b)
Genera fracciones al azar entre a y b, incluyendo a pero sin incluir b.
rgb(r, g, b)
Genera un número simple que contiene un color en formato RGB. Es útil para condiciones o acciones que
tienen en cuenta el parámetro color.
str(x)
Convierte el número entero o fracción x en secuencia. Generalmente no es necesario ya que las secuencias
se pueden construir usando el operador &. Por ejemplo “Tu puntuación es ” & puntuación ("Your score is
" & score).