【发布时间】:2018-08-16 21:28:39
【问题描述】:
我目前正在使用 Java 制作 Color Switch 游戏的副本,我使用 Graphics 创建了一个 4 色矩形(作为障碍物),但我不确定如何使用中心作为点来旋转所有线条旋转(制作动画)。
我想让它以一定的速度旋转,我怎样才能开始旋转并让它保持旋转?
这是我的代码;
package rectangle;
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
class Frame extends JFrame{
/**
*
*/
private static final long serialVersionUID = 1L;
public static final Color colors[] = {new Color(50, 226, 241),
new Color(244, 222, 14), new Color(140, 18, 251), new Color(255, 0, 128)};
public static int xval = 0;
public static int yval = 0;
public static int strokeval = 20;
public static int xsizeFrame = 450;
public static int ysizeFrame = 450;
public static int xMidFrame = xsizeFrame/2;
public static int yMidFrame = ysizeFrame/2;
public Frame(){
JPanel panel=new JPanel();
getContentPane().add(panel);
setSize(xsizeFrame,ysizeFrame);
}
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
g2.setStroke(new BasicStroke(strokeval));
g2.setColor(colors[0]);
Line2D lin2 = new Line2D.Float(xMidFrame-50-strokeval,yMidFrame-50,xMidFrame-50-strokeval,yMidFrame+50);
g2.draw(lin2);
g2.setColor(colors[1]);
Line2D lin1 = new Line2D.Float(xMidFrame-50,yMidFrame-50-strokeval,xMidFrame+50,yMidFrame-50-strokeval);
g2.draw(lin1);
g2.setColor(colors[2]);
Line2D lin3 = new Line2D.Float(xMidFrame+50+strokeval,yMidFrame-50,xMidFrame+50+strokeval,yMidFrame+50);
g2.draw(lin3);
g2.setColor(colors[3]);
Line2D lin4 = new Line2D.Float(xMidFrame-50,yMidFrame+50+strokeval,xMidFrame+50,yMidFrame+50+strokeval);
g2.draw(lin4);
}
public static void main(String []args){
Frame s=new Frame();
s.setVisible(true);
}
}
谢谢。
【问题讨论】:
-
请参阅 Detection/fix for the hanging close bracket of a code block 了解我无法再费心修复的问题。