Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Aimind

Carregar uma imagem(15px, 15px) varias vezes de forma eficiente

Mensagens Recomendadas

Aimind

Tou criando o jogo da cobrinha em java, e crio o mapa a partir de um ficheiro (Exemplo: se no ficheiro tiver um 'W' ele cria uma quadrado cinza e assim sucessivamente), o problema é que eu queria carregar uma imagem de (15px, 15px) sempre que encontra-se a letra 'T' no ficheiro. Só que  da forma como eu carrego o jogo torna-se lento. O que eu pretendo é uma forma de mais eficas de carregar a imagem várias vezes. Tou usando a class canvas. Desde já muito obrigado! :D

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
M6

Basta carregares a imagem uma única vez para memória.

Depois usa-lá as vezes que quizeres.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

Como é que carregas a imagem? A classe Canvas não carrega imagens.

Podes usar várias técnicas, a mais simples de todas é usar um ImageIcon. A classe ImageIcon permite carregar uma imagem dando o caminho para a imagem como String. Basta instanciares a classe uma vez, carregando a imagem, e depois usar sempre essa imagem como o M6 indicou.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Aimind

Como é que carregas a imagem? A classe Canvas não carrega imagens.

Podes usar várias técnicas, a mais simples de todas é usar um ImageIcon. A classe ImageIcon permite carregar uma imagem dando o caminho para a imagem como String. Basta instanciares a classe uma vez, carregando a imagem, e depois usar sempre essa imagem como o M6 indicou.

Eu carrego assim a imagem:

private JLabel macai = new JLabel(new ImageIcon("maca.png"));

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Knitter

Dessa forma perdes acesso ao objecto que tem a imagem. Separa essa construção em dois passos:

private ImageIcon imgIcon = new ImageIcon("maca.png");
private JLabel macai = new JLabel(imgIcon);

Desta forma podes usar a mesma imagem em vários locais diferentes sem teres de reler o ficheiro ou criar outro ImageIcon. Esta classe também tem métodos que te dão acesso a uma instância de Image que pode ser usada em casos especiais.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.