我正在做一个简单的游戏,你在屏幕上移动一个球并试图避开屏幕上的其他块.
我遇到的问题是,当我尝试评估你是否正在触摸另一个块时,无论我的布尔值等于什么,我的if语句总是返回第一个结果.这是我评估语句的方法
public void actionPerformed(ActionEvent evt) {
//Move the ball
myY = myY - 5;
if(myY < 0){
myY = 0;
}
//test if it is intersecting
boolean sect = testIntersection(r, playa);
System.out.println(sect);
if(sect = true){
cir = Color.BLACK;
System.out.println("Intersected");
}else{
cir = Color.RED;
}
playa.setFrame(myX, myY, 30,30);
repaint();
}
Run Code Online (Sandbox Code Playgroud)
以下是发送sect布尔值的代码部分:
public static boolean testIntersection(Shape shapeA, Shape shapeB) {
Area areaA = new Area(shapeA);
areaA.intersect(new Area(shapeB));
return !areaA.isEmpty();
}
Run Code Online (Sandbox Code Playgroud)
这是整个代码:
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics; …Run Code Online (Sandbox Code Playgroud)