Javatron碰撞,组合框

Javatron碰撞,组合框,java,arraylist,combobox,collision,Java,Arraylist,Combobox,Collision,我正在做我的学校项目“Tron”。我是个编程新手。。。我与arraylist进行了一些碰撞,它们工作正常。但我无法与其他对象进行碰撞。。。我用这个: snake1x和snake1y是第一条蛇的坐标,obstacleX是包含其他对象坐标的arraylist for(int l=0;l<obstacleX.size();l++) { if((snake1x == obstacleX.get(l)) && (snake1y == obstacleY.get(l))) { runn

我正在做我的学校项目“Tron”。我是个编程新手。。。我与arraylist进行了一些碰撞,它们工作正常。但我无法与其他对象进行碰撞。。。我用这个: snake1x和snake1y是第一条蛇的坐标,obstacleX是包含其他对象坐标的arraylist

for(int l=0;l<obstacleX.size();l++) {
if((snake1x == obstacleX.get(l)) && (snake1y == obstacleY.get(l))) {
running = false;
}
}
for(int l=0;l

注意InTayLay.GET(0)和InTayLay.GET(1)之间的差异。即使两者是1,它们都是不同的对象。

SnaKe1x和SnaKe1y的数据类型是什么?如果它们是对象,您可能需要考虑使用“相等”。方法来比较对象。==测试它们是否引用了相同的对象。我认为这可能是问题所在。它们是只包含坐标的整数,然后它们被添加到ArrayList中-因此创建了“tron”,这就是我如何使trailI仍然认为您遇到了“自动装箱”问题的原因并使用“=”比较不同的对象操作员。如果不了解obstacleX ArrayList是如何填充的,以及snake1x是如何声明和分配的,就很难为您找到解决第一个问题的精确答案。我已经创建了一个带有测试程序的答案,以向您展示可能令人惊讶的结果。但希望它能帮助您解释您遇到的问题。
if (snake1 = true) {
 for (int p = 0; p < pathx1.size(); p++) {
  g.setColor(Color.white);
   g.fillRect(pathx1.get(p), pathy1.get(p), width, height);
import java.util.*;

public class AutoBoxingTest
{
    public static void main(String[] args) {
        int i = 1;
        Integer intObj = 1;
        ArrayList<Integer> intArray = new ArrayList<>();
        intArray.add(new Integer(1)); // Forcefully create a new Integer object
        intArray.add(1);

        if(i==intArray.get(0))
            System.out.println("Equals");
        else 
            System.out.println("Not Equals");

        if(intObj==intArray.get(0))
            System.out.println("Equals");
        else
            System.out.println("Not Equals");

        if(intObj==intArray.get(1))
            System.out.println("Equals");
        else
            System.out.println("Not Equals");
    }
}
Equals
Not Equals
Equals