-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDemoPanel.java
58 lines (57 loc) · 1.87 KB
/
DemoPanel.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
public class DemoPanel extends JPanel
{
private static final int FRAME1 = 800;
private static final int FRAME2 = 800;
//private double tick = 0;
private static final Color BACKGROUND = new Color(204, 204, 204);
private BufferedImage myImage;
private Graphics myBuffer;
private Ball ball;
private Timer t;
//constructor
public DemoPanel()
{
myImage = new BufferedImage(FRAME1, FRAME2, BufferedImage.TYPE_INT_RGB);
myBuffer = myImage.getGraphics();
myBuffer.setColor(BACKGROUND);
myBuffer.fillRect(0, 0, FRAME1,FRAME2);
ball = new Ball(FRAME1/2,FRAME2/2, 50, Color.BLACK);
//ball.setay(-0.19);
ball.setay(-1);
t = new Timer(1, new Listener());
t.start();
}
public void paintComponent(Graphics g)
{
g.drawImage(myImage, 0, 0, getWidth(), getHeight(), null);
}
private class Listener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
myBuffer.setColor(BACKGROUND);
myBuffer.fillRect(0,0,FRAME1,FRAME2);
/*
ball.setdx(ball.getdx() + ball.getax());
ball.setdy(ball.getdy() + ball.getay());
ball.setX(ball.getX() + ball.getdx());
ball.setX(ball.getY() + ball.getdy());
*/
//tick++;
ball.move(FRAME1,FRAME2);
ball.draw(myBuffer,FRAME2);
//
myBuffer.setFont(new Font("Serif",Font.PLAIN,20));
myBuffer.setColor(Color.BLACK);
myBuffer.drawString("Kinetic Energy: " + ball.getKE(), 10, 20);
myBuffer.drawString("Potential Energy: " + ball.getU(), 10, 50);
myBuffer.drawString("Total Energy: " + ball.getE(), 10, 80);
//
repaint();
}
}
}