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

1
  • 0 favourites

Tagged

Stats

6,742 visits, 6,847 views

Tools

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!