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