Lord_SoniK | Bon voici mon code, qui ne marche pas.
J'ai une ArgumentException sur la ligne 15 et comme détails : {"Must provide at least one rank."}
Code :
- public static bool test(cSprite p_Sprite1, cSprite p_Sprite2)
- {
- bool bColl = false;
- Rectangle Rect1 = new Rectangle((int)p_Sprite1.fPosX, (int)p_Sprite1.fPosY, (int)p_Sprite1.Image.iWidth, (int)p_Sprite1.Image.iHeight);
- Rectangle Rect2 = new Rectangle((int)p_Sprite2.fPosX, (int)p_Sprite2.fPosY, (int)p_Sprite2.Image.iWidth, (int)p_Sprite2.Image.iHeight);
-
- Rect1.Intersect(Rect2);
- Rectangle RectU = new Rectangle(Rect1.X, Rect1.Y, Rect1.Width, Rect1.Height);
- int[] s1, s2;
- if(!Rect1.IsEmpty)
- {
- Rect1.X = (int)p_Sprite1.fPosX - RectU.X;
- Rect1.Y = (int)p_Sprite1.fPosY - RectU.Y;
- int [] size = {Rect2.Width, Rect2.Height};
- s1 = (int[])p_Sprite1.Image.Texture.LockRectangle(typeof(int[]), 0, Rect1, LockFlags.ReadOnly);
- p_Sprite1.Image.Texture.UnlockRectangle(0);
- Rect2.X = (int)p_Sprite2.fPosX - RectU.X;
- Rect2.Y = (int)p_Sprite2.fPosY - RectU.Y;
- s2 = (int[])p_Sprite2.Image.Texture.LockRectangle(typeof(int[]), 0, Rect2, LockFlags.ReadOnly);
- p_Sprite2.Image.Texture.UnlockRectangle(0);
- int i = 0, j = 0;
- while (!bColl && i < s1.GetLength(0))
- {
- while (!bColl && j < s2.GetLength(1))
- {
- if (s1[j * Rect1.Width + i] != Color.Transparent.ToArgb() && s2[j * Rect1.Width + i] != Color.Transparent.ToArgb())
- bColl = true;
- j++;
- }
- i++;
- }
- }
- return bColl;
- }
|
Si quelqu'un comprend ... |