【发布时间】: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