public EffectJudge(EnumJudge judge, int lr, double zoom) { _startmillis = now.millis; _endmillis = now.millis + 1000; _zoom = zoom; _lr = lr; switch (judge) { case EnumJudge.COOL: enumgraphic = EnumGraphic.JUDGECOOL; break; case EnumJudge.PERFECT: enumgraphic = EnumGraphic.JUDGEPERFECT; break; case EnumJudge.GREAT: enumgraphic = EnumGraphic.JUDGEGREAT; break; case EnumJudge.GOOD: enumgraphic = EnumGraphic.JUDGEGOOD; break; case EnumJudge.BAD: enumgraphic = EnumGraphic.JUDGEBAD; break; } }
/// <summary> /// 左上、右上、右下、左下を指定してそこに変形描画 /// </summary> /// <param name="p1"></param> /// <param name="p2"></param> /// <param name="p3"></param> /// <param name="p4"></param> private static void DrawModi(EnumGraphic enumgraphic, Point p1, Point p2, Point p3, Point p4, int num, EnumPriority priority, EnumBLEND blend, int blendparam) { GraphicObject o = GraphicObject.GetGraphicObject(enumgraphic); MyDraw.DrawModiGraph( p1.X, p1.Y, p2.X, p2.Y, p3.X, p3.Y, p4.X, p4.Y, o.GHandle(frame, num), priority, blend, blendparam); }
/// <summary> /// /// </summary> /// <param name="enumgraphic"></param> /// <param name="param"></param> public static void Draw(EnumGraphic enumgraphic, DrawParam param) { if (param.UpperHeight < 0) { Draw(enumgraphic, param.X, param.Y, param.ArrayNum, param.Align, param.Priority, lastblend, lastblendparam); } else { DrawUpperRect(enumgraphic, param.X, param.Y, param.ArrayNum, param.UpperHeight, param.Priority, lastblend, lastblendparam); } }
/// <summary> /// XMLから読み込んだGraphicObjectをEnumGraphic指定で取得 /// ここで実際の画像ファイルを読み込んでインスタンス化 /// </summary> /// <param name="g"></param> /// <returns></returns> public static GraphicObject GetGraphicObject(EnumGraphic g) { if (_dctGraphicObject.ContainsKey(g)) { return(_dctGraphicObject[g]); } else { return(null); } }
/// <summary> /// GraphicObjectの追加 /// デフォルトは縦分割数でアニメーションする /// アニメーション速度はAnimeFrameで指定 /// </summary> /// <param name="name">Enumの名前</param> /// <param name="filename">ファイル名</param> /// <param name="align">Drawしたときの表示位置</param> /// <param name="xdiv">横分割数</param> /// <param name="ydiv">縦分割数</param> /// <param name="AnimeFrame"></param> public void Add(EnumGraphic name, string filename, EnumAlign align, int xdiv, int ydiv, int animeframe) { RECORD record = new RECORD(); record.Name = name; record.FileName = filename; record.Align = align; record.Xdiv = xdiv; record.Ydiv = ydiv; record.AnimeFrame = animeframe; LIST.Add(record); }
/// <summary> /// 配列版の描画Align指定付き /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="num"></param> /// <param name="tmpalign"></param> private static void Draw(EnumGraphic enumgraphic, int x, int y, int num, EnumAlign tmpalign, EnumPriority priority, EnumBLEND blend, int blendparam) { int dx, dy; GraphicObject o = GraphicObject.GetGraphicObject(enumgraphic); if (tmpalign == EnumAlign.NONE) { dx = o.dx; dy = o.dy; } else { o.GetAlignDeltaXY(tmpalign, out dx, out dy); } MyDraw.DrawGraph(x + dx, y + dy, o.GHandle(frame, num), priority, blend, blendparam); }
public EffectRecord(int lr) { _startmillis = now.millis; _endmillis = now.millis + 300; _lr = lr; if (lr == CdjData.Left) { enumgraphic = EnumGraphic.PARTICLEDISCRED; } else { enumgraphic = EnumGraphic.PARTICLEDISCPURPLE; } _y = datacalc.JudgeLineY; _x = datacalc.realtimerecordx(lr); }
/// <summary> /// コンストラクタ /// ファイル名と位置を指定 /// xの分割数、yの分割数を指定して配列で使用可能に /// デフォルトはy分割数でアニメーションする /// </summary> /// <param name="_filename"></param> /// <param name="_align"></param> /// <param name="xdiv"></param> /// <param name="ydiv"></param> public GraphicObject(EnumGraphic enumgraphic, string _filename, EnumAlign _align, int xdiv, int ydiv, int _animeframe) { name = enumgraphic; gh = DX.LoadGraph(_filename); align = _align; DX.GetGraphSize(gh, out width, out height); SetAlign(align); animepattern = ydiv; animeframe = -1; if (xdiv * ydiv == 0) { return; } gharray = new int[xdiv * ydiv]; DX.LoadDivGraph(_filename, xdiv * ydiv, xdiv, ydiv, width / xdiv, height / ydiv, gharray); DX.GetGraphSize(gharray[0], out width, out height); SetAlign(align); animeframe = _animeframe; }
/// <summary> /// 拡大、回転表示(x,y)が中心座標になるのでalignのDelta(dx,dy)値は無視 /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="zoom">1で元のまま</param> /// <param name="angle">0で元のままラジアン指定</param> private static void DrawZoomRotate(EnumGraphic enumgraphic, int x, int y, double zoom, double angle, int num, EnumPriority priority, EnumBLEND blend, int blendparam) { GraphicObject o = GraphicObject.GetGraphicObject(enumgraphic); MyDraw.DrawRotaGraph(x, y, zoom, angle, o.GHandle(frame, num), priority, blend, blendparam); }
/// <summary> /// 配列版の描画(上一部分だけ描画 /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="num">配列番号</param> private static void DrawUpperRect(EnumGraphic enumgraphic, int x, int y, int num, int upperheight, EnumPriority priority, EnumBLEND blend, int blendparam) { GraphicObject o = GraphicObject.GetGraphicObject(enumgraphic); MyDraw.DrawRectGraph(x + o.dx, y + o.dy, 0, 0, o.width, upperheight, o.GHandle(frame, num), priority, blend, blendparam); }
/// <summary> /// 中心座標に対して拡大縮小描画 /// </summary> /// <param name="enumgraphic"></param> /// <param name="param"></param> public static void DrawZoomRotate(EnumGraphic enumgraphic, DrawZoomParam param) { DrawZoomRotate(enumgraphic, param.X, param.Y, param.Zoom, param.Angle, param.ArrayNum, param.Priority, lastblend, lastblendparam); }
/// <summary> /// 4点指定で描画(左上、右上、右下、左下) /// </summary> /// <param name="enumgraphic"></param> /// <param name="param"></param> public static void DrawModi(EnumGraphic enumgraphic, DrawModiParam param) { DrawModi(enumgraphic, param.P1, param.P2, param.P3, param.P4, param.ArrayNum, param.Priority, lastblend, lastblendparam); }