Ajuda Jogo da Snake Modificando personagem

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

[code] 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);
     } } [/code]

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

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.