private void Main4_01_B(string rDir, string wDir) // 2020.7.18 ver { int[] spBarNums = new int[] { 15, 20, 25, 30 }; int[] spBarWidths = new int[] { 10, 12, 14, 16 }; int[] spBarHeights = new int[] { 200, 230, 260, 290 }; I3Color[] spBarColors = new I3Color[] { new I3Color(200, 200, 255), new I3Color(200, 255, 255), new I3Color(200, 255, 200), new I3Color(255, 200, 200), }; double[] spBarAlphas = new double[] { 0.4, 0.6, 0.8, 1.0 }; new MovieGen0001().Main01(rDir, wDir, spBarNums[1], spBarWidths[1], spBarHeights[1], spBarColors[1], spBarAlphas[1]); for (int x = 0; x < 4; x++) { if (x == 1) { continue; } new MovieGen0001().Main01(rDir, wDir, spBarNums[x], spBarWidths[1], spBarHeights[1], spBarColors[1], spBarAlphas[1]); new MovieGen0001().Main01(rDir, wDir, spBarNums[1], spBarWidths[x], spBarHeights[1], spBarColors[1], spBarAlphas[1]); new MovieGen0001().Main01(rDir, wDir, spBarNums[1], spBarWidths[1], spBarHeights[x], spBarColors[1], spBarAlphas[1]); new MovieGen0001().Main01(rDir, wDir, spBarNums[1], spBarWidths[1], spBarHeights[1], spBarColors[x], spBarAlphas[1]); new MovieGen0001().Main01(rDir, wDir, spBarNums[1], spBarWidths[1], spBarHeights[1], spBarColors[1], spBarAlphas[x]); } }
// ---- public Design_0001( DDPicture wallPicture_01, DDPicture wallPicture_02, DDPicture wallPicture_03, I3Color color_01, I3Color color_02, I3Color color_03, I3Color color_a, I3Color color_b, I3Color enemyColor_arkanoid, I3Color enemyColor_cookie, I3Color enemyColor_death_a, I3Color enemyColor_death_b, I3Color enemyColor_pata, double wallAlpha, bool 市松tic, Action <Design_0001> extendedCtor ) { this.WallPicture_01 = wallPicture_01; this.WallPicture_02 = wallPicture_02; this.WallPicture_03 = wallPicture_03; this.Color_01 = color_01; this.Color_02 = color_02; this.Color_03 = color_03; this.Color_A = color_a; this.Color_B = color_b; this.EnemyColor_Arkanoid = enemyColor_arkanoid; this.EnemyColor_Cookie = enemyColor_cookie; this.EnemyColor_Death_A = enemyColor_death_a; this.EnemyColor_Death_B = enemyColor_death_b; this.EnemyColor_Pata = enemyColor_pata; this.WallAlpha = wallAlpha; this.市松tic = 市松tic; }
private IEnumerable <bool> DrawString(int x, int y, string text, int frameMax = 600) { double b = 0.0; double bTarg = 1.0; foreach (DDScene scene in DDSceneUtils.Create(frameMax)) { if (scene.Numer == scene.Denom - 300) { bTarg = 0.0; } DDUtils.Approach(ref b, bTarg, 0.99); I3Color color = new I3Color( SCommon.ToInt(b * 255), SCommon.ToInt(b * 255), SCommon.ToInt(b * 255) ); DDFontUtils.DrawString(x, y, text, DDFontUtils.GetFont("03\u711a\u706b-Regular", 30), false, color); yield return(true); } }
// // copied the source file by https://github.com/stackprobe/Factory/blob/master/SubTools/CopyLib.c // public static void SetBright(I3Color color) { color.R = IntTools.ToRange(color.R, 0, 255); color.G = IntTools.ToRange(color.G, 0, 255); color.B = IntTools.ToRange(color.B, 0, 255); Extra.Bright = color; }
public static void SetBright(I3Color color) { color.R = SCommon.ToRange(color.R, 0, 255); color.G = SCommon.ToRange(color.G, 0, 255); color.B = SCommon.ToRange(color.B, 0, 255); Extra.Bright = color; }
public static void Draw(IEnumerable <DDCrash> crashes, I3Color color, double a = 1.0) { DDDraw.SetAlpha(a); DDDraw.SetBright(color); Draw(crashes); DDDraw.Reset(); }
public SpectrumScreen0001(int barNum, int barWidth, int barHeight, I3Color barColor) { this.Screen = new DDSubScreen(960, barHeight + 100, true); // g this.GraphScreen = new DDSubScreen(900, barHeight, true); // g this.BarNum = barNum; this.Bar_W = barWidth; this.Bar_H = barHeight; this.BarColor = barColor; }
private static void Print_Main2(string line, int x, int y, I3Color color) { if (P_FontSize == -1) { DX.DrawString(x, y, line, DDUtils.GetColor(color)); } else { DDFontUtils.DrawString(x, y, line, Font, false, color); } }
private static void Print_Main2(string line, int x, int y, I3Color color, double centeringRate) { // centeringRate: // 0.0 == 右寄せ (最初の文字の左側面が x になる) // 0.5 == 中央寄せ // 1.0 == 左寄せ (最後の文字の右側面が x になる) x -= SCommon.ToInt(DDFontUtils.GetDrawStringWidth(line, _font) * centeringRate); DDFontUtils.DrawString(x, y, line, _font, false, color); }
// // copied the source file by https://github.com/stackprobe/Factory/blob/master/SubTools/CopyLib.c // public void Draw(IEnumerable <Crash> crashes, I3Color color) { DDDraw.SetBright(color); using (this.MyScreen.Section()) { Queue <IEnumerable <Crash> > q = new Queue <IEnumerable <Crash> >(); q.Enqueue(crashes); while (1 <= q.Count) { foreach (Crash crash in q.Dequeue()) { switch (crash.Kind) { case CrashUtils.Kind_e.NONE: break; case CrashUtils.Kind_e.POINT: DDDraw.DrawBegin(DDGround.GeneralResource.WhiteBox, crash.Pt.X - DDGround.ICamera.X, crash.Pt.Y - DDGround.ICamera.Y); DDDraw.DrawSetSize(POINT_WH, POINT_WH); DDDraw.DrawEnd(); break; case CrashUtils.Kind_e.CIRCLE: DDDraw.DrawBegin(DDGround.GeneralResource.WhiteCircle, crash.Pt.X - DDGround.ICamera.X, crash.Pt.Y - DDGround.ICamera.Y); DDDraw.DrawSetSize(crash.R * 2.0, crash.R * 2.0); DDDraw.DrawEnd(); break; case CrashUtils.Kind_e.RECT: DDDraw.DrawRect( DDGround.GeneralResource.WhiteBox, crash.Rect.L - DDGround.ICamera.X, crash.Rect.T - DDGround.ICamera.Y, crash.Rect.W, crash.Rect.H ); break; case CrashUtils.Kind_e.MULTI: q.Enqueue(crash.Cs); break; default: throw null; // never } } } } DDDraw.Reset(); }
public void Save() { I3Color[,] bmp = new I3Color[this.W, this.H]; for (int x = 0; x < this.W; x++) { for (int y = 0; y < this.H; y++) { bmp[x, y] = MapCell.Kind_e_Colors[(int)this.Table[x, y].Kind]; } } DDResource.Save(this.MapFile, Common.WriteBmpFile(bmp, this.W, this.H)); }
private IEnumerable <bool> GetLayer03(string imgFile) { DDPicture img = DDPictureLoaders.Standard(imgFile); // g double a = 0.0; double z = 2.0; double t1x = 100; double t2x = 100; double t3x = 100; for (int frmcnt = 0; ; frmcnt++) { DDDraw.DrawBegin(img, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(1.353); DDDraw.SetAlpha(a); DDDraw.DrawEnd(); DDDraw.DrawBegin(img, DDConsts.Screen_W / 2, DDConsts.Screen_H / 2); DDDraw.DrawZoom(1.353 * z); DDDraw.SetAlpha(a / 2.0); DDDraw.DrawEnd(); I3Color color = new I3Color((int)(255 * a), (int)(255 * a), (int)(255 * a)); if (10 < frmcnt) { DDFontUtils.DrawString((int)(1000 + t1x), 620, "TOKYO", DDFontUtils.GetFont("Ink Free", 100), false, color); DDUtils.Approach(ref t1x, 0.0, 0.8); } if (15 < frmcnt) { DDFontUtils.DrawString((int)(1200 + t2x), 720, "LOVE", DDFontUtils.GetFont("Ink Free", 200), false, color); DDUtils.Approach(ref t2x, 0.0, 0.8); } if (20 < frmcnt) { DDFontUtils.DrawString((int)(1000 + t3x), 900, "STORY 1991", DDFontUtils.GetFont("Ink Free", 100), false, color); DDUtils.Approach(ref t3x, 0.0, 0.8); } DDUtils.Approach(ref a, 1.0, 0.98); DDUtils.Approach(ref z, 1.0, 0.98); yield return(true); } }
private void DrawWall(DDPicture picture, I3Color color, double xRate, double yRate) { int xSpan = picture.Get_W() - DDConsts.Screen_W; int ySpan = picture.Get_H() - DDConsts.Screen_H; int span = Math.Min(xSpan, ySpan); DDDraw.SetBright(color); DDDraw.DrawCenter( picture, DDConsts.Screen_W / 2 - (xRate - 0.5) * span, DDConsts.Screen_H / 2 - (yRate - 0.5) * span ); DDDraw.Reset(); }
public void AddItem(bool groupFlag, string title, I3Color color, I3Color borderColor, Action a_desided = null) { if (a_desided == null) { a_desided = () => { } } ; this.Columns[this.Columns.Count - 1].Items.Add(new ItemInfo() { GroupFlag = groupFlag, Title = title, Color = color, BorderColor = borderColor, A_Desided = a_desided, }); }
public Enemy_Meteor(D2Point pos) : base(pos) { this.Angle = DDUtils.GetAngle(Game.I.Player.X - pos.X, Game.I.Player.Y - pos.Y); this.Speed = 0.0; { int clr = DDUtils.Random.GetInt(192); this.Color = new I3Color(255, clr, clr); } this.Rot = 0.0; this.RotAdd = 0.0; this.RotAddAdd = DDUtils.Random.DReal() * 0.001; DDGround.EL.Add(SCommon.Supplier(this.E_出現エフェクト())); }
private void DrawMap() { int cell_wh = 400 / Math.Max(this.Map.W, this.Map.H); if (cell_wh < 1) { throw null; // 2bs? } for (int x = -1; x <= this.Map.W; x++) { for (int y = -1; y <= this.Map.H; y++) { int l = (DDConsts.Screen_W - cell_wh * this.Map.W) / 2; int t = (DDConsts.Screen_H - cell_wh * this.Map.H) / 2; I3Color color = new I3Color(64, 64, 64); if (this.Map.DungeonMap[x, y].Wall) { color = new I3Color(200, 200, 50); } if (this.Map.DungeonMap[x, y].Goal) { color = new I3Color(255, 0, 0); } if (x == this.Map.DungeonMap.StartPoint.X && y == this.Map.DungeonMap.StartPoint.Y) { color = new I3Color(0, 128, 255); } DDDraw.SetBright(color); DDDraw.DrawRect(DDGround.GeneralResource.WhiteBox, l + x * cell_wh, t + y * cell_wh, cell_wh, cell_wh); DDDraw.Reset(); } } // zantei DDPrint.SetPrint(); DDPrint.Print("※ [青]=スタート地点 , [赤]=ゴール地点 , 上方向が北 ( パラメータ=" + this.Map.DungeonMap.ParameterString + " )"); }
private static void Draw円形体力ゲージ(double x, double y, double hp, double plX, double plY) { const int DENOM = 180; const double R1 = 100.0; const double R2 = 110.0; const double R3 = 150.0; for (int numer = 0; numer < DENOM; numer++) { double rate1 = (double)(numer + 0) / DENOM; double rate2 = (double)(numer + 1) / DENOM; double ltx = x + Math.Cos((rate1 - 0.25) * Math.PI * 2.0) * R2; double rtx = x + Math.Cos((rate2 - 0.25) * Math.PI * 2.0) * R2; double rbx = x + Math.Cos((rate2 - 0.25) * Math.PI * 2.0) * R1; double lbx = x + Math.Cos((rate1 - 0.25) * Math.PI * 2.0) * R1; double lty = y + Math.Sin((rate1 - 0.25) * Math.PI * 2.0) * R2; double rty = y + Math.Sin((rate2 - 0.25) * Math.PI * 2.0) * R2; double rby = y + Math.Sin((rate2 - 0.25) * Math.PI * 2.0) * R1; double lby = y + Math.Sin((rate1 - 0.25) * Math.PI * 2.0) * R1; double rate = rate1; bool colored = hp < rate && rate < hp * 2 || rate < hp * 2 - 1.0; I3Color color = colored ? new I3Color(255, 0, 0) : new I3Color(255, 255, 255); bool plNear = DDUtils.GetDistance(new D2Point(x, y), new D2Point(plX, plY)) < R3; double a = plNear ? 0.25 : 0.5; DDDraw.SetAlpha(a); DDDraw.SetBright(color); DDDraw.DrawFree( Ground.I.Picture.WhiteBox, ltx, lty, rtx, rty, rbx, rby, lbx, lby ); DDDraw.Reset(); } }
public static DDPicture RGBToTrans(string file, I3Color targetColor) { return(new DDPicture( () => { int siHandle = DDPictureLoaderUtils.FileData2SoftImage(DDPictureLoaderUtils.File2FileData(file)); int w; int h; DDPictureLoaderUtils.GetSoftImageSize(siHandle, out w, out h); //DDPictureLoaderUtils.Dot targetDot = DDPictureLoaderUtils.GetSoftImageDot(siHandle, 0, 0); // 左上隅のピクセル for (int x = 0; x < w; x++) { for (int y = 0; y < h; y++) { DDPictureLoaderUtils.Dot dot = DDPictureLoaderUtils.GetSoftImageDot(siHandle, x, y); if ( targetColor.R == dot.R && targetColor.G == dot.G && targetColor.B == dot.B ) { dot.A = 0; DDPictureLoaderUtils.SetSoftImageDot(siHandle, x, y, dot); } } } return DDPictureLoaderUtils.GraphicHandle2Info(DDPictureLoaderUtils.SoftImage2GraphicHandle(siHandle)); }, DDPictureLoaderUtils.ReleaseInfo, DDPictureUtils.Add )); }
// // copied the source file by https://github.com/stackprobe/Factory/blob/master/SubTools/CopyLib.c // public void Draw(Crash crash, I3Color color) { Draw(new Crash[] { crash }, color); }
public static void SetBorder(I3Color color, int width = 2) { Extra.BorderColor = color; Extra.BorderWidth = width; }
public static void SetColor(I3Color color) { Extra.Color = color; }
public static void SetColor(I3Color color) { P_Info.Color = color; }
private static void Print_Main2(string line, int x, int y, I3Color color) { DX.DrawString(x, y, line, DDUtils.GetColor(color)); }
/// <summary> /// レイヤ表示を実行する。 /// ステージ番号: /// -- 1~9 == 各ステージ /// </summary> /// <param name="stageNo">ステージ番号</param> /// <param name="themeColor">このステージの印象的な色</param> public static void Perform(int stageNo, I3Color themeColor) { int layerNo = 10 - stageNo; DDCurtain.SetCurtain(0, -1.0); DDCurtain.SetCurtain(); using (DDSubScreen tmpScreen = new DDSubScreen(400, 200)) { foreach (DDScene scene in DDSceneUtils.Create(210)) { if (scene.Numer + 30 == scene.Denom) { DDCurtain.SetCurtain(30, -1.0); } DDCurtain.DrawCurtain(); int bure = (int)(scene.Rate * scene.Rate * 20); int xBure = DDUtils.Random.GetRange(-bure, bure); int yBure = DDUtils.Random.GetRange(-bure, bure); #if true DDFontUtils.DrawString_XCenter( DDConsts.Screen_W / 2 + xBure, DDConsts.Screen_H / 2 + yBure - 50, "LAYER " + layerNo, DDFontUtils.GetFont("03焚火-Regular", 100) ); #else using (tmpScreen.Section()) { DDPrint.SetColor(new I3Color(60, 60, 60)); DDPrint.SetBorder(new I3Color(255, 255, 255)); DDPrint.SetPrint(tmpScreen.GetSize().W / 2 - 60, tmpScreen.GetSize().H / 2 - 8); DDPrint.Print("L A Y E R : " + layerNo); DDPrint.Reset(); } DDDraw.SetMosaic(); DDDraw.DrawBegin( tmpScreen.ToPicture(), DDConsts.Screen_W / 2 + xBure, DDConsts.Screen_H / 2 + yBure ); DDDraw.DrawZoom(6.0); DDDraw.DrawEnd(); DDDraw.Reset(); #endif if (0.5 < scene.Rate) { const int c_max = 300; for (int c = (int)(scene.Rate * scene.Rate * c_max); 0 < c; c--) { double c_rate = (double)c / c_max; DDDraw.SetAlpha(scene.Rate * 0.5); //DDDraw.SetBright(new I3Color(c, c, c)); // old DDDraw.SetBright(new I3Color( (int)(themeColor.R * c_rate), (int)(themeColor.G * c_rate), (int)(themeColor.B * c_rate) )); DDDraw.DrawBegin( Ground.I.Picture.WhiteBox, DDUtils.Random.GetInt(DDConsts.Screen_W), DDUtils.Random.GetInt(DDConsts.Screen_H) ); DDDraw.DrawSetSize( DDUtils.Random.GetRange(40, (int)(400 * scene.Rate)), DDUtils.Random.GetRange(20, (int)(200 * scene.Rate)) ); DDDraw.DrawEnd(); DDDraw.Reset(); } } DDEngine.EachFrame(); } } DDCurtain.SetCurtain(0); }
public static void SetBorder(I3Color color, int width = 1) { P_Info.BorderColor = color; P_Info.BorderWidth = width; }
public static void DrawString_XCenter(int x, int y, string str, DDFont font, bool tategakiFlag, I3Color color, I3Color edgeColor) { x -= GetDrawStringWidth(str, font, tategakiFlag) / 2; DrawString(x, y, str, font, tategakiFlag, color, edgeColor); }
public static uint GetColor(I3Color color) { return(DX.GetColor(color.R, color.G, color.B)); }
public static void DrawString(int x, int y, string str, DDFont font, bool tategakiFlag, I3Color color) { DrawString(x, y, str, font, tategakiFlag, color, new I3Color(-1, 0, 0)); }
public static IEnumerable <bool> Message(string message, I3Color color, I3Color borderColor) { Action a_draw_message = () => { DDPrint.SetPrint(DDConsts.Screen_W / 2 - 4 * message.Length, DDConsts.Screen_H / 2 - 8); DDPrint.SetColor(color); DDPrint.SetBorder(borderColor); DDPrint.Print(message); DDPrint.Reset(); }; foreach (DDScene scene in DDSceneUtils.Create(20)) { DDDraw.SetAlpha(0.5); DDDraw.SetBright(0, 0, 0); DDDraw.DrawRect_LTRB( Ground.I.Picture.WhiteBox, 0, DDConsts.Screen_H / 2 - (10 + 40 * scene.Rate), DDConsts.Screen_W, DDConsts.Screen_H / 2 + (10 + 40 * scene.Rate) ); DDDraw.Reset(); a_draw_message(); yield return(true); } foreach (DDScene scene in DDSceneUtils.Create(180)) { DDDraw.SetAlpha(0.5); DDDraw.SetBright(0, 0, 0); DDDraw.DrawRect_LTRB( Ground.I.Picture.WhiteBox, 0, DDConsts.Screen_H / 2 - 50, DDConsts.Screen_W, DDConsts.Screen_H / 2 + 50 ); DDDraw.Reset(); a_draw_message(); yield return(true); } foreach (DDScene scene in DDSceneUtils.Create(20)) { DDDraw.SetAlpha(0.5); DDDraw.SetBright(0, 0, 0); DDDraw.DrawRect_LTRB( Ground.I.Picture.WhiteBox, 0, DDConsts.Screen_H / 2 - (10 + 40 * (1.0 - scene.Rate)), DDConsts.Screen_W, DDConsts.Screen_H / 2 + (10 + 40 * (1.0 - scene.Rate)) ); DDDraw.Reset(); a_draw_message(); yield return(true); } }
public static void DrawString(int x, int y, string str, DDFont font, bool tategakiFlag, I3Color color, I3Color edgeColor) { if (edgeColor.R != -1) { const int EDGE_WIDTH = 2; const int EDGE_STEP = EDGE_WIDTH; for (int xc = -EDGE_WIDTH; xc <= EDGE_WIDTH; xc += EDGE_STEP) { for (int yc = -EDGE_WIDTH; yc <= EDGE_WIDTH; yc += EDGE_STEP) { DX.DrawStringToHandle(x + xc, y + yc, str, DDUtils.GetColor(edgeColor), font.GetHandle(), DDUtils.GetColor(new I3Color(0, 0, 0)), tategakiFlag ? 1 : 0); } } } DX.DrawStringToHandle(x, y, str, DDUtils.GetColor(color), font.GetHandle(), DDUtils.GetColor(new I3Color(0, 0, 0)), tategakiFlag ? 1 : 0); }