J2ME/Lições/LayerManager: diferenças entre revisões

[edição verificada][revisão pendente]
Conteúdo apagado Conteúdo adicionado
He7d3r.bot (discussão | contribs)
Trocando categorização manual por AutoCat (o indexador da categoria estava incorreto) [ usando AWB ]
m <source> -> <syntaxhighlight> (phab:T237267)
 
Linha 7:
Vamos começar utilizando a mesma estrutura do GameCanvas.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 33:
}
}
</syntaxhighlight>
</source>
 
Primeiramente precisamos carregar a imagem onde estão desenhados os tiles, para isso vamos instanciar e criar o objeto do tipo '''Image''' como vimos anteriormente.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 70:
}
}
</syntaxhighlight>
</source>
 
Agora vamos instanciar a variável do tipo '''TiledLayer'''.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 108:
}
}
</syntaxhighlight>
</source>
 
Agora dentro do método '''run()''' vamos criar o objeto '''TiledLayer''', vamos entrar com 4 parâmetros: O primeiro é a quantidade de linhas que o cenário vai ter. O segundo é q quantidade de colunas que o cenário vai ter. O terceiro é o objeto Image carregado. O quarto é a largura em pixels de cada tile. O quinto é a altura em pixels de cada tile.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 147:
}
}
</syntaxhighlight>
</source>
 
Agora para vamos criar o vetor para desenharmos a grade de tiles, para isso devemos criar um vetor do tipo '''int[]''' e colocar o valor correspondente ao tile, lembre-se que no nosso exemplo usamos uma grade de no máximo 5x5 tiles.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 191:
}
}
</syntaxhighlight>
</source>
 
Agora com o vetor da grade já criado, devemos inseri-lo dentro do objeto '''TiledLayer''', a inserção é feita através do método '''setCell()''' onde inserimos cada célula individualmente, para isso vemos criar um laço '''for''' criando uma variável de zero até menor que '''grade.length'''.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 237:
}
}
</syntaxhighlight>
</source>
 
Agora dentro do laço for vamos finalmente usar o método '''setCell()''' da classe '''TiledLayer''' utilizando os seguintes atributos: Primeiro a linha em que está sendo inserido. Segundo a coluna em que está sendo inserido. Terceiro o valor do tile (a célula do vetor grade[]).
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 284:
}
}
</syntaxhighlight>
</source>
 
==Sprite==
Linha 291:
Inicialmente vamos carregar a imagem onde está desenhado o Sprite, para isso vamos instanciar e criar um objeto do tipo '''Image''' como vimos anteriomente.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 324:
}
}
</syntaxhighlight>
</source>
 
Agora vamos instanciar a variável do tipo '''Sprite'''.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 362:
}
}
</syntaxhighlight>
</source>
 
Agora dentro do método '''run()''' vamos criar o objeto do tipo '''Sprite''', vamos entrar 3 parâmetros: Primeiro o objeto do tipo Image. Segundo a largura em pixels de cada cena. Terceiro a altura em pixels de cada cena.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 400:
}
}
</syntaxhighlight>
</source>
 
==LayerManager==
Linha 407:
Para começar vamos instanciar e inicializar os objetos do tipo '''TiledLayer''' e '''Sprite''' vistos anteriormente.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 454:
}
}
</syntaxhighlight>
</source>
 
Agora para começarmos a controlar a exibição de Tiles e Sprites primeiramente devemos instanciar uma variável do tipo '''LayerManager'''.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 506:
}
}
</syntaxhighlight>
</source>
 
Agora dentro do '''run()''' vamos criar o objeto do tipo '''LayerManager'''
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 559:
}
}
</syntaxhighlight>
</source>
 
Agora vamos colocar organizar os objetos do tipo Sprite e TiledLayer para serem exibidos, para isso vamos usar o método '''append()''' da classe '''LayerManager''', note que quando se pintar a tela a ordem dos elementos inseridos irá influenciar o que será exibido em cima do outro, sempre o primeiro objeto colocado no '''append()''' será o que ficará sempre visível, nesse exemplo vamos insrir na ordem, meuSprite -> meuTile.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 614:
}
}
</syntaxhighlight>
</source>
 
Agora colocaremos a cena para ser exibida na tela, dentro do loop principal vamos usar o método '''paint()''' da classe '''LayerManager''' e entrar como parâmetros: 1º o objeto do tipo Graphics. 2º o pixel x de onde a cena começará a ser exibida. 3º o pixel y de onde a cena começará a ser exibida.
 
<sourcesyntaxhighlight lang="java">
import javax.microedition.lcdui.game.*;
import javax.microedition.lcdui.*;
Linha 670:
}
}
</syntaxhighlight>
</source>
 
==Colisão==