2012-04-19 98 views
0

我想让外星人与射手相交,当交点发生时,我想退出游戏。然而,他们在右下角穿过射手没有代码,甚至执行矩形的交点问题

这是我的代码:代码

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; 
+0

你的价值观是错误的,你是唯一能找出原因的人。你提供的代码应该没问题。 – 2012-04-19 21:39:28

+0

值看起来不错,你可以重新检查上面编辑的版本请frey,谢谢kuttah x。 – user1275084 2012-04-19 21:48:19

+0

该代码仍然看起来不错。我认为你的逻辑在其他地方一定是错的。 – 2012-04-19 21:53:22

回答

1

也许你正在绘制一些你元素的原点不是零?

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

+0

哇,那个空间断点的东西真棒,我想知道为什么我从来没有想过它之前:) – neeKo 2012-04-20 09:25:46