Ahead of time, I would like to say there have been many posts similar to this, however, none of them apply to me or none of them actually have any answer at all, and are outdated, meaning there could be new java features that could help me solve my problem.
Anyway, I wanted to make a game where there is tennis rackets. Of course, they would have to rotate. In order to rotate, I must call my Graphics2D method inside my KeyListener. How would I do this WITHOUT adding a new Graphics2D variable inside my key listener method?
Here is all the methods I have that involve accomplishing this goal:
public void draw(Graphics2D g2d) {
g2d.drawImage(getPaddleImg(), x, y, null);
}
public static Image getPaddleImg() {
ImageIcon ic = new ImageIcon("C:/Users/Elliot/Desktop/Eclipse Game Tennis/paddle.png");
return ic.getImage();
}
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if(key==KeyEvent.VK_W){
g2d.rotate(Math.toRadians(5));
} else if(key==KeyEvent.VK_W) {
g2d.rotate(Math.toRadians(-5));
}
public void keyReleased(KeyEvent e) {
int key = e.getKeyCode();
if(key==KeyEvent.VK_W){
g2d.rotate(Math.toRadians(0));
} else if(key==KeyEvent.VK_W) {
g2d.rotate(Math.toRadians(0));
}
}
I know, this code would give me an error because of the g2d
inside of the KeyPressed()
and KeyReleased()
method. How would I call the g2d
inside these two methods? Or how would I do the same thing inside the draw()
method?