java - 使用摇摆计时器重绘游戏时出现问题
问题描述
这是对我之前的问题的跟进。我正在用 Java 制作 Frogger 我正在尝试实现一个摇摆计时器,但它似乎不起作用。我在设置它时遇到了一些麻烦。
我已经尝试在我的代码的不同区域中实现它,并且没有得出关于它有什么问题的结论。我遵循了多个教程,但没有任何效果。
private int delay = 7;
public CPT() {
setLayout(new BorderLayout());
label = new JLabel("Frogger");
frame1 = new JFrame("Main");
label.setFont(new Font("Serif", Font.BOLD,50));
label.setBounds(275,10,250,250);
button1 = new JButton("PLAY");
button1.setBounds(300,350,100,50);
button1.setOpaque(false);
button1.setVisible(true);
this.setOpaque(false);
this.setLayout(null);
this.add(label);
button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setVisible(true);
frame1.setSize(700,500);
frame1.setResizable(false);
button1.setVisible(false);
frame1.add(new TrainCanvas());
frame1.add(p1);
frame1.addKeyListener(new frog());
}
});
this.add(button1);
}
这是我班级的主要构造函数
class TrainCanvas extends JComponent {
private int lastX = 0;
private int lastX_1 = 0;
private int lastX_2 = 0;
public TrainCanvas() {
// Thread animationThread = new Thread(new Runnable() {
// public void run() {
// while (true) {
// repaint();
// try {Thread.sleep(10);} catch (Exception ex) {}
// }
// }
// });
//
// animationThread.start();
// }
Timer time = new Timer(delay, this {
TrainCanvas.repaint();
});
time.start();
}
public void paintComponent(Graphics g) {
Graphics2D gg = (Graphics2D) g;
int w = getWidth();
int h = getHeight();
int trainW_1 = 100;
int trainH_1 = 5;
int trainSpeed_1 = 3;
int x = lastX + trainSpeed_1;
if (x > w + trainW_1) {
x = -trainW_1;
}
gg.setColor(Color.BLACK);
gg.fillRect(x, h/2 + trainH_1, trainW_1, trainH_1);
lastX = x;
//Draw Frog
frog = new Rectangle(f_x,f_y,25,25);
g3.fill(frog);
g3.setColor(Color.GREEN);
}
}
这是绘制主游戏的代码,我之前使用了一个线程,但被告知摇摆计时器更有用。
计时器应该重新绘制我的游戏,但似乎我什至无法正确实现它,即使我被告知这是正确的。任何帮助表示赞赏!
解决方案
推荐阅读
- azure - 获取 API 管理自定义域列表
- docker - DockerOperator 失败:docker.sock 的权限被拒绝
- typo3 - 打字稿代码的滑动图像问题
- openssl - openssl 未验证 x509 CN
- sql - 从包含 120 亿条记录的 SQL 表中删除约 30 亿条记录的有效方法
- node.js - 如何从 json 响应中连接来自不同对象数组的值?Node.js、Discord.js
- spring - 使用 Spring MVC 进行异步流式传输
- excel - 如何找到构成数字总和的源单元格?
- ruby-on-rails - Rails Zendesk API search
- python-3.x - 比较来自 input() 的两个字符串时如何使用“或”