protected void LoadContent() { //Chargement des ressources int blockSize = VO_GUI.BlockSize; if (_MenuBack == null) { _MenuBack = new VO_Sprite(ImageManager.GetPermanentMenu(_Width, _Height, ViewerEnums.MenuType.Back)); } if (_MenuSelector == null) { _MenuSelector = new VO_Sprite(ImageManager.GetPermanentMenu(_Width - blockSize, (int)_Messages[0].Height + blockSize, ViewerEnums.MenuType.Front)); } }
/// <summary> /// Vérifie qu'un point touche le perso /// </summary> /// <param name="point"></param> /// <returns></returns> public bool PointIsInCharacter(Point point) { VO_Animation anim = GameCore.Instance.GetCharAnimationById(this.CharacterId, this.CurrentAnimationType); Point animPos = GetAnimPosition(); Rectangle sizeChar = new Rectangle(animPos.X, animPos.Y, (int)((float)anim.SpriteWidth * _Scale.X), ((int)((float)anim.SpriteHeight * _Scale.Y))); if (sizeChar.Contains(point)) { VO_Sprite sprite = this.AllDirectionsSprites[(int)this.CurrentDirection].Sprite; if (sprite != null) { /*Point relativePoint = new Point(point.X - animPos.X, point.Y - animPos.Y); * Rectangle source = new Rectangle(sprite.Source.X + relativePoint.X, sprite.Source.Y + relativePoint.Y, 1, 1); * Color[] colors1D = new Color[1]; * sprite.Image.GetData(0, source, colors1D, 0, 1); * * Color color = colors1D[0]; * if (color.A != 0 || color.R != 0 || color.G != 0 || color.B != 0) * { * return true; * } * * Sprite*/ return(true); /*for (int x = 0; x < sprite.Width; x++) * { * if (relativePoint.X == x) * { * for (int y = 0; y < sprite.Height; y++) * { * if (relativePoint.Y == y) * { * Color color = colors1D[x + y * sprite.Width]; * if (color.A != 255) * { * return true; * } * } * } * } * }*/ } } return(false); }