Пример #1
0
    private void DrawScratch()
    {
        //スクラッチの向き描画
        foreach (ScratchChip sc in lstscratch)
        {
            int x, y, h, num;



            y = datacalc.realtimey(now.dot, sc.step);
            h = datacalc.JudgeLineY - y + _scratch_frame.height / 2;


            if (sc.data > 0)
            {
                x   = datacalc.realtimelinex(lr);
                num = 0;
            }
            else
            {
                x   = datacalc.realtimelinex(lr) + _scratch_frame.width;
                num = 1;
            }
            //判定までは赤表示
            if (sc.judge == EnumJudge.NOTYET || sc.judge == EnumJudge.BAD)
            {
                _scratch_frame_bad.Draw(x, y, num);
            }
            //判定ラインより上まで描画
            if (h > 0)
            {
                _scratch_frame.DrawUpperRect(x, y, num, h);
            }
        }
    }
Пример #2
0
 /// <summary>
 /// スクラッチコアの描画
 /// </summary>
 private void DrawCore()
 {
     //スクラッチコア描画
     foreach (ScratchChip scr in lstscratch)
     {
         _scratch_core.Draw(datacalc.realtimelinex(lr), datacalc.realtimey(now.dot, scr.step));
     }
 }
Пример #3
0
 public static void Draw()
 {
     DX.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0);
     _frame.Draw(0, datacalc.JudgeLineY);
     _rainbow.DrawModi(0, datacalc.JudgeLineY, datacalc.ScreenWidth, 2, rcount++);
     rcount = rcount % 8;
     //DX.DrawGraph(0, datacalc.JudgeLineY, GHframe, DX.TRUE);
 }
Пример #4
0
 /// <summary>
 /// 繪製物件
 /// </summary>
 /// <param name="g">Graphics物件</param>
 public virtual void Draw(Graphics g)
 {
     if (Visible)
     {
         UIOffSetY = 0;
         Propertys.AllDoBeforeDraw(g);
         DrawObject.Draw(g, Layout.Rectangle);
         Propertys.AllDoAfterDraw(g);
     }
 }
Пример #5
0
 public override void Draw(Graphics g)
 {
     if (Visible)
     {
         Propertys.AllDoBeforeDraw(g);
         DrawObject.Draw(g, Layout.Rectangle);
         UIObjects.AllDrawSelf(g);
         Propertys.AllDoAfterDraw(g);
     }
 }
Пример #6
0
    /// <summary>
    /// フェーダーの光とフェーダーの描画
    /// </summary>
    /// <param name="faderValue">フェーダーの値</param>
    public static void draw()
    {
        int Blenddelta = 0;// (int)((nowmillis / 10) % 40)*2;

        DX.SetDrawBlendMode(DX.DX_BLENDMODE_ADD, 168 + Blenddelta);
        DrawObject _faderLR    = _faderC;
        int        width       = 16 * 6;                            //緑、赤、紫、それぞれのフェーダーの幅(dot)
        int        faderx      = (int)(width * inputFader.FaderPercent());
        int        faderLeftX  = datacalc.ScreenWidth / 2 - 16 * 3; //フェーダーの光の左端
        double     deltadelta  = 0.05;
        double     deltaLeft   = (inputFader.FaderPercentCenterMin() - 0.5) * deltadelta;
        double     deltaRight  = (inputFader.FaderPercentCenterMax() - 0.5) * deltadelta;
        double     deltaCLeft  = (inputFader.FaderPercent() - 0.5 - 0.01) * deltadelta;
        double     deltaCRight = (inputFader.FaderPercent() - 0.5 + 0.01) * deltadelta;

        //int deltax = 10
        if (inputFader.GetFaderState() == EnumFaderState.LEFT)
        {
            deltaLeft = (inputFader.FaderPercentMin() - 0.5) * deltadelta;
            //deltaCRight = -deltaCRight;
            deltaRight  = -deltaRight;
            _faderLR    = _faderL;
            faderLeftX -= width;//フェーダーの光の左端
            faderx     += width;
        }
        else if (inputFader.GetFaderState() == EnumFaderState.RIGHT)
        {
            deltaRight  = (inputFader.FaderPercentMax() - 0.5) * deltadelta;
            deltaLeft   = -deltaLeft;
            _faderLR    = _faderR;
            faderLeftX += width;//フェーダーの光の左端
            faderx     -= width;
        }
        if (faderx > 8)
        {
            _faderLR.DrawModi(
                new Point((int)(faderLeftX * (1 + deltaLeft)), datacalc.JudgeLineY - 60),               //左上
                new Point((int)(faderLeftX * (1 + deltaCLeft)) + faderx - 7, datacalc.JudgeLineY - 60), //右上
                new Point(faderLeftX + faderx - 7, datacalc.JudgeLineY + 16),                           //右下
                new Point(faderLeftX, datacalc.JudgeLineY + 16)                                         //左下
                );
        }
        //if (faderx + 8 < width)
        {
            _faderLR.DrawModi(
                new Point((int)(faderLeftX * (1 + deltaCRight) + faderx + 7), datacalc.JudgeLineY - 60), //左上
                new Point((int)(faderLeftX * (1 + deltaRight) + width), datacalc.JudgeLineY - 60),       //右上
                new Point(faderLeftX + width, datacalc.JudgeLineY + 16),                                 //右下
                new Point(faderLeftX + faderx + 7, datacalc.JudgeLineY + 16)                             //左下
                );
        }
        DX.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0);
        _fader.Draw((int)(faderLeftX + faderx), datacalc.JudgeLineY + 16);
    }
Пример #7
0
 /// <summary>
 /// 繪製物件
 /// </summary>
 /// <param name="g">Graphics物件</param>
 public override void Draw(Graphics g)
 {
     if (Visible)
     {
         UIOffSetY = 0;
         Skills.AllDoBeforeDraw(g);
         Propertys.AllDoBeforeDraw(g);
         DrawObject.Draw(g, Layout.Rectangle);
         Propertys.AllDoAfterDraw(g);
         Skills.AllDoAfterDraw(g);
     }
 }
Пример #8
0
 /// <summary>
 /// Gets the barcode image.
 /// </summary>
 /// <param name="index">The index.</param>
 /// <param name="maxBarHeight">Height of the max bar.</param>
 /// <returns></returns>
 public Image GetBarcodeImage(int index, int maxBarHeight)
 {
     return(DrawObject.Draw(GetBarcodeText(index), maxBarHeight));
 }
Пример #9
0
    public void Draw()
    {
        //赤と紫の縦帯
        DrawPlayline(now.dot);
        LRDrawObject lrdraw;

        if (lr == CdjData.Left)
        {
            lrdraw = _ldraw;
        }
        else
        {
            lrdraw = _rdraw;
        }

        if (this.judge == EnumJudge.BAD)
        {
            //失敗オブジェを描く(×印付き)
            //まだアクティブになっていない
            DX.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0);
            if (quecount > 0)
            {
                _disk.Draw(datacalc.realtimerecordx(lr), datacalc.realtimey(now.dot, startstep));
                //キューの量
                lrdraw.diskque.Draw(datacalc.realtimerecordx(lr), datacalc.realtimey(now.dot, startstep), (int)(quecount / 10));
                _X.Draw(datacalc.realtimerecordx(lr), datacalc.realtimey(now.dot, startstep));
            }
            //カットイン矢印
            lrdraw.cutin.Draw(datacalc.ScreenCenterLine, datacalc.realtimey(now.dot, startstep));
            _X.Draw(datacalc.ScreenCenterLine, datacalc.realtimey(now.dot, startstep));
        }
        else if (this.judge == EnumJudge.NOTYET)
        {
            //未判定オブジェを描く
            DX.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0);
            if (ActiveState == EnumActiveState.NEXT)//皿が光ったり回ったり
            {
                if (quecount > 0)
                {
                    //皿のびーるの赤と紫
                    DX.SetDrawBlendMode(DX.DX_BLENDMODE_ALPHA, 60);
                    lrdraw.diskshadow.Draw(datacalc.realtimerecordx(lr), datacalc.realtimey(now.dot, startstep), 0);
                    lrdraw.diskshadow.DrawModi(datacalc.realtimerecordx(lr), datacalc.realtimey(now.dot, startstep) + lrdraw.diskshadow.height, lrdraw.diskshadow.width, datacalc.JudgeLineY - datacalc.realtimey(now.dot, startstep), 1);
                    int y;
                    if (now.millis - activemillis < 100)
                    {
                        y = (int)(datacalc.realtimey(now.dot, startstep) + datacalc.JudgeLineY * (now.millis - activemillis) / 100);
                    }
                    else
                    {
                        y = datacalc.JudgeLineY;
                    }
                    if (y > datacalc.JudgeLineY)
                    {
                        y = datacalc.JudgeLineY;
                    }

                    //皿がビートに合わせて光る
                    DX.SetDrawBlendMode(DX.DX_BLENDMODE_ADD, 128);
                    //double zoom = 1 - ((nowmillis % 500) * 1f / 1000);
                    double zoom = 1 - ((now.judgementlinestep % (datacalc.resolution / 4)) * 1f / (datacalc.resolution / 2));
                    _diskbeat.DrawZoomRotate(datacalc.realtimerecordx(lr), y, zoom, 0);
                    //皿
                    DX.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0);
                    double angle = (now.millis % 1000) * datacalc.PI / 500;
                    _disk.DrawZoomRotate(datacalc.realtimerecordx(lr), y, 1, angle);
                    double q = (quecount / 10);
                    if (q > 360)
                    {
                        q = 360;
                    }
                    //キューの量
                    lrdraw.diskque.Draw(datacalc.realtimerecordx(lr), y, (int)q);
                    //キューの今の位置
                    _cue.Draw(datacalc.realtimerecordx(lr), y, (int)((quecount / 10 - 1) % 36));

                    DX.SetDrawBlendMode(DX.DX_BLENDMODE_ADD, (int)(96 * (zoom - 0.5)));
                    _diskbeat.DrawZoomRotate(datacalc.realtimerecordx(lr), y, 1, 0);
                    DX.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0);
                }
            }
            else
            {
                //まだアクティブになっていない
                if (quecount > 0)
                {
                    _disk.Draw(datacalc.realtimerecordx(lr), datacalc.realtimey(now.dot, startstep));
                    //キューの量
                    lrdraw.diskque.Draw(datacalc.realtimerecordx(lr), datacalc.realtimey(now.dot, startstep), (int)(quecount / 10));
                }
            }
            //カットイン矢印
            lrdraw.cutin.Draw(datacalc.ScreenCenterLine, datacalc.realtimey(now.dot, startstep));
        }
    }