在这个程序中,当我按下一个键并点击屏幕时,它应该绘制一个正方形,其中包含应该可拖动的那个字母。该程序可以很好地绘制广场,但我不能为我的生活弄清楚如何使每个图标可拖动。这是我正在使用的代码。任何帮助将不胜感激。
class CLetter {
public CLetter (int x0, int y0, char name) {
Xs=new double[4];
Ys=new double[4];
NAME=name;
int tempX = x0 +50;
int tempY = y0 -50;
Xs[0]=x0; Ys[0]=y0;
Xs[1]=tempX; Ys[1]=y0;
Xs[2]=x0; Ys[2]=tempY;
Xs[3]=tempX; Ys[3]=tempY;
}
}
private boolean isLeft(int x, int y, int id) {
return (y-Ys[id])*(Xs[(id+1)%4]-Xs[id])<(x-Xs[id])*(Ys[(id+1)%4]-Ys[id]);
}
public boolean isInside(int x, int y) {
for (int i=0; i<4; i++) {
if (!isLeft(x, y, i)) return false;
}
return true;
}
public void translate(int dx, int dy) {
for (int i=0; i<4; i++) {
Xs[i] += dx;
Ys[i] += dy;
}
}
private int X;
private int Y;
private char NAME;
private double[] Xs;
private double[] Ys;
}