Ajuda Jogo da Snake Modificando personagem

1 resposta
R

Olá tudo bom meu nome e Rafael estou no 3 semestre de Ciências da Computação[i]..

Programa Eclipse antes de tudo

estava trabalhando em um código que consegui na internet do jogo da Snake.. mas estou perdendo muito tempo em tentar modificar a classe da cobra que está como Paintcomponent.. gostaria de deixar ela em paint(Graphics) para utilizar imagens em .png

como esta no codigo ele pega parametros do paint e utiliza para montar a cabeça da cobra.. o corpo que vai aumentando conforme uma formula em IF e etc.. gostaria de ajuda para modificar e adicionar uma imagem, ja procurei video e tentei implementar mas não consigo estou muito perdido (sou leigo em algumas partes)

o codigo seria esse

public class RenderPanel extends JPanel {
 	
		
        public static Color green = new Color(1666073);>  
        
         protected void paintComponent(Graphics g) {
                 super.paintComponent(g);
                 g.setColor(green);
                 g.fillRect(0, 0, 800, 700);
                 Snake snake = Snake.snake;
                 g.setColor(Color.BLUE);
                 for (Point point : snake.snakeParts) {
                         g.fillRect(point.x * Snake.SCALE, point.y * Snake.SCALE,
                                         Snake.SCALE, Snake.SCALE);
                 }
                 g.fillRect(snake.head.x * Snake.SCALE, snake.head.y * Snake.SCALE,
                                 Snake.SCALE, Snake.SCALE);
                 g.setColor(Color.RED);
                 g.fillRect(snake.cherry.x * Snake.SCALE, snake.cherry.y * Snake.SCALE,
                                 Snake.SCALE, Snake.SCALE);
                 String string = "Score: " + snake.score + ", Length: "
                                 + snake.tailLength + ", Time: " + snake.time / 20;
                 g.setColor(Color.white);
                 g.drawString(string, (int) (getWidth() / 2 - string.length() * 2.5f),
                                 10);
                 string = "Game Over!";
                 if (snake.over)
                         g.drawString(string,
                                         (int) (getWidth() / 2 - string.length() * 2.5f),
                                         (int) snake.dim.getHeight() / 4);
                 string = "Paused!";
                 if (snake.paused && !snake.over)
                         g.drawString(string,
                                         (int) (getWidth() / 2 - string.length() * 2.5f),
                                         (int) snake.dim.getHeight() / 4);
         } }

realmente vi muitos videos se vocês tiverem algum que consiga preencher essa duvida obrigado.

1 Resposta

TerraSkilll

Por que você quer tirar o código do paintComponent, se é um bom lugar para se fazer o desenho? Desenhar ou não png não depende disso, mas sim dos comando corretos.

Pelo que vi do seu código, o que é necessário é alterar o trecho que faz fillRect nas partes da cobra. Aqui está sendo desenhado um quadrado:

for (Point point : snake.snakeParts) { g.fillRect(point.x * Snake.SCALE, point.y * Snake.SCALE, Snake.SCALE, Snake.SCALE); }
Basta desenhar uma imagem no lugar, algo mais ou menos assim:

for (Point point : snake.snakeParts) { // obs: bi deve ser um BufferedImage, que já deve estar carregado com o seu png g.drawImage(bi, null, point.x * Snake.SCALE, point.y * Snake.SCALE); }
Alterar a cabeça da cobra deve seguir o mesmo princípio.

Veja os tutoriais de Java2D do Ponto V (http://www.pontov.com.br/site/index.php/java/48-java2d). Outra opção é http://zetcode.com/gfx/java2d/java2dimages/

Abraço.

Criado 26 de novembro de 2014
Ultima resposta 26 de nov. de 2014
Respostas 1
Participantes 2