我正在尝试通过将其 x 和 y 值转换为负值(我的屏幕是 500 x 500 并且无法调整大小)来测试从屏幕中删除图像,然后通过转换将其返回到下一张幻灯片中的屏幕x 和 y 值恢复为正数,因此我可以将它们转换回负数以再次删除它们。
在一个类中(在屏幕上显示一个红色指针,我可以移动到其他项目的边界)我有这个:
import java.awt.Rectangle;
public void checkBoundariesTouching() {
NextSlide next = MainFrame.getSlide();
for (int i = 0; i < 1; i++) {
if (getBounds().intersects(next.getBounds())) {
MainFrame.slide += 1;
在我的 MainFrame 中,这张幻灯片的增加改变了背景,使我的幻灯片变得有趣,并改变了显示的文字。
我有另一个生成黑色矩形的类,我将它们一个一个删除以揭示我随后解释的写作要点。我删除这样的矩形:
import java.awt.Rectangle;
public class BlackRectangle extends Entity {
public BlackRectangle(int x, int y) {
super(x, y);
}
public void update() {
int slide = MainFrame.getSlide();
checkBoundariesTouching();
if (slide >= 2) {
if (x < 0) {
x = -x;
}
if (y < 0) {
y = -y;
}
checkBoundariesTouching();
}
}
public void checkBoundariesTouching() {
Pointer pointer = MainFrame.getPointer();
NextSlide next = MainFrame.getSlide();
if (getBounds().intersects(pointer.getBounds())) {
x = -x;
y = -y;
}
当幻灯片等于 1 时,我可以毫无问题地删除黑色方块。但是,当指针接触黑色矩形时,当我增加到下一张幻灯片(从幻灯片 2 开始)时,它会移出屏幕,但是一旦我将指针移离它,黑色矩形就会返回并覆盖信息。有没有办法可以修复此代码,因为它只更改更新方法?