所以我有这个程序来测试物体在斜坡中向下滑动的可能性,考虑到它的摩擦力,物体质量和斜坡角度。但是,如果力是正的,我需要为盒子设置动画。只是一个简单的动画,将盒子从那个点移动到斜坡的末端。但我不能。请帮忙
private void drawTransform(Graphics g, double modifier) {
// redtowhite = new GradientPaint(0,0,color.RED,100, 0,color.WHITE);
Rectangle rect = new Rectangle(130,350, 350, 15);
Rectangle box = new Rectangle((int) (rect.getX()+300), 300, 50, 50);
AffineTransform at = new AffineTransform();
at.rotate(-Math.toRadians(modifier), rect.getX(), rect.getY() + rect.height);
// Transform the shape and draw it to screen
Graphics2D g2d = (Graphics2D) g;
g2d.setColor(Color.DARK_GRAY);
// g2d.fillRect(0, 0, 350, 600);
g2d.fill(at.createTransformedShape(rect));
g2d.draw(at.createTransformedShape(box));
}
截图:
答案 0 :(得分:0)
如果你想要做的只是移动框,可以通过简单地更新它的X位置来完成。您应该可以使用类似" box.x ++"之类的东西直接操纵矩形的X位置。或者,您可以创建一个变量和引用来提供初始X坐标,然后更新该变量将"移动"盒子。一个问题是这将仅沿X轴移动框,因此您还需要某种恒定的向下力作为重力。这很容易实现,只要在没有与地面或坡道碰撞时减去方框的Y位置值。
另一种方法是使用矢量进行基于速度的移动,但是你提到动画应该很简单。如果你想要一个更平滑的动画速度移动将提供这个,但你需要先进行一些研究。