Gente,ja nao sei mais o que fazer... Segui o tutorial, depurei tudo isso , mas simplesmente nao consigo.
Desculpa tantos posts, mas é que realmente agora empaquei.. na vdd essa dúvida é a junção das outras duas atrás...
Pior que não achei ninguem com essa dúvida.. Isso de java2D é meio estranho... Enfim, estou upando o código, junto com a snake.jpg.
Nao sei se alguem vai conseguir me ajudar, mas pelo menos fica aqui postado , caso tenha alguem com a mesma dúvida...Talvez Ajude.
Ah ta, então, quando eu mudo a Snake de lugar e chamo o Método Running(), ela fica bugada, e as vezes apaga as outras snakes e as vezes nao, e fica criando uma em cima da outra.
Nao sei o que fazer. Ja estou copiando o Graphics, ja tentei dar dispose, repaint, etc.
NAO FUNCIONA.
package Controllers;
import Objetos.Snake;
import View.MainView;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
/**
*
* @author André
*/
public class GameUpdate {
private MainView mainView;
private Snake snake;
private int gamePanelWidth,gamePanelHeight;
public GameUpdate(MainView mv)
{
mainView = mv;
snake = new Snake(10,10);
gamePanelWidth = mainView.jPanel_GamePanel.getWidth();
gamePanelHeight = mainView.jPanel_GamePanel.getHeight();
}
public void Running()
{
//Pegar o Graphics do JPAnel GAME :
Graphics2D jPanelGraphics = (Graphics2D) mainView.jPanel_GamePanel.getGraphics();
// Criar um Auxliar desse Graphic
Graphics jPanelAuxGraphic = jPanelGraphics.create();
//Carrega a imagem da Snake
BufferedImage snakeImage = snake.getSnakeImage();
//Cria imagem Auxiliar
Image drawingImage = mainView.jPanel_GamePanel.createImage(gamePanelWidth, gamePanelHeight);
//Pega o Graphics da Imagem auxiliar para colocar no jPanel
Graphics2D graphicsImage = (Graphics2D) drawingImage.getGraphics();
//Desenha a snake na imagem Auxiliar
graphicsImage.drawImage(snakeImage,0,0,null);
//Desenha a Imagem Auxiliar no jPanel_GamePanel
jPanelAuxGraphic.drawImage(drawingImage,snake.getPositionX(),snake.getPositionY(),null);
//jPanelAuxGraphic.dispose();
//graphicsImage.dispose();
}
public void moveSnakeLeft()
{
snake.setPositionX(snake.getPositionX() - 10);
}
public void moveSnakeRight()
{
snake.setPositionX(snake.getPositionX() + 10);
}
public void moveSnakeUp()
{
snake.setPositionY(snake.getPositionY()+ 10);
}
public void moveSnakeDown()
{
snake.setPositionY(snake.getPositionY()- 10);
}
}
