import java.awt.Graphics
import java.awt.event.WindowAdapter
import java.awt.event.WindowEvent
import java.util.Random
import javax.swing.JFrame
import javax.swing.JPanel
public class RunningBallDemo extends JFrame {
public static void main(String args[]) {
new RunningBallDemo()
}
public RunningBallDemo() {
Ball ballPanel = new Ball(5, 5)
getContentPane().add(ballPanel)
setBackground(Color.BLACK)
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0)
}
})
setSize(350, 350)
setVisible(true)
Thread thread1 = new Thread(ballPanel)
thread1.start()
}
}
class Ball extends JPanel implements Runnable {
int rgb = 0
Color color
int x, y
int dx = 5, dy = 5
Ball(int x, int y) {
this.x = x
this.y = y
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g)
setBackground(Color.BLACK)
g.setColor(color)
g.fillOval(x, y, 50, 50)
}
public void run() {
while (true) {
if (x <= 0) {
dx = 5
updateBallColor()
} else if ((x + 50) >= getWidth()) {
dx = -5
updateBallColor()
}
if (y <= 0) {
dy = 5
updateBallColor()
} else if ((y + 50) >= getHeight()) {
dy = -5
updateBallColor()
}
x = x + dx
y = y + dy
repaint()
try {
Thread.sleep(25)
} catch (InterruptedException e) {
}
}
}
public void updateBallColor() {
rgb = new Random().nextInt()
color = new Color(rgb)
}
}
在Java编程中,可以使用Graphics类和Color类来实现小球自由落体反d变颜色的功能。可以使用Graphics类中的drawOval()方法来画出小球,并使用fillOval()方法来填充小球的颜色。可以使用Color类中的getRGB()方法来获取每次反d后的新颜色。另外,也可以使用Thread类来实现小球的自由落体反d。给小球类定义一个方法:碰撞;然后当周围环境的坐标到球心的距离等于小球的半径时,小球的运动路径算法就应该是轴对称的。先判断之前的运动方向,然后根据运动方向确定新的运动方向。这个其实就是线性方程做小球的运动轨迹而已。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)