/// <summary> /// コンストラクタ /// ファイル名と位置を指定 /// </summary> /// <param name="_filename"></param> /// <param name="_align"></param> public DrawObject(string _filename, EnumAlign _align) { gh = DX.LoadGraph(_filename); align = _align; DX.GetGraphSize(gh, out width, out height); SetAlign(align); }
public void Initialize(int x, int y, int upperheight, int num, EnumPriority priority, EnumAlign align) { X = x; Y = y; Priority = priority; ArrayNum = num; Align = EnumAlign.NONE; UpperHeight = upperheight; }
/// <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> /// コンストラクタ /// ファイル名と位置を指定 /// xの分割数、yの分割数を指定して配列で使用可能に /// </summary> /// <param name="_filename"></param> /// <param name="_align"></param> /// <param name="xdiv"></param> /// <param name="ydiv"></param> public DrawObject(string _filename, EnumAlign _align, int xdiv, int ydiv) { gh = DX.LoadGraph(_filename); DX.GetGraphSize(gh, out width, out height); gharray = new int[xdiv * ydiv]; DX.LoadDivGraph(_filename, xdiv * ydiv, xdiv, ydiv, width / xdiv, height / ydiv, gharray); align = _align; DX.GetGraphSize(gharray[0], out width, out height); SetAlign(align); }
/// <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); }
private void SetAlign(EnumAlign align) { switch (align) { case EnumAlign.LEFTTOP: dx = 0; dy = 0; break; case EnumAlign.CENTERTOP: dx = -width / 2; dy = 0; break; case EnumAlign.RIGHTTOP: dx = -width; dy = 0; break; case EnumAlign.LEFTCENTER: dx = 0; dy = -height / 2; break; case EnumAlign.CENTERCENTER: dx = -width / 2; dy = -height / 2; break; case EnumAlign.RIGHTCENTER: dx = -width; dy = -height / 2; break; case EnumAlign.LEFTBOTTOM: dx = 0; dy = -height; break; case EnumAlign.CENTERBOTTOM: dx = -width / 2; dy = -height; break; case EnumAlign.RIGHTBOTTOM: dx = -width; dy = -height; break; default: dx = 0; dy = 0; break; } }
public void GetAlignDeltaXY(EnumAlign align, out int deltax, out int deltay) { switch (align) { case EnumAlign.LEFTTOP: deltax = 0; deltay = 0; break; case EnumAlign.CENTERTOP: deltax = -width / 2; deltay = 0; break; case EnumAlign.RIGHTTOP: deltax = -width; deltay = 0; break; case EnumAlign.LEFTCENTER: deltax = 0; deltay = -height / 2; break; case EnumAlign.CENTERCENTER: deltax = -width / 2; deltay = -height / 2; break; case EnumAlign.RIGHTCENTER: deltax = -width; deltay = -height / 2; break; case EnumAlign.LEFTBOTTOM: deltax = 0; deltay = -height; break; case EnumAlign.CENTERBOTTOM: deltax = -width / 2; deltay = -height; break; case EnumAlign.RIGHTBOTTOM: deltax = -width; deltay = -height; break; default: deltax = 0; deltay = 0; break; } }
/// <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> /// 配列版の描画Align指定付き /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="num"></param> /// <param name="tmpalign"></param> public void Draw(int x, int y, int num, EnumAlign tmpalign) { SetAlign(tmpalign); DX.DrawGraph(x + dx, y + dy, gharray[num], DX.TRUE); SetAlign(align); }
/// <summary> /// パラメータフル指定コンストラクタ /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="num"></param> /// <param name="priority"></param> /// <param name="align"></param> public DrawParam(int x, int y, int upperheight, int num, EnumPriority priority, EnumAlign align) { Initialize(x, y, upperheight, num, priority, align); }
public DrawParam(int x, int y, int num, EnumPriority priority, EnumAlign align) { Initialize(x, y, -1, num, priority, align); }