java - 为什么每次单击时它都会移动同一个圆圈,而不管距离如何?
问题描述
我正在制作一个运动游戏设计模拟器,其中“教练”添加了一个球员列表,您可以使用mouseClicked
, mouseDragged
, . 在屏幕上移动他们mouseReleased
。它通过距离公式计算最接近的“玩家”,以确定“移动”哪个圆圈。但是,无论我点击的坐标如何,移动的第一个圆圈是唯一的圆圈移动,即使有另一个圆圈更靠近。我想知道你们是否可以帮助我:
public void mousePressed(MouseEvent e)
{
xCoord = e.getX();
yCoord = e.getY();
//circleCenter = new Point((int)starterList.get(position).getPoint().getX(), (int)starterList.get(position).getPoint().getY());
//circleCoords.add(circleCenter);
//points = new ArrayList<Point>();
for(i = 0; i < starterList.size(); i++)
{
closest = 3000;
double difOfXes = starterList.get(position).getX() - xCoord;
double difOfYes = starterList.get(position).getY() - yCoord;
actualClosest = Math.sqrt(difOfXes * difOfXes + difOfYes * difOfYes);
if(actualClosest < closest)
{
closest = actualClosest;
position = i;
}
}
}
public void mouseDragged(MouseEvent e)
{
//Point circleClosest = circleCoords.get(position);
starterList.get(position).setLocation(new Point(e.getX(), e.getY()));
Point p = new Point(e.getX(), e.getY());
starterList.get(position).setPoint(p);
//starterList.get(position).getPoint().move((int) e.getX(), (int)e.getY());
//set the coords of circleList at position= e.getx
//points.add(p);
//g.drawOval(p.getX(), p.getY(), 20,20);
repaint();
}
public void mouseReleased(MouseEvent e)
{
Point release = new Point(e.getX(), e.getY());
//int circleCenterLoc = circleCoords.indexOf(circleCenter);
starterList.get(position).setPoint(release);
//playersPoints.add(points);
//playerIDs.add(position);
}
解决方案
推荐阅读
- angular - 输入字符串 | null 不能分配给类型字符串?如何在 Angular 应用程序中解决这个问题?
- python - 无法从包含表格数据 (iframe) 的网站解析元素
- sql - 根据 periodtype 获取期间的开始日期
- java - 如何从java中的doc模板生成动态word文档?
- c# - 在 Linux 上使用 WinSCP .NET 程序集
- php - 使用 PHP 函数比较 MySQL 数据库中的数据
- sql - 使用子查询更新查询以标记重复项
- r - ggstatsplot 中的“提供的非有限值”
- python - openpyxl 从 Excel 文件中读取
- python - 树莓派 pygame 无法打开 image.PNG