[TUTORIAL][INCOMPLETO]Objetos
2 participantes
TeaM KingS :: Games: :: Warcraft: World Editor :: Tutoriais: Gui, Jass, Spells, Terrain, Modelagem, Textura :: Lógica
Página 1 de 2
Página 1 de 2 • 1, 2
[TUTORIAL][INCOMPLETO]Objetos
Esse tutorial é um tutorial que tem como objetivo a introdução do uso de objetos em linguagens de programação, ou seja, usar a caracteristica de uma linguagem ser orientada a objeto
de forma relativamente efetiva, é fundamental que você esteja familiarizado com noções de linguagem de programção, como variáveis e seus usos e funções com parâmetros.
O uso de objetos são características de linguagens de programação orientada a objeto.
Com 'orientado a objeto' se quer dizer que toda ação/elemento é um componente de um corpo abstrato com características e funções. Assim como rodas, pedais,
volantes são componentes do objeto automóvel . A partir dai a ideia de programação orientada a objetos e as possibilidades inimagináveis através disto.
Desta forma, trabalhar com um código tem se tornado algo mais simples, possível e até divertido, que após a criação dos objetos, se tenha a facilidade de
manipulação semelhante a do object editor (forma de edição no WE), apenas imaginando em sua mente um objeto em que o código apenas descreve suas características.
Claro que como se trata de programação a aplicação disto é um tanto trabalhosa por motivos óbvios.
Para este tutorial eu tenho estudado também, afinal se eu quero ensinar algo, tenho que estar apto a ensina-lo. A linguagem que usarei como exemplo é a linguagem JavaScript, conhecida
entre a comunidade de programadores como a linguagem que extende a Html, que é uma linguagem de programação que cria paginas web visuais, tendo como principal deficiencia a sua falta
de contextos de lógica. A javascript é exatamente isso, a lógica na Html e é necessário para a execução de Javascript, uma página .html em um navegador.
Como usarei Javascript, tenho que falar um pouco dela, suas características como síntese, sistema de variáveis e sua interação com html. (Caso já esteja um tanto familiarizado com js, pode pular essa parte)
1.0 ; , " com ' e {}
Javascript contem uma sintese de comandos em que se usa "{" e "}" para delimitação de cadeia de comandos sendo essas em repetições como em blocos de código, ";" para separação
de comandos e a possibilidade de usar algo como " 'a' " , em que as aspas simples dentro da sequencia não anula as aspas duplas simplismente pela sua organização, assim como ' "a" '.
Exemplo:
3. "2+2=4" : diferente do 2+2=4 da condição essa conta é ignorada por estar entre "" , mas acho que já sabem XD
4. ";" : ";" no final do comando neste caso não é exatamente necessário por ser o último da lista de comandos;
2.0 Variáveis e funções
Primeiramente, uma observação interessante, mesmo que igual a outras linguagens, função retorna um valor, seja ele nulo ou não, o que é estranho é que ate mesmo na sua declaração,
uma função pode ser igual a uma variável, antes de um exemplo disso, um exemplo de função normal e de uma variável.
função
3.0 Objeto
objeto em linguagem de programção tem a seguinte sintese de uso (no caso eu estou usando em js)
O sistema de uso de componentes de um objeto funciona quase como uma organização por endereço, você "entra" no objeto para realizar uma ação
não sendo possível algo como
Bem, agora vou explicar a "graça" de usar objetos em programação. Bem, podemos ter dois copos, os dois objetos se chamam copos, certo? Mas um copo pode ser maior que o outro, outra
cor, etc... Em programação é o mesmo, vamos ver na prática:
Você acha que acontece o que? Os dois últimos comandos manda uma mensagem com uma caracteristica do carro, um é azul e o outro vermelho.
Sintese estranha né? para um objeto, uma aparência igual a uma função, mas não tema, tem formas diferentes de escrever um objeto em js, mesmo que todos levam a mesma coisa, mudando apenas a abordagem
4.0 Manipulação de objetos e suas interações [BREVE]
TUTORIAL EM CONSTRUÇÂO, SUGESTÕES ACEITAS, CRÍTICAS MALDOSAS RECUSADAS PELO SIMPLES MOTIVO DE NÃO ESTAR PRONTO, SE ESTÁ SE PERGUNTANDO POR QUE EU JÁ POSTEI O TUTORIAL INCOMPLETO, É POR QUE SE NÃO EU ESQUEÇO XD.
de forma relativamente efetiva, é fundamental que você esteja familiarizado com noções de linguagem de programção, como variáveis e seus usos e funções com parâmetros.
O uso de objetos são características de linguagens de programação orientada a objeto.
Com 'orientado a objeto' se quer dizer que toda ação/elemento é um componente de um corpo abstrato com características e funções. Assim como rodas, pedais,
volantes são componentes do objeto automóvel . A partir dai a ideia de programação orientada a objetos e as possibilidades inimagináveis através disto.
Desta forma, trabalhar com um código tem se tornado algo mais simples, possível e até divertido, que após a criação dos objetos, se tenha a facilidade de
manipulação semelhante a do object editor (forma de edição no WE), apenas imaginando em sua mente um objeto em que o código apenas descreve suas características.
Claro que como se trata de programação a aplicação disto é um tanto trabalhosa por motivos óbvios.
Para este tutorial eu tenho estudado também, afinal se eu quero ensinar algo, tenho que estar apto a ensina-lo. A linguagem que usarei como exemplo é a linguagem JavaScript, conhecida
entre a comunidade de programadores como a linguagem que extende a Html, que é uma linguagem de programação que cria paginas web visuais, tendo como principal deficiencia a sua falta
de contextos de lógica. A javascript é exatamente isso, a lógica na Html e é necessário para a execução de Javascript, uma página .html em um navegador.
Como usarei Javascript, tenho que falar um pouco dela, suas características como síntese, sistema de variáveis e sua interação com html. (Caso já esteja um tanto familiarizado com js, pode pular essa parte)
1.0 ; , " com ' e {}
Javascript contem uma sintese de comandos em que se usa "{" e "}" para delimitação de cadeia de comandos sendo essas em repetições como em blocos de código, ";" para separação
de comandos e a possibilidade de usar algo como " 'a' " , em que as aspas simples dentro da sequencia não anula as aspas duplas simplismente pela sua organização, assim como ' "a" '.
Exemplo:
- Código:
if (2+2=4) { alert("2 + 2 = 4!!! ¬¬' ('incrível') ");}
- Código:
if (condição)
{
comandos
}
else
{
else comandos
}
3. "2+2=4" : diferente do 2+2=4 da condição essa conta é ignorada por estar entre "" , mas acho que já sabem XD
4. ";" : ";" no final do comando neste caso não é exatamente necessário por ser o último da lista de comandos;
2.0 Variáveis e funções
Primeiramente, uma observação interessante, mesmo que igual a outras linguagens, função retorna um valor, seja ele nulo ou não, o que é estranho é que ate mesmo na sua declaração,
uma função pode ser igual a uma variável, antes de um exemplo disso, um exemplo de função normal e de uma variável.
função
- Código:
function Nome_da_Função(Parametros)
{
comandos...
}
com o chamado da função
Nome_da_Função(parametros);
- Código:
var variável = valor ;
No caso de dentro de um objeto como membro (nao se preocupe com esses termos : membro e o this. )
this.variavel = valor;
- Código:
var nomeDeFuncao = function(paramentros) {
comandos
}
com seu chamado também
nomeDeFuncao();
3.0 Objeto
objeto em linguagem de programção tem a seguinte sintese de uso (no caso eu estou usando em js)
- Código:
var Objeto = function() {
var AcaoDoObjeto = function()
{
comandos...;
}
}
var NomeDoObjeto = new Objeto(); //aqui criamos um novo objeto com o nome NomeDoObjeto
NomeDoObjeto.AcaoDoObjeto(); //onde nos executamos uma ação que o objeto faz
O sistema de uso de componentes de um objeto funciona quase como uma organização por endereço, você "entra" no objeto para realizar uma ação
não sendo possível algo como
- Código:
var Objeto = function() {
var acaoDoObjeto = function()
{
comandos...;
}
}
var obj = new Objeto();
acaoDoObjeto(); //erro ao tentar executar essa função do objeto , por que tem que pegar a ação de um objeto por causa de possíveis mudanças de um objeto para outro.
Bem, agora vou explicar a "graça" de usar objetos em programação. Bem, podemos ter dois copos, os dois objetos se chamam copos, certo? Mas um copo pode ser maior que o outro, outra
cor, etc... Em programação é o mesmo, vamos ver na prática:
- Código:
var Carro = function(cor)
{
this.corDoCarro = cor;
}
var teste = new Carro('azul');
var teste2 = new Carro('vermelho');
alert(teste.corDoCarro());
alert(teste2.corDoCarro());
Você acha que acontece o que? Os dois últimos comandos manda uma mensagem com uma caracteristica do carro, um é azul e o outro vermelho.
Sintese estranha né? para um objeto, uma aparência igual a uma função, mas não tema, tem formas diferentes de escrever um objeto em js, mesmo que todos levam a mesma coisa, mudando apenas a abordagem
- Código:
var Obj = function() {
this.acao = function(){}
} //jeito mais simples e sem adcionais
var Obj2 = new Object(); //jeito mais prático, porem depende de uma bliblioteca adicional
Obj2.prototype = {
initialize : function(){}
}
Obj2.prototype.acao = function() {}
4.0 Manipulação de objetos e suas interações [BREVE]
TUTORIAL EM CONSTRUÇÂO, SUGESTÕES ACEITAS, CRÍTICAS MALDOSAS RECUSADAS PELO SIMPLES MOTIVO DE NÃO ESTAR PRONTO, SE ESTÁ SE PERGUNTANDO POR QUE EU JÁ POSTEI O TUTORIAL INCOMPLETO, É POR QUE SE NÃO EU ESQUEÇO XD.
Última edição por Iky em 2012-05-19, 00:25, editado 1 vez(es)
Re: [TUTORIAL][INCOMPLETO]Objetos
Um conselho, use uma lingaguem como java ou c#. Ensinar o paradigma de orientação de objetos usando uma pseudo-linguagem não fica muito legal ou intuitivo, ao meu ver.
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32044
Re: [TUTORIAL][INCOMPLETO]Objetos
bills, antes de continuar meu tuto aqui, to com uma perguntinha, o por que do uso do struct extends array? é para poder sobrescrever as funções create e o destroy?
Re: [TUTORIAL][INCOMPLETO]Objetos
Se eu criar uma struct comum, ainda sim poderei sobreescrever os methods create e destroy. As structs que extendem array é a maneira em vjass de você criar um objeto sem nenhuma variavel ou method.
Como voce deve saber, de vez em quando não precisamos que o objeto tenha construtor.
Mas o real motivo do povo do hive usar muita struct extends array, é que os methods create e destroy de uma struct comum do vjass são super obsoletos, acabam gerando muito lixo.
Nestharus explica isso nesse tópico:
http://www.hiveworkshop.com/forums/jass-ai-scripts-tutorials-280/coding-efficient-vjass-structs-187477/
Como voce deve saber, de vez em quando não precisamos que o objeto tenha construtor.
Mas o real motivo do povo do hive usar muita struct extends array, é que os methods create e destroy de uma struct comum do vjass são super obsoletos, acabam gerando muito lixo.
Nestharus explica isso nesse tópico:
http://www.hiveworkshop.com/forums/jass-ai-scripts-tutorials-280/coding-efficient-vjass-structs-187477/
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32044
Re: [TUTORIAL][INCOMPLETO]Objetos
decidi qual linguagem usarei aqui no tuto, é uma linguagem que gosto muito, javacript
Re: [TUTORIAL][INCOMPLETO]Objetos
Iky escreveu:decidi qual linguagem usarei aqui no tuto, é uma linguagem que gosto muito, javacript
Iky, não estou de perseguição, ok? Mas javascript não é uma linguagem totalmente orientada, não possui herança, não tem sobrecarga de metodos, emcampsulamento, etc. Posso estar errado, pode ter algumas dessas coisas que falei, não tenho conhecimento tão aprofundado em js. Uma pequena comparação pode fazer você entender o que eu quero te dizer:
Uma simples classe Cachorro em Java
- Código:
public class Cachorro{
public void latir(){
System.out.print("auau");
}
}
Já em js...
- Código:
function Cachorro(){
this.latir = function(){
alert("auau");
}
}
Em js, classes são funções dentro de funções algo pouco intuitivo para quem nunca viu programação orientada ou deve ser pior para quem nunca viu nada de programação.
Sugiro mesmo voce usar as linguagens orientadas mais famosas e intuitivas como C++, C# ou Java. Eu como fã de java aconselho-a.
Mas termina isso ai logo iky, tenho cede por conhecimento.
@edit
Fique a vontade para continuar com js, até por que não sei muito sobre a linguagem e voce pode acabar me ensinando mais sobre ela.
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32044
Re: [TUTORIAL][INCOMPLETO]Objetos
em js tem 3 formas de classe, a vc postou é a mais simples e infuncional, a mais funcional que eu pretendo usar é
^^
mas usarei java tb, relax
- Código:
var obj = new Object();
obj.prototype = {
initiliaze : function(){
alert('teste de objeto criado');
}
}
- Código:
function Classe(){
function create(){
var obj = new Classe();
return obj;
}
}
- Código:
var teste = new Classe.create()
^^
mas usarei java tb, relax
Re: [TUTORIAL][INCOMPLETO]Objetos
Ficarei à espera entao.
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32044
Re: [TUTORIAL][INCOMPLETO]Objetos
eu tava testando objetos com javascript, me empolguei e hj eu fiz isso
Última edição por Iky em 2012-05-18, 15:24, editado 1 vez(es)
Re: [TUTORIAL][INCOMPLETO]Objetos
Não consegui testar esse código. Mas se minha intuição estiver certa, isso cria elementos com borda.
Uma dica, quando for postar código para outros ou até mesmo quando voce estiver desenvolvendo, evite uns nomes como bid,t,l,w, etc... É ruim de mais ler código assim.
Uma dica, quando for postar código para outros ou até mesmo quando voce estiver desenvolvendo, evite uns nomes como bid,t,l,w, etc... É ruim de mais ler código assim.
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32044
Re: [TUTORIAL][INCOMPLETO]Objetos
Não consegio usar o código? Como assim? É só colocar o texto dentro de um documento html e rodar isso nao cria bordas não, eu quero criar bloquinhos facilmente manipulavéis e com tempo uns minijogos envolvendo, to com umas ideias
(obs:esse code foi testado no win7 no firefox e chrome em suas ultimas versões, verifique se seu navegar se não está bloqueando javascript)
(obs:esse code foi testado no win7 no firefox e chrome em suas ultimas versões, verifique se seu navegar se não está bloqueando javascript)
Re: [TUTORIAL][INCOMPLETO]Objetos
Hmm agora que eu apenas colei o codigo, apareceu um tijolo cinza na pagina. Só não entendi essa do script fora do head/body.
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32044
Re: [TUTORIAL][INCOMPLETO]Objetos
é o systema de leitura de navegadores, carrega tag por tag, se eu colocar o script antes do final do body da erro ^^'
atualizei o script, ta bem melhor (erros de projeto)
vai testando as funções ai, to querendo criar um bom objeto
atualizei o script, ta bem melhor (erros de projeto)
vai testando as funções ai, to querendo criar um bom objeto
Re: [TUTORIAL][INCOMPLETO]Objetos
Dentro da tag body, aqui em casa, funciona direitinho.
Mas e o tutorial? Desistiu?
Mas e o tutorial? Desistiu?
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32044
Re: [TUTORIAL][INCOMPLETO]Objetos
update do script
estabilização de objetos quase concluida
@bills sim, vou continuar o tuto, nao se preocupe
estabilização de objetos quase concluida
@bills sim, vou continuar o tuto, nao se preocupe
Re: [TUTORIAL][INCOMPLETO]Objetos
Vou te dar um conselho, como você começou usando um exemplo de objeto carro, vá incrementando ele e continue com ele até não poder mais. Assim o leitor se familiariza com esse exemplo.
@edit
que coisa feia, moderador fazendo double post kkkkkkk
@edit
que coisa feia, moderador fazendo double post kkkkkkk
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32044
Re: [TUTORIAL][INCOMPLETO]Objetos
vlw pelo conselho, vou fazer isso mesmo, usar carro como exemplo
off
double post é inevitavel para saberem que tem algo novo no post, mas agora que vc vio e postou, vou editar
off
double post é inevitavel para saberem que tem algo novo no post, mas agora que vc vio e postou, vou editar
Re: [TUTORIAL][INCOMPLETO]Objetos
kkkkkkkkkkkk Lembro que no blizzeditors laiev tinha coloca um botão que dava UP no tópico.
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32044
Re: [TUTORIAL][INCOMPLETO]Objetos
eu descobri uma coisa interessante no javascript, um efeito de textmacro
- Código:
var teste = "funcao";
window[teste] = function() {
alert(teste);
Re: [TUTORIAL][INCOMPLETO]Objetos
Isso não é apenas um vetor com indice de string?
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32044
Re: [TUTORIAL][INCOMPLETO]Objetos
nao, nao, isso acima é meio como um
"teste" = valor;
manipulando o nome da variável como um valor
"teste" = valor;
manipulando o nome da variável como um valor
Re: [TUTORIAL][INCOMPLETO]Objetos
Para mim voce fez apenas
- Código:
teste = 'funcao'
window['funcao'] = function(){
alert(teste);
}
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32044
Re: [TUTORIAL][INCOMPLETO]Objetos
imagine isso
- Código:
teste = "alert";
alert(window["teste"]);
Re: [TUTORIAL][INCOMPLETO]Objetos
Ah entendi kkkk
Eu só conhecia nessa sintaxe:
Na sabia que window[] servia para os objetos. Bom saber =)
Eu só conhecia nessa sintaxe:
- Código:
x = {
name: "jack"
}
alert(x['name']);
Na sabia que window[] servia para os objetos. Bom saber =)
Bills- Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32044
Re: [TUTORIAL][INCOMPLETO]Objetos
é isso msm
window é uma array que lista todos os elements js, o macete ta na indexagem que pode ser feita por string, mas é por causa disso aqui oh
olha so o que eu tava fazendo ontem de madrugada
window é uma array que lista todos os elements js, o macete ta na indexagem que pode ser feita por string, mas é por causa disso aqui oh
- Código:
x = {
'name': "jack"
}
alert(x['name']);
olha so o que eu tava fazendo ontem de madrugada
Página 1 de 2 • 1, 2
TeaM KingS :: Games: :: Warcraft: World Editor :: Tutoriais: Gui, Jass, Spells, Terrain, Modelagem, Textura :: Lógica
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos