使用java time和swing编写代码,使enemy这个添加的图片从上方向下掉落
时间: 2024-04-10 17:27:07 浏览: 94
Java Swing 经典小游戏《飞机大战》图片资源
您可以使用Java的Swing库来实现这个功能。以下是一个简单的示例代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class EnemyDropGame extends JFrame {
private Timer timer;
private int enemyX;
private int enemyY;
public EnemyDropGame() {
setTitle("Enemy Drop Game");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 400);
setLocationRelativeTo(null);
enemyX = 200; // 初始位置
enemyY = 0;
timer = new Timer(10, new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
enemyY += 1; // 每次移动的距离
// 碰到底部时重新开始
if (enemyY >= getHeight()) {
enemyY = 0;
}
repaint();
}
});
timer.start();
}
@Override
public void paint(Graphics g) {
super.paint(g);
// 绘制敌人图片
ImageIcon enemyIcon = new ImageIcon("enemy.png");
Image enemyImage = enemyIcon.getImage();
g.drawImage(enemyImage, enemyX, enemyY, null);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new EnemyDropGame().setVisible(true);
}
});
}
}
```
在上述代码中,我们创建了一个继承自JFrame的EnemyDropGame类。在构造函数中,我们设置了窗口的基本属性,并初始化了敌人的初始位置。然后,我们创建了一个计时器,每隔10毫秒触发一次动作事件。在动作事件中,我们更新敌人的位置,使其向下移动,并在窗口底部重新开始。最后,我们重写了paint方法,在其中绘制敌人的图片。
请注意,上述代码中假设存在名为"enemy.png"的敌人图片文件。您需要将此文件放置在与代码文件相同的目录下,或根据需要更改图片文件的路径。
您可以根据自己的需要修改窗口大小、敌人移动速度等参数。希望这可以帮助到您!
阅读全文