我試圖模擬一個初始水平速度下降的對象。我知道如何使它水平移動(無加速度),但由於方程式y = gt^2/2 + vt + y0,所以我在垂直移動時遇到了一些麻煩。由於二次方程式,我有問題。下降的物體,堅持使用定時器
我試圖做的就是做讓一個時間變量,它會通過一個由SwingTimer執行操作時都增加。所以我會有一個時間變量。但我認爲這不是最好的辦法嗎?
有人可以把我在正確的方向?
下面你可以找到我已經寫代碼:
public class Simulation extends JPanel implements ActionListener
{
Timer timer = new Timer(5,this);;
private int Xpos=0, Ypos=0, velX, velY;
private int Px,Py;
JButton dropknop;
private boolean drop = false;
public Simulation()
{
this.setBackground(Color.white);
velX = 2;
velY = 2;
dropknop = new JButton("DROP");
dropknop.addActionListener(this);
this.add(dropknop);
}
public int getXpos() {
return Xpos;
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawRect(Xpos, 0, 20, 20);
if(drop)
{
g.fillRect(Px, Py, 5, 5);
}
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource() == dropknop)
{
Px = getXpos();
this.drop = true;
}
if(Xpos<0 || Xpos>986)
{
velX = -velX;
}
if(Ypos<0 || Ypos>708)
{
velY = - velY;
}
if(drop)
{
Px += velY;
Py += velX;
}
Ypos += velY;
Xpos += velX;
repaint();
}
}
預先感謝您!
爲了更好地幫助越早,張貼[SSCCE(http://sscce.org/)。 – 2013-04-21 13:29:40
檢查相關模擬[here](http://stackoverflow.com/q/11228554/230513)。 – trashgod 2013-04-21 13:38:51