【问题标题】:Java tron Collision,ComboboxJava tron 碰撞,组合框
【发布时间】:2014-03-03 07:55:45
【问题描述】:

我正在尝试做我的学校项目“Tron”。在编程方面我是新手......我与arraylist发生了一些冲突,它们工作正常。但我不能与其他对象发生碰撞蛇......我正在使用这个: snake1x 和snake1y 是第一条蛇的坐标,障碍物X 是包含其他对象坐标的数组列表。

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

我已经在我的游戏中绘制了对象,但蛇只会穿过它... :( 奇怪的是,我在蛇之间的碰撞中使用了类似的方法,并且效果很好:)

我的第二个问题是组合框和为蛇选择颜色..

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);

我可以像这样简单地给它颜色,但我需要从组合框中选择它 还有我迷路的地方:)

我将不胜感激任何帮助或任何可以改进我的工作的东西,比如添加其他东西等等谢谢~~ :-)

【问题讨论】:

  • snake1x 和snake1y 的数据类型是什么?如果它们是对象,您可能需要考虑使用“equals”方法来比较对象。 == 测试它们是否引用了 SAME 对象。我认为这可能是问题所在。
  • 它们是仅保存坐标的整数,然后将它们添加到数组列表中-因此创建了“tron”,这就是我制作线索的方式
  • 我仍然认为您遇到了“自动装箱”问题并使用“==”运算符比较不同的对象。如果不查看障碍X ArrayList 是如何填充的,以及snake1x 是如何声明和分配的,就很难为您找到解决第一个问题的准确答案。我用一个测试程序创建了一个答案,向您展示可能令人惊讶的结果。但希望它能帮助您解释您遇到的问题。

标签: java arraylist combobox collision


【解决方案1】:
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

注意 intArray.get(0) 和 intArray.get(1) 之间的区别。尽管两者都是 1,但它们是不同的对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 2014-06-06
    • 1970-01-01
    • 2012-09-05
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多