Advertisement
  1. Code
  2. SpriteKit
Code

Introduzindo o SpritKit

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

Portuguese (Português) translation by David Batista (you can also view the original English article)

O SpriteKit é o motor da Apple para jogos 2D - um mecanismo de renderização construído em cima do OpenGL. Ele foi introduzido com o iOS 7 e a cada lançamento seguinte trouxe grandes adições ao framework. Com o uso de sprites texturizados, uma mecânica de física e a poderosa classe SKAction, você pode construir rapidamente jogos 2D.

O SpriteKIt tem editores de cenas e partículas, um nó de câmera desde o lançamento do iOS 9 e suporte a tilasets desde o lançamento do iOS 10. Com essas novas adições, o SpriteKit vem se tornando rapidamente uma potência na criação de jogos 2D.

Na imagem abaixo o editor de cena, com uma label, um sprite colorido e um sprite texturizado.

Scene Editor

Laço de Renderização

O SpriteKit, como a maioria dos motores de jogos, usa um looping de renderização para renderizar e atualizar a tela. O looping de renderização executa as seguintes etapas na renderização de cada cena:

  1. Atualizar cena e seus objetos
  2. Calcular ações
  3. Simular físicas
  4. Aplicar restrições
  5. Renderizar a cena

Cada uma dessas etapas tem um método correspondente que vocês podem pegar e aplicar a lógica adicional. Os métodos do looping de renderização são:

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

Por exemplo, se vocês quiserem mover manualmente objetos na sua cena, então vocês devem usar o método update. Ou se vocês têm objetos que devem ser afetados por ações ou pela física, vocês poderiam amarra-los aos métodos correspondentes para certificar-se de que essas ações ou simulações de física são aplicadas antes de quaisquer alterações que você faça.

SKNode

A classe SKNode é o bloco fundamental do SpriteKit. Todos os seus recursos na tela serão um SKNode ou uma subclasse dela.

A classe SKNode não desenha quaisquer recursos visuais em si. Seu papel principal é fornecer comportamento de base para que as outras classes implementam. Por exemplo, a classe SKScene é o nó raiz em uma árvore de instâncias da SKNode e é usada para manter os sprites e outros conteúdos que precisam ser renderizados.

A renderização e animação são feitos por uma instância SKView. A view é colocada dentro de uma janela e uma instância SKScene é adicionada a ela, e essa cena será renderizada e animada desde que a view esteja ativa. Vocês podem usar uma única instância SKView em suas janela e trocar entre as diferentes cenas a qualquer momento.

O framework define uma grande quantidade de outras subclasse do SKNode. A mais comum usada em uma cena é a SKSpriteNode. A classe SKSpriteNode pode ser desenhada como um retângulo com uma imagem dentro dela com SKTexture, para criar um sprite, ou como uma cor, retângulo sem textura. Vocês na maioria das vezes usaram sprites texturizados, porque é assim que vocês iram trazer vida as artes do seus jogos.

Outros tipos importantes de nós inclui:

  • SKShapeNode, que renderiza um forma definida por um caminho Core Graphics
  • SKVideo, que exibe conteúdo de video
  • SKLabel, que exibe uma label de texto

Nós iremos olhar com mais detalhe essas subclasse da SKNode nesta série.

SKAction

A classe SKAction é uma classe muito poderosa que é usada para dar vida aos nós. A SKAction pode alterar as propriedade dos seus nós ao longo do tempo, por exemplo movendo, escalonando ou rotacionando eles. Vocês podem encadear ações em uma sequência, executar muitas ações juntas como um grupo e repetir um looping delas. Vocês também podem usar uma SKAction para rodar um bloco personalizado de código. Por exemplo, vamos supor que vocês precisem exibir as coordenadas de um nó após ele se mover. Vocês poderiam rodar um bloco personalizado de código dentro do SKAction para fazer exatamente isso.

Recursos do SpriteKit

Físicas

O SpriteKit tem um motor de física que torna o manuseio de cenários complexos de físicas em uma pequena brisa. Construído em cima do popular framework Box2D, ele lhes permite responder a eventos de colisões e contato, aplica forças e gravidade e construir simulações complexas de física usando juntas, como pinos e molas. Vocês podem usar o editor de cena para adicionar visualmente física aos seus nós ou adicionar a física programaticamente.

Sistema de Coordenada

No SpriteKit, a coordenada (0,0) é localizada na parte inferior esquerda da tela ao invés da parte superior esquerda, diferente do que você possa ter usado se trabalho com Flash, Corona, Canvas HTML5, e muitos outros frameworks de jogo. Ter a origem na parte inferior esquerda é uma convenção do OpenGL, e o SpriteKit a segue pois usa o OpenGL debaixo dos panos.

Sistema de Particula

O SpriteKit tem um poderoso motor de particula que pode ser usando para simular sistemas de partículas tais como fogo e fumaça. E também um editor de partícula onde vocês podem visualmente estabelecer os sistemas de partículas. Se vocês preferem ficar no código, vocês podem programar estes sistemas do zero usando nada mais do que código.

A seguir uma imagem do editor de partícula com um sistema de partícula parecida com fogo.

Particle Editor

Tiles

O SpriteKit tem uma grande quantidade de classes dedicados a construção de layouts em tiles. O uso dos tilemaps oferece um melhor uso de memória do que se usar uma única imagem grande.

A seguir uma imagem de um mapa de tile usando um grade retangular.

Tile Map Node

Conclusão

Estes são alguns dos destaques do SpriteKit. Eu sugeriria a leitura do overview SpriteKit para aprender um pouco mais sobre o que ele tem a oferecer. Para aprender mais sobre como começar com o SpriteKit, vocsê também deveriam dar uma verificada na publicação do Davis Allie aqui no Envato Tuts+.

Verifiquem também os cursos de SpriteKit! Eles irão leva-los através de todos os passos para construir seu primeiro jogo em SpriteKit para iOS, mesmo se você nunca codificou com SpriteKit antes.

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.