Strelok 0 Denunciar post Postado Setembro 6, 2011 Esse código é muito importante para mim. Estou tentando aprender AS3 voltado à jogos. E encontrei alguns tutoriais de flash que utilizam uma antiga linguagem, acho que é flash 5. fscommand ( "allowscale", false ); tileW = 16; tileH = 16; myMap = [ [1,1,1,1,1,1,1,1], [1,0,0,0,0,0,0,1], [1,0,1,0,0,0,0,1], [1,0,0,0,0,1,0,1], [1,0,0,0,0,0,0,1], [1,1,1,1,1,1,1,1] ]; function buildMap (map) { var mapWidth = map[0].length; var mapHeight = map.length; for (var i = 0; i < mapHeight; ++i) { for (var j = 0; j < mapWidth; ++j) { this.attachMovie("tile", "t_"+i+"_"+j, ++d); this["t_"+i+"_"+j]._x = (j*tileW); this["t_"+i+"_"+j]._y = (i*tileH); this["t_"+i+"_"+j].gotoAndStop(map[i][j]+1); } } } buildMap (myMap); Gostaria que, se possivel, alguém traduzisse esse código do flash 5 ao AS3. Já que sou iniciante seria uma mão na roda para mim. Compartilhar este post Link para o post Compartilhar em outros sites
Daniel o rei 14 Denunciar post Postado Setembro 6, 2011 import flash.system.fscommand;//importa a classe fscommand import flash.display.MovieClip ; //importa a classe movieclip fscommand ( "allowscale", "false" );//os dois parametros são string var tileW:Number = 16; var tileH:Number = 16; var myMap:Array = [ [1,1,1,1,1,1,1,1], [1,0,0,0,0,0,0,1], [1,0,1,0,0,0,0,1], [1,0,0,0,0,1,0,1], [1,0,0,0,0,0,0,1], [1,1,1,1,1,1,1,1] ]; //ao declarar a variavel tem que colocar o tipo da variavel var mcarray:Array ;//nessa variavel estaram os movieclips, igual ao mymap só que com movieclips function buildMap (map) { var mapWidth:Number = map[0].length; var mapHeight:Number = map.length; for (var i:Number = 0; i < mapHeight; ++i) { for (var j:Number = 0; j < mapWidth; ++j) { mcarray[i] = []; mcarray[i][j] = new MovieClip();//cria movieclip, vasio, //this.attachMovie("tile", "t_"+i+"_"+j, ++d); addChild( mcarray[i][j]); //coloca no palco mcarray[i][j].x = (j*tileW) ;//propriedades _x e _y não começão com _(underline) mcarray[i][j].y = (i*tileH) ; mcarray[i][j].gotoAndStop() ; //essa parte não intendi /* this["t_"+i+"_"+j]._x = (j*tileW); this["t_"+i+"_"+j]._y = (i*tileH); this["t_"+i+"_"+j].gotoAndStop(map[i][j]+1); */ } } } buildMap(myMap); Nâo sei se ta funcionando mas é mais ou menos assim que ficaria Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Setembro 7, 2011 Só corrigindo a linguagem não é flash 5 nem 4. A linguagem é actionscript, e no seu exemplo as2. Abs Compartilhar este post Link para o post Compartilhar em outros sites
Strelok 0 Denunciar post Postado Setembro 8, 2011 O que o código faz ou deveria fazer, basicamente, é desenhar um tilemap 8x6 bidimensional, usando aquela array: var myMap:Array = [ [1,1,1,1,1,1,1,1], [1,0,0,0,0,0,0,1], [1,0,1,0,0,0,0,1], [1,0,0,0,0,1,0,1], [1,0,0,0,0,0,0,1], [1,1,1,1,1,1,1,1] ]; A lógica básica do programa eu até que entendo. Mas não consigo entender a fundo como o programa poderia funcionar. Estes seriam os passos, mais ou menos: Cria uma array bidimensional de 8x6 Define dois números na array, 1 para tiles pretos(parede) e 0 para tiles brancos(caminho) A array mapa(array maior 8x6) é basicamente criada por 6 arrays com 8 elementos (isto serve para designar coordenadas X e Y Faz com que apareçam tiles pretos nos 1 e brancos nos 2 Imprime a imagem na tela Basicamente é isto; mas eu não consigo entender como ele consegue posicionar as imagens(que eu criarei) na tela baseando-se nas arrays. Compartilhar este post Link para o post Compartilhar em outros sites
Daniel o rei 14 Denunciar post Postado Setembro 9, 2011 Nas propriredades dos mcs da parede e chao marca "export for actionscript" e em "class" coloque seu nome(nesse script é parede e chao) for (var i:Number = 0; i < mapHeight; ++i) { mcarray[i] = [];//eu tinha colocado isso no lugar errado for (var j:Number = 0; j < mapWidth; ++j) { if(map[i][j] == 0){ mcarray[i][j] = new chao(); }else if(map[i][j] == 1){ mcarray[i][j] = new parede(); } //this.attachMovie("tile", "t_"+i+"_"+j, ++d); addChild( mcarray[i][j]); //coloca no palco mcarray[i][j].x = (j*tileW) ;//propriedades _x e _y não começão com _(underline) mcarray[i][j].y = (i*tileH) ; mcarray[i][j].gotoAndStop() ; //essa parte não intendi /* this["t_"+i+"_"+j]._x = (j*tileW); this["t_"+i+"_"+j]._y = (i*tileH); this["t_"+i+"_"+j].gotoAndStop(map[i][j]+1); */ } } ////////////// Eu nem me liguei que ele falou "flash 5 ao as3". Eu só usei actionscript 2 no flash mx e 8. Compartilhar este post Link para o post Compartilhar em outros sites