В принципе, я просто опробовал очень простой тест на столкновение для другой программы, над которой я работаю, но это кажется таким простым (или, может быть, я просто идиот!) В любом случае, вот код :Столкновение, если утверждение, похоже, не работает
public void run() {
while(true){
try {
if(rect.rect.intersects(rect1.rect)){
System.out.println("Test1");
if(rect1.x == ((rect.x + rect.width)-1)){
System.out.println("Test2");
rect1.x = rect.x + rect.width;
rect1.dx = 0;
}
}
rect.update();
rect1.update();
Thread.sleep(50);
Программа не может пройти тест2!
Любая помощь для решения этой проблемы очень ценится! Заранее спасибо!
компонент краски часть:
public void paintComponent(Graphics g){
rect1.paint(g);
rect2.paint(g);
g.drawString(String.valueOf(rect1.x), 100, 100);
g.drawString(String.valueOf(rect2.x+rect2.width), 100, 150);
repaint();
}
Изображение:
Ну, возможно, 'rect.rect' не пересекает' rect1.rect' ... отредактируйте это в короткой, но * полной * программе, которая демонстрирует проблему ... –
Есть ли у вас какие-либо основания предполагать, что выражение во втором, если верно? – VeeArr
Это поможет, если вы объясните, что означает этот тест. – Robinson