/// <summary> /// 判定の描画 /// </summary> /// <returns></returns> public override bool Draw() { if (_endmillis < now.millis) { return(false); } int x = datacalc.ScreenCenterLine; if (now.millis - _startmillis < 100) { DX.SetDrawBlendMode(DX.DX_BLENDMODE_ALPHA, (int)((now.millis - _startmillis) * 2.5)); if (_lr == CdjData.Left) { x -= (int)((100 - now.millis + _startmillis) * 2); } else { x += (int)((100 - now.millis + _startmillis) * 2); } } DX.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0); if (_endmillis - now.millis < 250) { DX.SetDrawBlendMode(DX.DX_BLENDMODE_ALPHA, (int)((_endmillis - now.millis))); } if (drawobj != null) { drawobj.DrawZoomRotate(x, (int)(datacalc.JudgeLineY - 20 - drawobj.height * _zoom), _zoom, 0); } DX.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0); return(true); }
/// <summary> /// 判定の描画 /// </summary> /// <returns></returns> public override bool Draw() { if (_endmillis < now.millis) { return(false); } double zoom = (1 - ((double)(now.millis - _startmillis) / (_endmillis - _startmillis))); DX.SetDrawBlendMode(DX.DX_BLENDMODE_ADD, (int)(zoom * 180)); drawobj.DrawZoomRotate(_x, _y, zoom * 2.5, 0); DX.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0); return(true); }
public override bool Draw() { //double deltasec = -0.1; double sec = (double)(now.millis - this._startmillis) / 100; double millis = now.millis - this._startmillis; if (now.millis > this._endmillis) { return(false); } { if (sec > 0) { int y = (int)(_y + sec * _vy + G * sec * sec); int x = (int)(_x + sec * _vx); if (x > 0 && x < datacalc.ScreenWidth && y > 0 && y < datacalc.ScreenHeight) { int toumei = (int)((this._endmillis - now.millis) * 2); if (toumei > 250) { DX.SetDrawBlendMode(DX.DX_BLENDMODE_NOBLEND, 0); } else { DX.SetDrawBlendMode(DX.DX_BLENDMODE_ADD, (int)(toumei)); } particle.DrawZoomRotate(x, y, 1, (int)((millis * _angle / 60) % 360), (int)((millis / 50) % 3)); return(true); } else { return(false); } } else { return(true); } } }
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)); } }