Desabafo

4 respostas
B

Pessoal, vou desabafar.

Estou passando por um problema no meu jogo de corrida de carro, o que acontece é o seguinte:

Existe uma pista (desenhada no paint) e essa pista tem a parte da rua(parte do meio) e nos cantos direito e esquerdo e direito tem a grama, quando o carrinho vai pro canto direito ou esquerdo eu desenho uma poeira atrá dele, mas como eu fiz isso?
Exemplo:quando o carro está na posição 13(o ponto x, horizontal) ele está saindo da pista e indo pra grama , entaum eu pinto a poeira, ou quando está na posição 90(o ponto x, horizontal) , eu faço o mesmo.

Agora , eis o prob.:

Essa pista que eu acabei de mencionar é uma pista reta, ou seja, naum tem curva, entaum dá pra eu tratar essas coordenadas sem problemas,mas quando agora quero fazer curvas, mas seria muito complicado tratar coordenadas pra saber se o carro foi pra grama.
Ex: O carro foi pra direita da tela, quando vou saber se ele chegou na grama? se a pista é curva naum vai ter uma coordenada exata sempre, ele vai variar, determinado momento a grama a direita vai estar na posição 95, depois 98, depois 100, depois 105 e eu naum quero fazer um array gigante pra tratar isso… vai ficar super trabalhoso e irá encher a memória.

Tem como eu saber a cor da tela em determinado lugar? Vamos supor, o carro vai pra posição 80 e aí eu vejo a cor dessa posição, então se for uma cor verde eu vou saber que é a grama.

Alguém tem alguma sugestão?

4 Respostas

C

Cara,
Vc não vai conseguir fazer um jogo com uma pista com curvas em imagens, é muita imagem… o ideal é vc criar a pista em realtime, ou em pre-processo, na hora de carregar o jogo, mas que seja feito pelo Graphics, aí vc pode ter um controle sobre as cores e pontos que são impressos.
Não sei se vc ta fazendo MIDP1.0 ou 2.0… mas em 1.0 vc não tem acesso a imagem por byte[], so no 2.0.

Bom… é isso aí… cria um algoritmo pra desenhar a pista.

Falow!

B

Mas teria como vc me dar um pequeno exemplo do uso de Graphics com byte[]?

C

Olá,
A classe Image tem um método chamado getRGB(int[] rgbData, int offset, int scanlength, int x, int y, int width, int height) ele vai colocar os pixels da imagem no array de int. Aí é so vc procurar uma maneira de traduzir o int ARGB em cor que vc queira saber.

É isso aí… pega a API e procura pelas coisas que vc precisa…

Falow!

B

valeu clv.

Criado 27 de março de 2005
Ultima resposta 29 de mar. de 2005
Respostas 4
Participantes 2