예제 #1
0
파일: TextureString.cs 프로젝트: sinshu/dtf
 public void OnPaint(IScreen scr, ControlContext cc, int x, int y)
 {
     if (visible)
     {
         Update();
         scr.BlendSrcAlpha();                 // 背景が描画されてはいけないので…。
         scr.Blt(texture, x, y);
     }
 }
예제 #2
0
파일: TextureImage.cs 프로젝트: sinshu/dtf
        public virtual void OnPaint(IScreen scr, ControlContext cc, int x, int y)
        {
            if (!visible)
            {
                return;
            }

            ITexture tex = loader.GetTexture(loaderOffset);

            if (tex != null)
            {
                if (color != null)
                {
                    scr.SetColor(color.Value);
                    scr.Blt(tex, x, y);
                    scr.ResetColor();
                }
                else
                {
                    scr.Blt(tex, x, y);
                }
            }
        }
예제 #3
0
        public void DrawImage(GameImage image, int width, int height, int x, int y)
        {
            if (x + width < 0)
            {
                return;
            }
            if (x - width > Settings.SCREEN_WIDTH)
            {
                return;
            }
            if (y + height < 0)
            {
                return;
            }
            if (y - height > Settings.SCREEN_HEIGHT)
            {
                return;
            }

            if (currentDrawMode != DrawMode.Alpha)
            {
                screen.BlendSrcAlpha();
                currentDrawMode = DrawMode.Alpha;
            }

            screen.SetColor(255, 255, 255, 255);
            screen.Blt(textures[(int)image], x, y);
        }
예제 #4
0
        public virtual void OnPaint(IScreen scr , ControlContext cc , int x , int y)
        {
            if (!visible) return ;

            ITexture tex = loader.GetTexture(loaderOffset);
            if ( tex != null )
            {
                if ( color != null )
                {
                    scr.SetColor(color.Value);
                    scr.Blt(tex , x , y);
                    scr.ResetColor();
                }
                else
                {
                    scr.Blt(tex , x , y);
                }
            }
        }
예제 #5
0
파일: TextureButton.cs 프로젝트: sinshu/dtf
        public virtual void OnPaint(IScreen scr , ControlContext cc , int x , int y)
        {
            if (!visible) return ;

            if (width == 0 || height == 0)
            {
                ITexture t0 = loader.GetTexture(0);
                // ボタンサイズを取得しておき、これをマウスの判定矩形として利用する
                if (t0 != null)
                {
                    width = (int)t0.Width;
                    height = (int)t0.Height;
                }
            }

            int mx, my;
            if (cc.MouseInput != null)
                cc.MouseInput.GetPos(out mx, out my);
            else
                mx = my = 0;

            bool isHover =
                (x <= mx) && (mx < x + width) &&
                (y <= my) && (my < y + height);

            bool isDown =
                (cc.MouseInput != null) ? cc.MouseInput.IsPress(MouseInput.Button.Left) : false;

            // 前フレームで、
            // isHover状態でかつisDown
            // 今回のフレームで
            // isHover状態かつ、!isDown
            // ならば、ボタンが押されたとしてボタンイベント発生。

            isOnDown = false;
            if (enable)
            {
                if (lastIsHover && lastIsDown && isHover && !isDown)
                {
                    if ( OnClick != null )
                    {
                        OnClick(scr , cc);
                    }
                    isOnDown = true;
                }
                if (lastIsHover && !lastIsDown && isHover && isDown)
                {
                    if (OnDown != null)
                        OnDown(scr, cc);
                }
            }
            lastIsDown = isDown;
            lastIsHover = isHover;

            int pattern;
            if (!enable)
                pattern = 3;
            else if (!isHover)
                pattern = 0;
            else if (isDown)
                pattern = 1;
            else
                pattern = 2;

            ITexture tex = loader.GetTexture(pattern + loaderOffset);
            if ( tex != null )
            {
                if ( color != null )
                {
                    scr.SetColor(color.Value);
                    scr.Blt(tex , x , y);
                    scr.ResetColor();
                }
                else
                {
                    scr.Blt(tex , x , y);
                }
            }
        }
예제 #6
0
        public virtual void OnPaint(IScreen scr, ControlContext cc, int x, int y)
        {
            if (!visible)
            {
                return;
            }

            if (width == 0 || height == 0)
            {
                ITexture t0 = loader.GetTexture(0);
                // ボタンサイズを取得しておき、これをマウスの判定矩形として利用する
                if (t0 != null)
                {
                    width  = (int)t0.Width;
                    height = (int)t0.Height;
                }
            }

            int mx, my;

            cc.MouseInput.GetPos(out mx, out my);
            bool isHover =
                (x <= mx) && (mx < x + width) &&
                (y <= my) && (my < y + height);

            bool isDown = cc.MouseInput.IsPress(MouseInput.Button.Left);

            // 前フレームで、
            // isHover状態でかつisDown
            // 今回のフレームで
            // isHover状態かつ、!isDown
            // ならば、ボタンが押されたとしてボタンイベント発生。

            isOnDown = false;
            if (enable)
            {
                if (lastIsHover && lastIsDown && isHover && !isDown)
                {
                    if (OnClick != null)
                    {
                        OnClick(scr, cc);
                    }
                    isOnDown = true;
                }
                if (lastIsHover && !lastIsDown && isHover && isDown)
                {
                    if (OnDown != null)
                    {
                        OnDown(scr, cc);
                    }
                }
            }
            lastIsDown  = isDown;
            lastIsHover = isHover;

            int pattern;

            if (!enable)
            {
                pattern = 3;
            }
            else if (!isHover)
            {
                pattern = 0;
            }
            else if (isDown)
            {
                pattern = 1;
            }
            else
            {
                pattern = 2;
            }

            ITexture tex = loader.GetTexture(pattern + loaderOffset);

            if (tex != null)
            {
                if (color != null)
                {
                    scr.SetColor(color.Value);
                    scr.Blt(tex, x, y);
                    scr.ResetColor();
                }
                else
                {
                    scr.Blt(tex, x, y);
                }
            }
        }
예제 #7
0
 public void OnPaint(IScreen scr , ControlContext cc , int x , int y)
 {
     if ( visible )
     {
         Update();
         scr.BlendSrcAlpha(); // 背景が描画されてはいけないので…。
         scr.Blt(texture , x , y);
     }
 }
예제 #8
0
 public void DrawImage(Image image, int x, int y)
 {
     screen.Blt(textures[(int)image], x, y);
 }