TeaM KingS
[center]Ola Convidado, seja bem vindo ao TeaM KingS !

Nós temos tutoriais sobre o WarCraft World Editor: se você tiver alguma duvida pode perguntar que os moderadores ou membros experientes vão lhe ajudar.

Para melhor utilizar nossos recursos é extremamente recomendado que esteja logado em nosso fórum e que leia o nosso regulamento oficial.

Também temos fóruns sobre DotA AllstarS, com guias, estratégias, e muito mais!




Participe do fórum, é rápido e fácil

TeaM KingS
[center]Ola Convidado, seja bem vindo ao TeaM KingS !

Nós temos tutoriais sobre o WarCraft World Editor: se você tiver alguma duvida pode perguntar que os moderadores ou membros experientes vão lhe ajudar.

Para melhor utilizar nossos recursos é extremamente recomendado que esteja logado em nosso fórum e que leia o nosso regulamento oficial.

Também temos fóruns sobre DotA AllstarS, com guias, estratégias, e muito mais!


TeaM KingS
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

vJass tuts #2 - Struct (parte 1)

Ir para baixo

vJass tuts #2 - Struct (parte 1) Empty vJass tuts #2 - Struct (parte 1)

Mensagem por Bills 2013-11-04, 17:13

vJass tuts #2 - Struct (parte 1)
Nesse tutorial vou começar a ensinar sobre structs. Com as structs você poderá criar seus próprios tipos. Tipos? Sim, tipos. Tipos como unit, item, effect, etc... Vou dar um exemplo logo de cara. Vamos criar um simples tipo "cachorro":

Código:
struct Cachorro
endstruct
Pronto criamos nosso tipo Cachorro, fácil né!? Apenas digitamos struct e o nome do tipo (no nosso caso, Cachorro). O endstruct é como o endfunction, serve para indicar o final da struct. 
Bom, Agora podemos criar váriaveis do tipo Cachorro. E o que nosso cachorro faz? Por enquanto nada. Então vamos mandar ele fazer algo? Que tal "latir"?

Código:
library Tutorial2

  struct Cachorro

    method latir takes nothing returns nothing
      call BJDebugMsg("au au")
    endmethod

  endstruct

endlibrary
Agora entre o struct e o endstruct criamos uma library para nosso cachorro e além disso, agora há alguns código dentro da struct. Esses códigos podem ser métodos (method) ou propriedades (váriaveis). Os métodos são funções, porém são funções que pertencem apenas à aquela struct. Por exemplo, para chamar a função (método) latir você precisa de um cachorro. 
Vamos agora testar nosso cachorro. Usando o código anterior, coloque o código abaixo antes do endlibrary:

Código:
function TestarCachorro takes nothing returns nothing
  // tudo que é escrito depois de "duas barras" não é executado pelo jogo.
  // em programação chamamos essas linhas de comentários

  // na linha abaixo, declaramos uma "váriavel local" do tipo Cachorro
  // uma variavel local é uma variavel que só existe dentro daquela função
  // cria uma variavel local desse jeito: 
  //  local   tipo        nome
      local   Cachorro    NossoCachorro

  // agora setamos a variavel com um novo Cachorro.
  // escrever Cachorro.create() significa que você está chamando o construtor dele
  // um construtor cria (create) um objeto do tipo daquela struct
  // após criar o objeto, o construtor retorna ele
  // assim setamos esse objeto retornado na nossa váriavel
  set NossoCachorro = Cachorro.create()

  // agora que temos nosso cachorro criado vamos mandar ele latir
  call NossoCachorro.latir()

  // agora para finalizar mude a linha da library Tutorial2 para:
  // library Tutorial2 initializer TestarCachorro
endfunction
Agora salve seu mapa e teste ele. Assim que o jogo começar irá aparecer na sua tela "au au".

É bom você saber que toda vez que você chamar um construtor ele retorna um "novo" objecto. Por exemplo:

Código:
set cachorro1 = Cachorro.create()
set cachorro2 = Cachorro.create()
No código acima cachorro1 é diferente do cachorro2. Você, por exemplo, podia destruir o cachorro1 e nada aconteceria com o cachorro2.
Falando em destruir, toda struct também tem um destrutor. Ele serve para destruir aquele objeto. Você destroi objetos quando não precisa mais deles. Veja como usar o destrutor:


Código:
call cachorro1.destroy()
Note que para destruir o objeto você deve usar a váriavel onde o objeto foi guardado.


Bills escreveu:Galera dessa vez vai ser só isso. Quero ressaltar que essa parte de structs é um pouco confusa. Então se vc estiver tendo dúvidas, poste sobre ela. Mas pratique... crie seus próprios códigos testando as coisas que ensinei nesse tutorial. Quer uma dica? Faça uma struct Gato e crie um método para ele miar ou crie mais métodos para o cachorro, etc.

Em breve posto a segunda parte.
Até!
Bills
Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 31124

Warning Necropost
vJass tuts #2 - Struct (parte 1) Left_bar_bleue35 / 10035 / 100vJass tuts #2 - Struct (parte 1) Right_bar_bleue


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos