//delegate void InitDelegate(); //void Init() //{ // if (this.InvokeRequired) // this.Invoke(new InitDelegate(_Init)); // else // _Init(); //} void Init(object sender, EventArgs args) { this.scenePattern = Library.GetScenePattern("snptrn0");//new ScenePattern("ScenePattern"); this.scene = (Scene)this.soshiant33Panel.engine.AddChild(this.scenePattern, null); this.scene.رنگ_زمینه = this.BackColor; this.scene.Pause(); //base Plane SpritePattern plane = new SpritePattern("Plane Pattern"); SpriteState state = plane.AddNewState("st0"); state.صورت = "basePlane.x"; state.AddNewKeyFrame(0); Sprite basePlane = (Sprite)scene.AddChild(plane, null); basePlane.مولفه_ها.موقعیت.z = 1000; //Target Sprite this.spritePattern = new SpritePattern("SpritePatern" + patternCounter++.ToString()); this.sprite = (Sprite)this.scene.AddChild(this.spritePattern, null); this.soshiant33Panel.engine.camera.Fly(250); this.soshiant33Panel.engine.camera.Pitch(0.4f); this.soshiant33Panel.engine.camera.Walk(220); this.soshiant33Panel.engine.Resize(this.soshiant33Panel.Width, this.soshiant33Panel.Height); //this.splitContainer2.SplitterDistance = 200; if (this.OnTurnedOn != null) { this.OnTurnedOn(this, null); } }
private void s33Panel1_DragEnter(object sender, DragEventArgs e) { e.Effect = DragDropEffects.Copy; if (e.Data.GetDataPresent(typeof(SpritePattern)) && !mouseIsDown) { SpritePattern pattern = (SpritePattern)e.Data.GetData(typeof(SpritePattern)); ep.نام = pattern.نام + "_" + sceneChildsCounter++.ToString(); SelectEntity(this.scene.AddChild(pattern, ep)); mouseIsDown = true; new Thread(this.TransformChild).Start(); } }
private void btn_clear_Click(object sender, EventArgs e) { this.scenePattern = Library.GetScenePattern("ScenePattern_" + scenesCounter++.ToString());//new ScenePattern("ScenePattern_" + scenesCounter++.ToString()); this.scene = (Scene)this.s33Panel1.engine.AddChild(this.scenePattern, null); this.scene.رنگ_زمینه = this.BackColor; this.scene.Pause(); //base Plane SpritePattern plane = new SpritePattern("Plane Pattern"); SpriteState state = plane.AddNewState("st0"); state.صورت = "basePlane.x"; state.AddNewKeyFrame(0); basePlane = (Sprite)this.scene.AddChild(plane, null); basePlane.مولفه_ها.موقعیت.z = 1000; s33Panel1_MouseUp(null, null); }
static void CreateSpriteMode2(string strOutputName, Bitmap bitmap, Rectangle rectPatterns, ColorList colorList, ColorSpace colorSpace) { System.IO.StreamWriter writer = new System.IO.StreamWriter(strOutputName); for (int y = 0; y < rectPatterns.Height; y += 16) { int yy = rectPatterns.Y + y; for (int x = 0; x < rectPatterns.Width; x += 16) { int xx = rectPatterns.X + x; SpritePattern pattern0 = new SpritePattern(); SpritePattern pattern1 = new SpritePattern(); for (int i = 0; i < 16; i++) { //. 3 色探す. Dictionary <int, int> dicIndexToBits = FindColors(bitmap, xx, yy + i, colorList, colorSpace); pattern1.Colors[i] = 0x60; if (dicIndexToBits.Count <= 0) { continue; } if (dicIndexToBits.Count <= 3) { pattern0.Colors[i] = dicIndexToBits.Keys.ElementAt(0); } if (dicIndexToBits.Count >= 2) { pattern1.Colors[i] |= dicIndexToBits.Keys.ElementAt(1); } for (int j = 0; j < 8; j++) { int leftIndex = colorList.GetNearestColor(bitmap.GetPixel(xx + j, yy + i), colorSpace); if (dicIndexToBits.ContainsKey(leftIndex)) { int leftBits = dicIndexToBits[leftIndex]; if ((leftBits & 0x1) == 0x1) { pattern0.Patterns[i] |= 0x80 >> j; } if ((leftBits & 0x2) == 0x2) { pattern1.Patterns[i] |= 0x80 >> j; } } int rightIndex = colorList.GetNearestColor(bitmap.GetPixel(xx + 8 + j, yy + i), colorSpace); if (dicIndexToBits.ContainsKey(rightIndex)) { int rightBits = dicIndexToBits[rightIndex]; if ((rightBits & 0x1) == 0x1) { pattern0.Patterns[16 + i] |= 0x80 >> j; } if ((rightBits & 0x2) == 0x2) { pattern1.Patterns[16 + i] |= 0x80 >> j; } } } } if (!pattern0.IsNull() && !pattern1.IsNull()) { writer.WriteLine("\t//. 2."); pattern0.WritePatterns(writer); pattern1.WritePatterns(writer); pattern0.WriteColors(writer); pattern1.WriteColors(writer); } else if (!pattern0.IsNull()) { writer.WriteLine("\t//. 1."); pattern0.WritePatterns(writer); pattern0.WriteColors(writer); } } } writer.Close(); }
public void JobFinished() { this.output = this.s33SpriteEditor1.spritePattern; this.Close(); }