Entendendo UID, IID, Vida, Carros e Foguetes com Trilhas Fumaça.

1
  • 0 favourites

Tagged

Stats

8,043 visits, 8,825 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

Introdução

Aqui você irá aprender sobre o básico de como "UID" e "IID" funcionam, e também, como a vida dos inimigos funcionam.

Quem nunca tentou configurar um foguete com uma trilha de fumaça?

E quem nunca ficou travado enquanto ficava pensando em como configurar a fumaça para coincidir com o foguete quando ele fosse criado?

Todas estes problemas são interrelacionados e a solução é muito simples, você precisa somente de alguns princípios.

UID e IID

Quando você roda um jogo, ele cria todos os objetos colocados na tela, dando a eles uma identificação única (UID) e um index (IID). Eles irão mudar quando você destrói ou cria um novo objeto na tela.

Todos os problemas relacionados e uma melhor explicação a respeito disto você pode encontrar no Manual.

Palavras de Ashley:

"IIDs e UIDs no editor não mudam dependendo da ordem em Z, mas mudam se você deletar ou inserir instancias. Por causa disso, você não deve se preocupar em saber o UIDs ou IIDs de qualquer forma - a instancia com UID 3, por exemplo, pode mudar para um objeto diferente se você adicionar ou deletar alguma coisa na tela. Isto pode facilmente destruir seu jogo ou fazê-lo trabalhar de forma diferente e "randômica" (isto parecerá randomico para muitos usuários porque eles não irão pensar em certas coisas que eles fizeram podem mudar as UID e IIDs). Por esta reação, eu não acho que UIDs ou IIDs precisam ser mostradas na tela do editor, em ordem para desencorajar esta má prática."

Como dito, UIDs e IIDs são necessárias para a Engine, mas você não precisa se preocupar a respeito delas.

Ao invés de usar UIDs e IIDs, você deve usar condicionais onde somente uma única delas pode ser satisfeita em uma expressão.

Chame isto de encapsular um objeto.

Encapsulando Objetos

Vamos começar com o exemplo de um Foguete.

Resource file: Instance.CAPX

HTML5: Live sample

Procedimento

Pormenores

O procedimento abaixo mostra como criar um foguete e colocar uma trilha de fumaça nele.

Toda vez que a Engine criar um novo objeto, em vez de escolher o seu UID ou IID (o que pode mudar na vida do objeto, e embaralhar seu ordenamento), será adicionado +1 a uma instância variável de um objeto fixo na tela, como um índice.

O objeto fixo aqui é o texto, mas você pode usar um sprite invisível, ou, um objeto HUD.

Quando criada, as condicionais definem uma instância variável para o foguete que lhe dá um índice, dando-lhe assim um ID único.

Além disso, ele define o mesmo index para a fumaça em nível filho (nível filho é porque a fumaça 1 foi criada pelo foguete 1, então, o foguete um é pai da fumaça 1).

Quando destruir, a condicional requer a ID da fumaça, e isto irá destruir o foguete e a fumaça mesma ID.

Por que todas as IDs são realmente únicas, você não precisa se importar mais com problemas de embaralhamento.

A mesma coisa acontece com um monte de assuntos.

Por exemplo, quando um Orc pega uma arma no chão, você pode fazer com que a arma pegada pelo Orc passe a ter a mesma ID, e quando destruir o Orc, destrua a arma também.

Você pode fazer um jogo de poker, dando a cada carta uma ID, onde cada Id pode ser configurada para uma posição do frame para mostrar a carta correta. Agora você também pode embaralhar as cartas sem nenhum problema para destruir elas.

Faça recompensas especiais para monstros únicos, fazendo-os brilhar, fazendo esfeitos invisíveis para os demais se tornarem visíveis sobre algumas condições especiais.

E, meu favorito, isto funciona perfeitamente com Conquistas. ^^

Tudo isto explica o que significa "Encapsular um objeto", mas continua esquecendo de explicar a barra de vida.

Quando você checar que o foguete acertar um inimigo, configure a vida do inimigo para subtrair 1, você está encapsulando o evento para o específico inimigo que foi acertado.

Eu acho que agora cobrimos tudo proposto no título, e desculpe se isto está em uma linguagem muito simples, mas tenho certeza que vai ajudar muitos novatos que estão tendo seus primeiros contatos com o Construct 2!

Este é um novo exemplo de como embaralhar cartas com a manipulação das IDs.

http://www.scirra.com/arcade/example/1837/dealing-with-instance-variables

Mais exemplos:

Manipulando multiplos inimigos, como você pode definir seus IDs e manipular cada um:

Download the CAPX

Live Sample

[https://dl.dropboxusercontent.com/u/47035927/Samples/IDs/sample2/index.html][9]

[https://dl.dropboxusercontent.com/u/47035927/Samples/IDs/sample2/filtering_IDs.capx][10]

Se você tiver qualquer dúvida e necessitar de ajuda, entre em nossa Comunidade Oficial Brasileira, que é afiliada da Scirra e faça um tópico ou utilize nosso shoutbox:

Endereço: igmbrasil.com

  • 0 Comments

  • Order by
Want to leave a comment? Login or Register an account!