Os itens são diferentes no que eles realmente fazem. Alguns itens de aumentar sua pontuação, cerca de aumentar a sua saúde ou dar-lhe mais balas. Neste exemplo, todos os itens de fazer apenas uma coisa - eles te dão mais pontos. Seu até você para criar outros tipos de itens.
Vamos começar com o filme a partir do capítulo 6 Abra a porta para que nós não temos muito código para fazer coisas difíceis de entender.
Primeiro desenhe o seu clipe de filme itens. Gráficos Lugar de itens diferentes nos quadros de dentro dele. Como o herói e inimigos, todos os itens devem ser alinhados no centro. No primeiro quadro, adicionar "Pare de ação" para evitar mc de jogar todos os gráficos adoráveis. Certifique-se que esta ligação MC é definido como "Exportar este símbolo" e seu identificador é "itens". Tendo os itens no clipe de filme em separado nos permite colocar mesmo item em qualquer telha de fundo sem a necessidade de tirar as telhas novamente.
O que é o seu ponto?
Para mostrar os pontos coletados desenhar caixa de texto dinâmica na tela. Posição esta caixa de texto fora da área, de modo telhas telhas não vai cobrir isso. A caixa de texto dinâmica deve mostrar variável "pontos":
A variável "pontos" terá de se lembrar dos pontos atuais, mesmo quando mudamos de mapas. Podemos seguramente anexá-lo ao objeto do jogo. Ao declarar objeto jogo adicionar pontos de propriedade e ajustá-lo para 0 (a maioria dos jogos começam com 0 pontos).
CÓDIGO
game = (tileW: 30, tileH: 30, currentMap: 1, pontos: 0);
Something to pick up
Como em tudo, primeiro vamos declarar os objetos e criar itens de série para os cargos de itens em diferentes mapas:
CÓDIGO
myItems = [
[0],
[[1,1,1], [1,1,2], [2,1,3]],
[[2,1,3], [2,6,3], [1,5,4]]
];
game.Item1 = function () ();
game.Item1.prototype.points = 1;
game.Item2 = function () ();
game.Item2.prototype.points = 10;
[0],
[[1,1,1], [1,1,2], [2,1,3]],
[[2,1,3], [2,6,3], [1,5,4]]
];
game.Item1 = function () ();
game.Item1.prototype.points = 1;
game.Item2 = function () ();
game.Item2.prototype.points = 10;
myItems matriz é construída mesma forma como uma matriz inimigos capítulo (9). Tem matriz para cada um dos mapas. Nós havent usado map0 tão primeira matriz está vazia. Para map1 criámos 3 itens: [1,1,1], [1,1,2], [2,1,3]. Cada item tem 3 números, o primeiro número é o tipo de item (1 ou 2 aqui) e é também o número do frame a ser mostrado no clipe de filme anexado itens. Número Segunda e terceira determinar azulejo que será colocado. Permite olhar para o último item: sabemos que é do tipo 2 e vai ser colocado sobre o azulejo x = 1, y = 3.
A última parte do código declara dois tipos de itens. Atualmente, eles só têm uma propriedade de "pontos". Isso é como o jogador recebe pontos muito para escolher o item. Item Type1 irá adicionar 1 a pontuação de jogadores, type2 item dá a whopping 10 pontos.
Agora permite modificar a função buildMap para adicionar itens ao mapa é criado. Adicione este código antes da criação do char:
CÓDIGO
game.items myItems game.currentMap = [];
for (var i = 0; i <game.items.length; + + i) (
var name = "item" + game.items [i] [2 ]+"_"+ game.items [i] [1];
game [name] = new game [ "Item" + game.items [i] [0]];
game [name]. posição = i;
game.clip.attachMovie ( "itens", nome, 11001 + i);
game [name]. clip = game.clip [nome];
game [name]. clip._x = game.items ([i] [1] * game.tileW) + game.tileW / 2;
game [name]. clip._y game.items = ([i] [2] * game.tileH) + game.tileH / 2;
game [name]. clip.gotoAndStop (game.items [i] [0]);
)
_root.points = game.points;
for (var i = 0; i <game.items.length; + + i) (
var name = "item" + game.items [i] [2 ]+"_"+ game.items [i] [1];
game [name] = new game [ "Item" + game.items [i] [0]];
game [name]. posição = i;
game.clip.attachMovie ( "itens", nome, 11001 + i);
game [name]. clip = game.clip [nome];
game [name]. clip._x = game.items ([i] [1] * game.tileW) + game.tileW / 2;
game [name]. clip._y game.items = ([i] [2] * game.tileH) + game.tileH / 2;
game [name]. clip.gotoAndStop (game.items [i] [0]);
)
_root.points = game.points;
Primeiro vamos fazer cópia da matriz myItems para o mapa atual. Esta matriz chamada "game.items" irá armazenar as informações sobre os itens no mapa atual. Nós então percorrer todos os elementos na matriz de itens.
A partir da linha:
CÓDIGO
var name = "item" + game.items [i] [2 ]+"_"+ game.items [i] [1];
teremos nome para o novo item. Seu nome seguirá as mesmas regras que os nomes das nossas telhas, item sobre o azulejo x = 1, y = 3 será nomeado "item3_1".
Depois de criar objeto novo item a partir dos modelos que fizemos anteriormente, vamos salvar a posição em que o novo objeto. Que posição é essa? Seu contador "i" e salvando-o no item objeto saberemos qual item na matriz itens deste objeto representa. Isso será muito útil quando começamos a pegar itens. Vamos ver: quando fazemos map1 e i = 1, estamos criando item a partir dos dados [1,1,2], thats segundo elemento para a matriz itens map1. Item será nomeado "item2_1" e podemos ter acesso a sua posição na matriz com item2_1.position. Mais sobre isso quando nós removemos itens.
Depois que colocamos nova instância de itens de clipe de filme no palco e colocá-lo no coordenadas corretas. Última linha no circuito envia novo clipe de filme para o quadro de igualdade com o tipo de item. Todos os itens type1 mostrará quadro 1, por exemplo.
Finalmente vamos atualizar a variável aponta para mostrar o número correto de pontos de jogador tem. No início de The Game, ele provavelmente tem 0 pontos, mas quando se muda os mapas ainda usamos a mesma função e pelo tempo que o jogador poderia ter tido sorte e recolhidos alguns pontos.
Encontrá-lo
Temos itens, temos o herói, agora temos de fazer o herói se sabe quando ele pisou em algo. Adicione ao fim da função moveChar seguinte código:
CÓDIGO
itemname var jogo = [ "item" + ob.ytile +"_"+ ob.xtile];
if (itemname e ob == _root.char) (
game.points = game.points + itemname.points;
_root.points = game.points;
removeMovieClip (itemname.clip);
game.items [itemname.position] = 0;
excluir do jogo [ "item" + ob.ytile +"_"+ ob.xtile];
)
if (itemname e ob == _root.char) (
game.points = game.points + itemname.points;
_root.points = game.points;
removeMovieClip (itemname.clip);
game.items [itemname.position] = 0;
excluir do jogo [ "item" + ob.ytile +"_"+ ob.xtile];
)
O itemname variável terá valor com base na posição atual do herói. Quando o herói está na telha x = 4, y = 9, ele vai olhar para "item9_4". Se tal objeto existe, itemname irá se referir a esse objeto, mas no caso de não ter sorte item em que a telha, itemname não terá nenhum valor.
Se achamos objeto de item e estamos nos movendo herói, primeiro iremos adicionar pontos do objeto item ao game.points e atualizar _root.points variável também para lhes mostrar.
Agora é hora de remover o item do palco. Cada item deve ser retirado a partir de 3 lugares: o clipe de filme, de itens de série e seu objeto. Atualmente nós não excluí-la da matriz de pontos, temos apenas um conjunto 0, na posição deste item. E não se esqueça, array itens é apenas cópia da matriz myItems, se sair do mapa e volta, todos os itens que aparecem novamente. Para evitar má idéia tal, vamos atualizar a função changeMap.
Adicionar ao início da função changeMap:
CÓDIGO
tempitems var = [];
for (var i = 0; i <game.items.length; + + i) (
if (game.items [i]) (
var name = "item" + game.items [i] [2 ]+"_"+ game.items [i] [1];
excluir do jogo [nome];
tempitems.push (game.items [i]);
)
)
myItems [game.currentMap] = tempitems;
for (var i = 0; i <game.items.length; + + i) (
if (game.items [i]) (
var name = "item" + game.items [i] [2 ]+"_"+ game.items [i] [1];
excluir do jogo [nome];
tempitems.push (game.items [i]);
)
)
myItems [game.currentMap] = tempitems;
Aqui usamos matriz temporária "tempitems" para copiar os itens que ainda não pegou de volta a partir de itens de matriz para a matriz myItems. Quando o elemento na posição i não é 0, significa que item não foi apanhado e vamos guardá-lo para ser mostrado na próxima vez o jogador entra neste mapa. Mas a certeza de que o objeto do item costuma aparecer no mapa ao lado, temos que eliminá-lo primeiro. No entanto, quando item foi pego, ele não aparecerá novamente quando jogadores de volta.
E aqui eu configurei side scroller com tudo o que falei até agora:
Download do fla para scroller lado com todo o código e filme criado aqui.
Mais agradeço o José por encontrar o bug no código de itens quando mudar mapas. O problema foi que, se o artigo não foi apanhado, em seguida, objeto de item não foi excluído no mapa do processo de mudança e que existia no mapa ao lado também, mas não tive qualquer clipe de filme para mostrar. Então, você acabou com itens invisíveis. Tenho atualizado o fla e código, mas certifique-se de que você tem linhas:
CÓDIGO
var name = "item" + game.items [i] [2 ]+"_"+ game.items [i] [1];
excluir do jogo [nome];
na função changeMap.
excluir do jogo [nome];
na função changeMap.

Help














