Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. SpriteKit

Presentando SpriteKit

by
Length:ShortLanguages:
This post is part of a series called SpriteKit Basics.
SpriteKit Basics: Nodes

Spanish (Español) translation by Rafael Chavarría (you can also view the original English article)

SpriteKit es el motor de juegos 2D de Apple---un motor de generación construido encima de OpenGL. Fue presentado con iOS 7, y cada liberación subsecuente ha traído grandes adiciones al framework. Con el uso de gráficos texturizados, un motor de físicas integrado, y la muy poderosa clase SKAction, puedes construir muy rápidamente juegos 2D funcionales.

SpriteKit tiene editores integrados para escenas y partículas, un nodo de cámara desde la liberación de iOS9, y soporte integrado para juegos de azulejos desde la liberación de iOS 10. Con estas nuevas adiciones, SpriteKit se está convirtiendo rápidamente en una central para crear juegos 2D.

Debajo está una imagen del editor de escena integrado, con una etiqueta, un gráfico colorado, y un gráfico texturizado.

Scene Editor

Ciclo de Generación

SpriteKit, como la mayoría de motores de juegos, usa un ciclo de generación para generar y actualizar la pantalla. El ciclo de generación recorre los siguientes pasos en la generación de cada escena:

  1. Actualiza la escena y sus objetos
  2. Evalúa acciones
  3. Simula físicas
  4. Aplica restricciones
  5. Genera la escena

Cada uno de estos pasos tiene un método correspondiente que puedes enganchar en aplicar lógica adicional. Los métodos de ciclo de generación son como siguen:

  1. update
  2. didEvaluateActions
  3. didSimulatePhysics
  4. didApplyConstraints
  5. didFinishUpdate

Por ejemplo, si quisieras mover manualmente objetos en tu escena, entonces el método update sería lo que uses. O si tuvieras objetos que estuvieran siendo afectados por acciones o físicas, podrías atarlos a los métodos correspondientes para asegurar que esas acciones y la simulación de físicas son aplicadas antes de cualquier cambio que hagas.

SKNode

La clase SKNode es el bloque de construcción fundamental d SpriteKit. Todos tus recursos en pantalla serán un SKNode o subclase de este.

La clase SKNode no dibuja ningún recurso visual por sí misma. Su rol primario es proporcionar comportamiento básico que otras clases implementan. Por ejemplo, la clase SKScene es el nodo raíz en un árbol de instancias SKNode y es usado para retener gráficos y otro contenido que necesita ser generado.

La generación y animación son hechas por una instancia SKView. La vista es colocada dentro de una ventana y una instancia SKScene es agregada a esta, y esa escena será generada y animada siempre que la vista esté activa. Puedes usar una sola instancia SKView en tu ventana y cambiar entre diferentes escenas en cualquier momento.

El framework define un número de otras subclases SKNode. La más común usada dentro de una escena es la clase SKSpriteNode. La clase SKSpriteNode puede ser dibujada ya sea como un rectángulo con una imagen mapeada a este con SKTexture, para crear un gráfico, como un rectángulo coloreado sin textura. Más frecuentemente usarás gráficos texturizados, debido a que así es como el arte de tu juego cobrará vida.

Otros tipos importantes de nodos incluyen:

  • SKShapeNode, que genera una forma definida por una ruta de Gráficos Nucleares
  • SKVideo, que muestra contenido de video
  • SKLabel, que muestra una etiqueta de texto

Veremos varias de estas subclases de SKNode después en esta seria.

SKAction

La clase SKAction es una clase muy poderosa que es usada para traer tus nodos a la vida. SKAction puede cambiar las propiedades de tu nodo con el tiempo, por ejemplo moviéndolos, escalándolos, o rotándolos. Puedes encadenar acciones en una secuencia, ejecutar muchas acciones juntas como un grupo, y repetirlas en un ciclo. Puedes también usar SKAction para ejecutar un bloque personalizado de código. Por ejemplo, supón que quisieras imprimir las coordenadas de un nodo después de que ha sido movido. Podrías ejecutar un bloque personalizado de código dentro del SKAction para hacer eso.

Características de SpriteKit

Físicas

SpriteKit tiene un motor integrado de físicas que hace el manejo de escenarios de físicas complejas pan comido. Construido encima del popular framework Box2D, te permite responder a colisiones y eventos de contacto, aplicar fuerzas y gravedad, y construir simulaciones de físicas muy complejas usando uniones, tales como pines y resortes. Puedes usar el editor de escena para agregar visualmente físicas a los nodos, o puedes agregar físicas mediante programación.

Sistema de Coordenadas

En SpriteKit, la coordenada (0,0) está localizada en la parte inferior izquierda de la pantalla en vez de la superior izquierda, a lo que podrías estar acostumbrado si has trabajado con Flash, Corona, HTML5, Canvas, y muchos otros frameworks de juegos. Tener el origen en la parte inferior izquierda es una convención OpenGL, y SpriteKit la sigue porque SpriteKit usa OpenGL bajo el capó.

Sistema de Partículas

SrpiteKit tiene un motor de partícula muy poderoso que puede ser usado para simular sistemas de partículas tales como fuego y humo. También hay un editor integrado de partículas en donde puedes diseñar sistemas de partículas de manera visual. Si prefieres apegarte al código, puedes programar estos sistemas desde el sueño usando nada más que código.

Debajo está una imagen del editor de partículas con un sistema de partículas como fuego.

Particle Editor

Azulejos

SpriteKit tiene un número de clases dedicadas a construir diseños con azulejos. Usar mapas de azulejos ofrece mejor uso de memoria que usar una solo imagen muy grande. Los azulejos pueden ser ordenados en cuadrículas rectangulares, hexagonales, o isométricas.

Debajo está una imagen de un mapa de azulejos usando una cuadrícula rectangular.

Tile Map Node

Conclusión

Estas son algunas de las características principales del motor SpriteKit. Me gustaría sugerir leer la vista general de SpriteKit para aprender más sobre lo que tiene que ofrecer. Para aprender más sobre cómo comenzar con SpriteKit, deberías revisar también los artículos de Davis Allie aquí en Envato Tuts+.

También, ¡revisa nuestros cursos SpriteKit! Estos te llevarán a través de todos los pasos de construir tu primero juego SpriteKit para iOS, incluso si nunca antes has programado con SpriteKit.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.