FullScreen

10 respostas
Baldao

Olá a todos. Estou desenvolvendo uma aplicação swing que roda em fullscreen, porém não consigo alterar a cor do background de maneira nenhuma.

Trecho de SimpleScreenManager.java

public void setFullScren(DisplayMode displayMode, JFrame window) {
        window.setUndecorated(true);
        window.setResizable(false);
        
        device.setFullScreenWindow(window);
        
        if (displayMode != null && device.isDisplayChangeSupported()) {
            try {
                device.setDisplayMode(displayMode);
            }
            catch (IllegalArgumentException e) {}
        }
    }

Código que chama o método setFullScreen() e que "tenta" alterar a cor do background.

this.setBackground(Color.blue);
        this.setForeground(Color.white);
        this.setFont(new Font("Dialog", Font.PLAIN, 24));
        
        SimpleScreenManager screen = new SimpleScreenManager();
        
        try {
            screen.setFullScren(displayMode, this);

            //...

Como vcs viram, eu usei o método setBackground(Color.blue) para alterar o backgroud... mas não funciona :cry:

Será que alguém poderia me ajudar?

10 Respostas

ViniGodoy

É realmente necessário entrar em modo exclusivo, trocar a resolução da tela, etc? Pq é para isso que o método setFullScreenWindow serve… se você não estiver com a intenção de escrever diretamente na tela, talvez seja melhor você fazer simplesmente: setWindowState(JFrame.MAXIMIZED_BOTH);

Baldao

É necessário pq eu estou fazendo um curso de desenvolvimento de jogos e eu preciso disponibilizar o jogo em pelo menos duas resoluções.

ViniGodoy

Desenvolvimento de jogos? Que legal! Que tipo de jogo é? Em que lugar você está fazendo o curso?

Também estou fazendo uma pós assim, no Unicenp, aqui em Curitiba.

Então, quem vai mudar a cor do seu fundo é o seu método de pintura, o que desenha a área do jogo.

Basicamente:

public void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D) g.create(); g2d.clearRect(0,0,this.width(), this.height()); //Pinta o fundo com a cor do background //Aqui iria o resto da pintura do seu jogo g2d.dispose(); }

O código aí em cima é para um fundo plano, de uma cor só. Se estiver trabalhando com uma imagem de fundo, é só pintar a imagem lá.

Dá uma olhada no Vikanoid. Ali tem um pacote chamado JGF (Java Game Framework) com várias funções que eu implementei, já prontas. Essas funções se baseiam nos algoritmos do Killer Game Programming in Java e do Developing Games in Java, do Dave Brackeen. Eu tenho os dois livros impressos (é melhor do que ler no site, como dá para fazer com o Killer).

Uma sugestão. Além do Killer, dê uma olhada no tutorial do Coke and Code e nesse artigo que escrevi no meu blog.

Ah claro! E quando puder, jogue e comente o Batalha Estelar!

Baldao

Hehe… curso foi força de expressão, na verdade eu ainda tô me graduando em engenharia da computação :P, mas essa é a área em que eu quero investir.

Eu estou justamente estudando por esses dois livros que vc mencionou, são muito bons realmente.

Ah… e obrigado pelas dicas :smiley:

ViniGodoy

Ok… ok…

Mas e o seu jogo? Vai ser um RPG, um side scroller, um puzzle?
Vai querer usar tecnologia 2D ou 3D?

Baldao

Será um RPG ao estilo The Crims em 2D, o pessoal aqui ainda tá montando a história mas já tô fazendo alguns testes. Quando já tiver alguma coisa eu posto aqui no fórum.

PS: eu não sabia que havia pós em desenvolvimento de jogos, qual linguagem vcs usam? Java, C++? Fiquei mais interassado ainda… :smiley:

ViniGodoy

Usamos C++.

Veja aqui o porque (no tópico sobre esse tem informações sobre a pós também):
http://www.guj.com.br/posts/list/28502.java#306358

ViniGodoy

Se está fazendo um RPG, é altamente recomendável que você faça scripts do seu jogo em uma linguagem de script. Dê uma olhada em
http://groovy.codehaus.org

Baldao

Se não for incomodar… poderia me dizer quais são os benefícios de se usar groovy e em que situações eu usaria por exemplo?

ViniGodoy

Todos os benefícios de uma linguagem de script:

  1. Facilidade de escrever os scripts;
  2. Possibilidade de alterar o script sem recompilar código;
  3. Possibilidade de viabilizar aos jogadores (mestre de jogos e também programadores) um editor de aventuras;
  4. Velocidade no desenvolvimento.
Criado 5 de junho de 2007
Ultima resposta 8 de jun. de 2007
Respostas 10
Participantes 2