SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida :D
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Erro após reinstalar o Unity!
Erro ao publicar na google play
como fazer a luz ficar "important" e "not important" por script?
[TUTORIAL] Sistema de Entregas + GPS!
[TUTORIAL] Desenvolvendo um jogo de quebra-cabeças
duvida sobre sistema de cheats estilo gta sa
[Tutorial] Gerando Objetos Proceduralmente
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
COMO EXECUTAR AUDIO QUANDO PLAYER MORRE
[____ASSET____] MS Vehicle System (FREE VERSION)
[TUTORIAL] Unity 5.5 - Splash Screen
SOU MODELADOR SE TIVER ALGUEM PRECISANDO AI ME CONTATE
Como bloquear rotação em um eixo do objeto?
Como adicionar todos materiais de um Obj em um Array ou Lista?
PopUp bloqueando versões antigas do jogo
[____ QUAL A OPINIÃO DE VOCÊS SOBRE O FÓRUM? ____]
[TUTORIAL] Sistema de PORTAS e CHAVES
Movimentação 3D View Blender
Som não funciona no IOS
Requisitos de hardware para Post Processing
Imagem Aparecer como pergunta
Aparecer item comprado
Por que a UI da esse "BUG"?
Zerar os tempos do Cronometro Unity
Ajuda na unity
Girar personagem no próprio eixo usando joystick virtual
Problema com Esqueleto do personagem
PRESSIONAR BOTÃO TOUCH NO ANDROID SERÁ O MESMO QUE PRESSIONAR UMA TECLA DO TECLADO REAL
Quanto Devo Cobrar Por Um Pacote De Modelos 3D ?
Script de Contagem Regressiva
Ajuda com o codigo.
Como acessar uma variável de um script utilizando como parâmetro uma variável nomescript
CRIEI MEU PRIMEIRO JOGO! 1 ANO DE TRABALHO!
Como eu faço pra poder interagir apenas uma vez com um objeto de luz?
MOVIMENTAÇAO DE UM CUBO
Duvida sobre materiais e textura
Super Husky - meu jogo
Duvida sobre Unity
[Em Desenvolvimento] Battles of Worlds
Dúvida de imagem sobre realidade aumentada
Converter string em virgula em float (decimal)
[TUTORIAL] Como usar FREE EASY CRIATURA CONTROLE IA
Duvida em relação processo de geração de receita
Preciso de ajuda com GetButtonDown with Axis
Me ajudem por favor
Detectando Colisão da Arma com o Inimigo
Como posiciono meu interestial admob pra aparecer apenas quando o personagem morrer?
Como eu faria pra ter uma animação diferente para cada lado em um jogo de plataforma 2D?
JOGO DE CARRO EM 2D E PRECISO DE AJUDA EM SCRIPT QUE VAI PRA FRENTE E PRA TRAZ
[RESOLVIDO] Abrir Tampa Ao Apertar o Botão do Mouse
Problemas com .blend para unity
Assetion faled on expression: SUCCEEDED(hr)´
[RESOLVIDO] Raycast que seque o player
OBJETO CONTINUAR FLUTUANDO TENDO RAGDOLL
[TUTORIAL] Roleta de Premios
COMO INTRODUZO O NPC NO VEÍCULO UTILIZANDO O MS VEHICLE SYSTEM?
Duvida - Tilemap
[TUTORIAL] Salvar a última posição do personagem ao trocar de cena
Sistema de codigos utilizando PlayerPrefs
[Duvida] Jogo Futebol - Fisica
[RESOLVIDO] Visual Studio não se auto-completa
[RESOLVIDO] Não consigo somar o PlayerPrafs do meu game
[RESOLVIDO] AJUDA COM SCRIPT COLETAR 8 PEÇAS PARA ABRIR PORTA
Conta desenvolvedor android
[RESOLVIDO] Criando terreno para mobile
SnowFall
Erro no Script
AJUDA COM PROBLEMA QUANDO INIMIGO MORRE
[Duvida] Como Edito uma animação do Mixamo ?
Sea Ruler
Tem como texturizar apenas uma face do cubo no Unity?
[RESOLVIDO] Light moba style
[RESOLVIDO] Problema com script básico
Por que o unity não está abrindo? Grizzly 2.3.30? Request failed?
[DÚVIDA] Fazer um zumbi..
[RESOLVIDO] Como Fasso Para O HingeJoint Virar em Duas Direçoes?
[RESOLVIDO] Obter um valor ne uma lista
Duvidas sobre Programação, Banco de Dados, PHP/XML em Unity, Json ou PlayerPrefs?
[RESOLVIDO] Quando dou BAKE na cena, as sombras dos objetos somem!
SkyBox Lerp
Como fazer pro meu tiro matar o inimigo?
[ARTIGO] Inteligência Artificial para Jogos
[TUTORIAL] Unity 5 - Wheel Collider, veículos, suspensão realista.
dança
Caixa de notificações
SCRIPT DE INTELIGENCIA ARTIFICIAL PARA ZUMBI, DESVIAR DE OBJETOS E ATACAR JOGADOR
Script faz a função tudo certo na unity, já quando gero apk o script não faz a função
[RESOLVIDO] Script não funciona corretamente, qual seria o problema?
Qual o nome das funções prontas no Unity (transform, linecast)
Arquivos com Casa, arvores, Gramas, Objetos3d Etc...
Novo App Maquininha Virtual
Shader com efeito de dissolução
[TUTORIAL] Sistema de DIA E NOITE completo, com luzes noturnas e SISTEMA DE NUVENS
Formação de Equipe ( Favela Killer)
Movimentação com RigidBOdy2D dando travadinhas
Como Configurar a Unity, para que modifique o seu Eixo?
Pegar Valor int, Como?
POSSO PUBLICAR MEUS JOGOS USANDO VERSÃO GRATUITA DESSA ENGINE...
Parceria em game 2D
Hoje à(s) 12:04 pm
Hoje à(s) 12:02 pm
Hoje à(s) 10:06 am
Hoje à(s) 10:02 am
Hoje à(s) 9:46 am
Ontem à(s) 11:53 pm
Ontem à(s) 9:42 pm
Ontem à(s) 9:20 pm
Ontem à(s) 8:17 pm
Ontem à(s) 1:04 pm
Ontem à(s) 2:01 am
Dom Jun 16, 2019 6:02 pm
Dom Jun 16, 2019 2:43 pm
Dom Jun 16, 2019 2:16 pm
Dom Jun 16, 2019 1:16 pm
Dom Jun 16, 2019 4:33 am
Dom Jun 16, 2019 4:03 am
Sab Jun 15, 2019 5:52 pm
Sab Jun 15, 2019 3:16 pm
Sab Jun 15, 2019 2:43 pm
Sab Jun 15, 2019 1:43 pm
Sab Jun 15, 2019 12:01 am
Sex Jun 14, 2019 10:47 pm
Sex Jun 14, 2019 9:39 pm
Sex Jun 14, 2019 9:20 pm
Sex Jun 14, 2019 8:56 pm
Sex Jun 14, 2019 8:31 pm
Sex Jun 14, 2019 8:18 pm
Sex Jun 14, 2019 8:12 pm
Sex Jun 14, 2019 7:09 pm
Sex Jun 14, 2019 6:26 pm
Sex Jun 14, 2019 8:59 am
Sex Jun 14, 2019 5:25 am
Qui Jun 13, 2019 7:42 pm
Qui Jun 13, 2019 7:33 pm
Qui Jun 13, 2019 1:02 pm
Qua Jun 12, 2019 8:26 pm
Qua Jun 12, 2019 5:27 pm
Qua Jun 12, 2019 3:54 pm
Qua Jun 12, 2019 3:01 pm
Qua Jun 12, 2019 2:50 pm
Qua Jun 12, 2019 12:13 pm
Ter Jun 11, 2019 5:26 pm
Ter Jun 11, 2019 3:47 pm
Ter Jun 11, 2019 3:43 pm
Ter Jun 11, 2019 8:13 am
Seg Jun 10, 2019 12:24 pm
Dom Jun 09, 2019 10:46 pm
Dom Jun 09, 2019 3:19 pm
Dom Jun 09, 2019 2:21 pm
Dom Jun 09, 2019 12:04 pm
Dom Jun 09, 2019 10:42 am
Sab Jun 08, 2019 11:56 pm
Sab Jun 08, 2019 10:52 pm
Sab Jun 08, 2019 10:33 pm
Sab Jun 08, 2019 10:06 pm
Sab Jun 08, 2019 9:41 pm
Sab Jun 08, 2019 8:40 pm
Sab Jun 08, 2019 8:32 pm
Sab Jun 08, 2019 2:00 pm
Sab Jun 08, 2019 12:50 pm
Sab Jun 08, 2019 8:59 am
Sex Jun 07, 2019 8:21 pm
Sex Jun 07, 2019 3:50 pm
Sex Jun 07, 2019 3:39 pm
Qui Jun 06, 2019 10:47 pm
Qui Jun 06, 2019 2:48 pm
Qua Jun 05, 2019 1:48 pm
Qua Jun 05, 2019 10:43 am
Ter Jun 04, 2019 6:35 pm
Ter Jun 04, 2019 3:20 pm
Ter Jun 04, 2019 11:20 am
Seg Jun 03, 2019 3:49 am
Seg Jun 03, 2019 2:31 am
Dom Jun 02, 2019 11:53 pm
Dom Jun 02, 2019 10:01 pm
Dom Jun 02, 2019 12:44 pm
Sab Jun 01, 2019 2:42 pm
Sab Jun 01, 2019 4:32 am
Sex Maio 31, 2019 8:26 pm
Sex Maio 31, 2019 4:02 pm
Sex Maio 31, 2019 12:20 pm
Qui Maio 30, 2019 7:34 pm
Qui Maio 30, 2019 4:29 pm
Qui Maio 30, 2019 4:27 pm
Qui Maio 30, 2019 4:26 pm
Qua Maio 29, 2019 3:42 pm
Qua Maio 29, 2019 10:15 am
Ter Maio 28, 2019 5:40 pm
Ter Maio 28, 2019 2:49 pm
Ter Maio 28, 2019 1:47 pm
Ter Maio 28, 2019 9:37 am
Ter Maio 28, 2019 9:22 am
Ter Maio 28, 2019 8:31 am
Seg Maio 27, 2019 4:53 pm
Seg Maio 27, 2019 3:22 pm
Seg Maio 27, 2019 2:42 pm
Dom Maio 26, 2019 5:58 pm
Dom Maio 26, 2019 11:44 am
slevimk
slevimk
MarceloYBP
JhoowGamer
Diego Felix
kalango studios games
Matrirxp
NKKF
Diego Felix
dkrazor
henriquegusbr
Socates
LúcioHenrique098
ffabim
Diguinho
MarcosSchultz
MarcosSchultz
lesgoy
fjosmoreno
guimaraf
MayLeone
Magnatah
glauco
Magnatah
Magnatah
Magnatah
Magnatah
Magnatah
Magnatah
Magnatah
artplayer
Tegh
fluminintia
diegopds
diegopds
ronigleydson
GameLACK
poyser
Dom3000
numb123
numb123
Unidade3d5
poyser
velho rabugento
JohnRambo
marlok3d
slevimk
mathhBR
Magnatah
williangamesbr4021
Magnatah
Giuliano Neto
hendrick22
MarcosSchultz
Diguinho
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MayLeone
LúcioHenrique098
yurinogueira
yurinogueira
JohnRambo
JohnRambo
NKKF
artplayer
Diego Felix
diegopds
NKKF
ronigleydson
erifmeurer
yurinogueira
luiz12345
gcs13
williangamesbr4021
hendrick22
artplayer
BrazaTattoo
Brian Victor
JohnRambo
Callyde Jr
MarcosSchultz
MarcosSchultz
MarcosSchultz
MarcosSchultz
MayLeone
glauco
Tegh
glauco
fecirineu
fabricadegame
fabricadegame
thales.ulisses
MarcosSchultz
glauco
Tegh
GameLACK
Priste_Hell

[TUTORIAL] Criando Plants Vs Zombies - parte 2

Ir em baixo

TUTORIAL [TUTORIAL] Criando Plants Vs Zombies - parte 2

Mensagem por MayLeone em Qua Maio 30, 2018 5:42 pm

[TUTORIAL] Criando Plants Vs Zombies - parte 2  866c6790c7ffa6d5e6ad895d460af7cf


Clique aqui para ver a parte 1 do tutorial!


Olá, como vão? Nessa segunda parte do tutorial nós iremos desenvolver o nosso zombie do projeto, o inimigo principal do jogo original, então vamos lá?

Iniciando:
Primeiramente traga o sprite do zombie para a cena (através de "Assets" >>  "Sprites PvZ >> Zombies) e coloque o nome desse objeto de "Zombie", agora na janela de assets na pasta de sprites, selecione todos os sprites do zombie (CTRL+A) e vamos aumentar sua resolução na Unity, mudando seus pixels de 100 para 70:


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B1

Aplique a alteração.

Agora volte ao sprite em cena e nele adicione um Rigidbody2D (deixe a escala de gravidade em 0).
Adicione também um box collider2D com a opção "IsTrigger" marcada, e ajeite a colisão de forma que seja da cintura para baixo, desconsiderando a cabeça, já que ela vai ficar em outra parte da grama (o zombie ocupa duas gramas ao mesmo tempo) e para não ser detectado em ambas, sua colisão só ocorre da cintura para baixo:


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B6


Dando CTRL+6  você poderá criar as animações para o objeto.
Para adicionar a animação, crie uma nova com o nome de "ZombieWalking" e traga com o CTRL+A todos os sprites da pasta, deixando o "Samples" em 10:


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B2


Agora crie uma nova animação com o nome de "ZombieAttack" e adicione os sprites da imagem abaixo (para fazer a animação do Zombie comendo):


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B3



Como não temos as animações do Zombie comendo vamos improvisar!
Deixe o "Samples" em 10 também e feche essa janela.

Agora abra o Animator desse objeto e vamos fazer as transições de animações.
Crie um parâmetro booleano com o nome de "isEating":


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B4


Agora faça a transição de "ZombieWalking" para "ZombieAttack" com a condição do parâmetro "isEating" em true (não se esqueça de desmarcar a opção "Has Exit Time").
Faça o mesmo caminho de retorno de "ZombieAttack" para "ZombieWalking" só que agora com a condição "isEating" em false:


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B5


Feche essa janela porque as animações estão configuradas corretamente agora.

Adicione um AudioSource no zombie e nele coloque o áudio "Eating" que é do zombie comendo, e desmarque a opção "Play on Awake" e marque a opção "Loop":


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B7


Todos os componentes do zombie estão aplicados devidamente a ele, falta-nos o seu script:

Movimentando o Zombie:
Agora vamos até a pasta "Scripts" criaremos um C# script chamado "ZombieScript" para esse objeto.
O zombie no jogo possui 3 comportamentos distintos: Andar, comer a planta e morrer, portanto, podemos desenvolver esses três comportamentos nesse mesmo script.
Vamos iniciar com a criação das variáveis: Crie duas variáveis públicas do tipo "float" uma chamada "vel" que vai controlar a velocidade do zombie, e a outra chamada "zombieLife" que vai controlar a sua vida.
Também crie duas variáveis booleanas privadas: Uma chamada "canWalk" que vai gerenciar quando o zombie vai poder andar e uma chamada "canHit" que vai controlar quando ele vai poder comer a planta.
Também vamos precisar de uma variável do tipo "int" chamada "layer" para podermos controlar o layer das plantas na hora da detecção das mesmas, e variáveis do tipo "Rigidbody2D", "Animator" e "AudioSource" para controlar tais componentes.
Dentro do método Start faça com que canHit receba true, "layer" receba o layer chamado "Plants" e com que as variáveis de componentes "AudioSource" e etc recebam seus respectivos componentes:


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B9



Vá até a pasta "Prefabs", selecione as quatro plantas e crie um novo layer chamado "Plants" e coloque-as nesse layer:


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B10

Volte ao script do Zombie.
Defina o método "FixedUpdate" e dentro dela iremos gerenciar se o zombie pode andar ou não.
Caso a variável "canWalk" estiver true, nós iremos adicionar uma velocidade ao seu corpo rígido no eixo X, essa velocidade seria a variável "vel" multiplicada por Time.deltaTime, e caso essa variável estiver false, iremos fazer com que a velocidade volte a ficar zero nos dois eixos (o zombie parará), atribuindo o Vector2.zero:


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B11


O valor de "vel" dentro do Vector2 está negativo porque o zombie se movimenta da direita para esquerda, ou seja, sempre indo para a esquerda, logo, esse valor deve ser negativo, pois se fosse positivo ele iria se movimentar sempre para a direita.
Salve o script (CTRL+S).
Agora selecione o objeto do zombie e através do inspector altere as variáveis de velocidade e vida.
Como esse é o zombie padrão do jogo, eu deixei ele numa velocidade de 6 e a vida em 10, porém conforme você crie outros zombies durante o seu projeto, você pode ir alterando esses valores (deixando os zombies mais resistentes e até mais rápidos).
Também relacione o AudioSource na variável "sound":


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B12


Detectando as plantas:
Agora que controlamos a movimentação do zombie, podemos fazer com que ele coma alguma planta, caso encontre alguma pelo caminho.
Para detectar a planta, podemos criar um método para isso chamado "DetectPlant", e dentro desse método podemos disparar um raycast que sai do zombie, e caso esse raycast colida com um objeto no layer "Plants", o zombie começa a comer a planta, pois nesse layer só teremos elas.
Crie uma variável do tipo "RaycastHit2D" chamada "hit" e faça com que ela receba o método Raycast através da classe "Physics2D".
O raycast será disparado do zombie (transform.position) à sua esquerda sempre, ou seja, Vector2.right negativo, numa curta distância de 0.3f para ser bem rente ao colisor da planta, no layer "Plants":


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B13


Então se o raycast encontrar com algum colisor (ou seja, hit.collider não será nulo) isso significa que ele poderá parar e comer a planta.
Para ele iniciar o ataque à planta, primeiro podemos mudar a sua animação, fazendo com que o parâmetro "isEating" fique true, canWalk vai ficar false, assim o zombie pára e não vai mais se mover, e o som do zombie comendo poderá ser reproduzido.
Caso o raycast não colida com nada, significa que o zombie pode continuar andando, ou seja, paramos o áudio dele comendo, trocamos a animação fazendo com que "isEating" fique false, e podemos fazer com que canWalk e canHit fiquem true, permitindo que o zombie possa andar e possa comer (caso encontre alguma planta):


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B14


Porém, não basta apenas que ele reproduza um áudio e mude a animação para indicar que o zombie está comendo a planta, precisamos de fato retirar a vida da planta cada vez que o zombie a atacar.
Para que não tiremos a vida da planta muito rapidamente e ela vá à 0 em poucos segundos, podemos criar uma corrotina que vai retirando a vida da planta à cada 2 segundos.
Para tal, crie um método que retorne um IEnumetator com o nome de "DelayEat" e que aceita como parâmetro um Collider2D (para sabermos de qual planta iremos retirar a vida).
Dentro desse método chame o yield return new WaitForSeconds(2) e após esses dois segundos retire a vida da planta de acordo com seu collider.
Só que como o método "DetectPlant" irá ser chamado dentro do Update, faremos com que consequentemente a corrotina seja chamada muitos frames por segundo enquanto estivermos colidindo com a planta, então mesmo com a espera de 2 segundos esse tempo não será totalmente respeitado, porque a corrotina vai ser chamada muitas vezes seguidas, então para acabar com esse problema, faça com que a variável "canHit" gerencie quando a corrotina pode ser chamada, ou seja, enquanto estiver true chamaremos ela, do contrário não.
Então dentro do método "DelayEat" já faça com que canHit fique false, e só após os 2 segundos ela voltará a ficar true:


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B15


Para tirar a vida da planta, basta utilizamos o seu collider para identificarmos qual planta de fato colidiu com o raycast do zombie, e depois basta utilizar o script "Properties" que contém a variável "life" da planta e realizar seu decremento para diminuir a vida, ou seja, ela irá perder uma unidade de vida à cada 2 segundos enquanto o zombie colide com ela.

Volte para o "DetectPlant" e chame a corrotina somente se "canHit" for verdadeiro, passando como argumento justamente o collider da planta, ou seja, hit.collider.
Dentro do 'else', faça com que a corrotina pare, assim se a planta já morreu ou foi removida, a corrotina parará de ser chamada:


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B16


Fazendo com que o zombie morra:
Nos próximos tutoriais irei criar o comportamento de cada planta aqui do remake, e isso inclui fazer com que as PeaShooters atirem contra os zombies fazendo com que eles morram, ou seja, precisamos também desenvolver seu terceiro e último comportamento, que seria fazer com que ele morra.
O método é bem simples, basta criá-lo sem retorno com o nome de "CheckDeath" e verificar se a vida dele (zombieLife) é menor ou igual a 0, e caso for, basta destruir o objeto:


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B18


Eu disse que seria bem simples. '-'
Por fim, basta chamar os métodos "DetectPlant" e "CheckDeath" dentro do update e está pronto:


[TUTORIAL] Criando Plants Vs Zombies - parte 2  Untitled%2B19


Salve o script e posicione o zombie em algum local correto da grama e teste o jogo, o resultado deverá ser esse aqui:




Já que tudo está correto, transforme esse objeto em prefab e salve a cena, porque no próximo tutorial iremos desenvolver o comportamento de cada planta, então até lá.
MayLeone
MayLeone
ProgramadorMaster

Feminino PONTOS : 974
REPUTAÇÃO : 255
Áreas de atuação : Unity, C++/C#, HTML, CSS, JS, jQuery, PHP, MySQL, XML, Blender
Respeito as regras : [TUTORIAL] Criando Plants Vs Zombies - parte 2  Aad8pUi

Ver perfil do usuário http://compilemosfacil.blogspot.com.br

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Criando Plants Vs Zombies - parte 2

Mensagem por NKKF em Qua Maio 30, 2018 5:55 pm

Continua incrível Smile , tutoriais tão grandes que dão preguiça só de abrir ;-;
NKKF
NKKF
ProgramadorMaster

Masculino PONTOS : 2455
REPUTAÇÃO : 465
Idade : 14
Áreas de atuação : Error 404 Not Found.
Respeito as regras : [TUTORIAL] Criando Plants Vs Zombies - parte 2  Aad8pUi

Ver perfil do usuário http://www.projetounity.esy.es

Voltar ao Topo Ir em baixo

TUTORIAL Re: [TUTORIAL] Criando Plants Vs Zombies - parte 2

Mensagem por MayLeone em Qua Maio 30, 2018 6:04 pm

@NKKF escreveu:Continua incrível Smile , tutoriais tão grandes que dão preguiça só de abrir ;-;
Até q esse é pequeno em comparação ao anterior kkkkk
Em breve vou fazer esses tutoriais em vídeo, que fica melhor de explicar, mas primeiro preciso de um microfone que preste.  :roll:
MayLeone
MayLeone
ProgramadorMaster

Feminino PONTOS : 974
REPUTAÇÃO : 255
Áreas de atuação : Unity, C++/C#, HTML, CSS, JS, jQuery, PHP, MySQL, XML, Blender
Respeito as regras : [TUTORIAL] Criando Plants Vs Zombies - parte 2  Aad8pUi

Ver perfil do usuário http://compilemosfacil.blogspot.com.br

Voltar ao Topo Ir em baixo

Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum