使用eclipse实现小球自由弹动 使用switch语句和if语句
时间: 2023-07-18 11:05:48 浏览: 53
以下是使用 Eclipse 实现小球自由弹动的示例代码,其中包含了使用 switch 语句和 if 语句的两种实现方式:
```
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class BallBounce extends JPanel {
private int x = 0;
private int y = 0;
private int dx = 5;
private int dy = 5;
private int ballSize = 50;
public void moveBall() {
x += dx;
y += dy;
// switch 语句实现
switch (checkCollision()) {
case 1:
dx = -dx;
break;
case 2:
dy = -dy;
break;
case 3:
dx = -dx;
dy = -dy;
break;
}
/*
// if 语句实现
if (x < 0 || x > getWidth() - ballSize) {
dx = -dx;
}
if (y < 0 || y > getHeight() - ballSize) {
dy = -dy;
}
*/
}
private int checkCollision() {
if (x < 0 || x > getWidth() - ballSize) {
return 1;
}
if (y < 0 || y > getHeight() - ballSize) {
return 2;
}
if ((x + ballSize > getWidth() && dx > 0) || (x < 0 && dx < 0)) {
return 3;
}
return 0;
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.RED);
g.fillOval(x, y, ballSize, ballSize);
}
public static void main(String[] args) throws InterruptedException {
JFrame frame = new JFrame("Ball Bounce");
BallBounce ballBounce = new BallBounce();
frame.add(ballBounce);
frame.setSize(500, 500);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
while (true) {
ballBounce.moveBall();
ballBounce.repaint();
Thread.sleep(10);
}
}
}
```
在 `moveBall()` 方法中,使用 switch 语句或 if 语句来检查小球是否碰到了窗口的边界,如果碰到了就改变小球的方向。其中,checkCollision() 方法返回的值表示小球碰到了窗口的哪一侧,1 表示碰到了左右两侧,2 表示碰到了上下两侧,3 表示碰到了左上、右上、左下或右下四个角落。
使用 switch 语句时,通过 switch (checkCollision()) 来检查小球碰撞的情况,并在 case 1、case 2 和 case 3 中分别处理小球碰到左右两侧、上下两侧和四个角落的情况。
使用 if 语句时,通过两个 if 语句来检查小球是否碰到了窗口的左右两侧和上下两侧,并在需要改变小球方向的情况下修改 dx 和 dy 的值。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)