矩形的交集问题

本文关键字:问题 | 更新日期: 2023-09-27 18:31:47

我试图让外星人与射手相交,当相交发生时,我想退出游戏。但是,它们直接通过底部的射手,甚至没有执行代码

这是我的代码:

Rectangle rectlauncher = new Rectangle(launcherXPos, 720, launcherImg.Width, launcherImg.Height);
Rectangle rectinvader = new Rectangle(invaders[Count].GetXPos(), invaders[Count].GetYPos(),invaderImg.Width, invaderImg.Height);
if (rectinvader.Intersects(rectlaucher))
   {
    this.Exit();
}

代码的值:

launcherXPos = 512;
            invaderDirection = -1;
            invaderSpeed = 20;
            invader = new invader[55]; //displays the number entered of 'invaders'
            int XPos = 512;
            int YPos = 100;

矩形的交集问题

也许您正在用零以外的原点绘制一些元素?

尝试解决此问题的一种方法是在碰撞处设置一个断点,该断点仅在您点击空格键时触发。开始玩游戏,何时应该相交,点击空格键,然后查看您在矩形中设置的值。试着弄清楚为什么它们不能代表真正发生的事情。