예제 #1
0
        private void spriteContextMenu_Tapped(object sender, string type)
        {
            if (SpriteControl.SelectedSprite == null)
            {
                return;
            }

            switch (type)
            {
            case "up_most":
                SpriteControl.SelectedSprite.ZIndexUpMost();
                break;

            case "down_most":
                SpriteControl.SelectedSprite.ZIndexDownMost();
                break;

            case "copy":
                CopySprite();
                break;

            case "delete":
                SpriteControl.RemoveSelectedSprite();
                break;

            default:
                break;
            }
            HideContextMenu();
        }
예제 #2
0
        private async void MaterialToSprite()
        {
            if (App.CurrentInstance.SelectedMaterial != null)
            {
                BitmapImage bi = await ImageHelper.ReadImage(App.CurrentInstance.SelectedMaterial.image);

                if (App.CurrentInstance.MaterialSelectedBy == WidgetPageType.Shipin)
                {
                    SpriteControl sprite = new SpriteControl(SpriteType.Material);
                    sprite.SetImage(bi);
                    sprite.AddToContainer();
                }
                else if (App.CurrentInstance.MaterialSelectedBy == WidgetPageType.BianKuang)
                {
                    imgBiankuang.Source = bi;
                }
                else if (App.CurrentInstance.MaterialSelectedBy == WidgetPageType.Beijing)
                {
                    //imgBeijing.Source = bi;
                    imgBeijingBrush.ImageSource = bi;
                }

                App.CurrentInstance.SelectedMaterial      = null;
                App.CurrentInstance.OpertationPageChanged = true;

                if (sfxEnabled)
                {
                    PlaySFX();
                }
            }
        }
예제 #3
0
        private async void GenerateImage()
        {
            if (Busy)
            {
                return;
            }
            Busy = true;

            SpriteControl.DismissActiveSprite();
            AppBarNormal();
            HideContextMenu();

            //http://social.technet.microsoft.com/wiki/contents/articles/20648.using-the-rendertargetbitmap-in-windows-store-apps-with-xaml-and-c.aspx
            RectangleGeometry cropArea = new RectangleGeometry()
            {
                Rect = new Rect(0d, 0d, stagePanel.ActualWidth, stagePanel.ActualHeight)
            };

            /* IMPORTANT: in order to get the expected result, the clipped element and the captured element should NOT be the same one */
            stagePanelForClipping.Clip = cropArea;

            //string fileName = "MeiTuTieTie_" + DateTime.Now.ToString("yyyy_MM_dd_hh_mm_ss") + ".jpg";
            //ImageHelper.CaptureToMediaLibrary(this.stagePanel, fileName, exportWidth);
            var bitmap = await ImageHelper.Capture(this.stagePanel, exportWidth);

            Frame.Navigate(typeof(ExportPage), bitmap);
            Busy = false;
        }
예제 #4
0
        private async void AddPhotoToStage(StorageFile file)
        {
            string tempFileName = Guid.NewGuid().ToString();
            var    resizedFile  = await ImageHelper.MakeResizedImage(file, tempFileName, Constants.PHOTO_IMPORT_SIZE_MAX);

            IRandomAccessStream stream = await resizedFile.OpenAsync(FileAccessMode.Read);

            BitmapImage bi = new BitmapImage();

            bi.SetSource(stream);

            //sprite
            SpriteControl sprite = new SpriteControl(SpriteType.Photo);

            sprite.SetImage(bi);
            sprite.AddToContainer();

            //delete tempfile
            if (resizedFile != file)
            {
                await resizedFile.DeleteAsync();
            }

            photoToProcess--;
            if (photoToProcess == 0)
            {
                Busy = false;
            }
        }
예제 #5
0
        void Sprite_OnRemoved(object sender, EventArgs e)
        {
            SpriteControl sprite = sender as SpriteControl;

            if (sprite.SpriteType == SpriteType.Text)
            {
                AppBarNormal();
            }
        }
예제 #6
0
        void Sprite_OnSelected(object sender, EventArgs e)
        {
            SpriteControl sprite = sender as SpriteControl;

            if (sprite == null)
            {
                HideSystemAppBar();
            }
            else
            {
                if (sprite.SpriteType == SpriteType.Text)
                {
                    selectedSpriteText = (sender as SpriteControl).spriteText;
                    VisualStateManager.GoToState(this, "vsTextModeButtons", false);

                    //set font list index
                    int    index    = 0;
                    string fontName = selectedSpriteText.Font.Source;
                    if (fontListData.Contains(fontName))
                    {
                        index = fontListData.IndexOf(fontName);
                    }
                    fontListBox.SelectedIndex = index;
                    fontListBox.ScrollIntoView(fontName);

                    //set color list index
                    string colorHex = ColorUtil.GetHexFromBrush(selectedSpriteText.TextColor as SolidColorBrush).ToLower();
                    if (colorListData.Contains(colorHex))
                    {
                        index = colorListData.IndexOf(colorHex);
                    }
                    colorListBox.SelectedIndex = index;
                    colorListBox.ScrollIntoView(colorHex);

                    //display the color list by defualt
                    VisualStateManager.GoToState(this, "vsColorListShown", true);
                    colorListShown = true;
                    fontListShown  = false;
                }
                else
                {
                    if (pageType == OperationPageType.Single)
                    {
                        VisualStateManager.GoToState(this, "vsSingleModeButtons", false);
                    }
                    else if (pageType == OperationPageType.Multi)
                    {
                        VisualStateManager.GoToState(this, "vsMultiModeButtons", false);
                    }
                }
            }
        }
예제 #7
0
        private void AddTextSprite()
        {
            SpriteControl sprite = new SpriteControl(SpriteType.Text);

            sprite.EditingStarted += sprite_EditingStarted;
            sprite.EditingEnded   += sprite_EditingEnded;
            sprite.AddToContainer();

            App.CurrentInstance.OpertationPageChanged = true;

            if (sfxEnabled)
            {
                PlaySFX();
            }
        }
예제 #8
0
        protected override void OnNavigatedFrom(Windows.UI.Xaml.Navigation.NavigationEventArgs e)
        {
            if (e.NavigationMode == NavigationMode.Back)
            {
                SpriteControl.DetachContainer();
                this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Disabled;
            }
            else
            {
                this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Required;
            }

            base.OnNavigatedFrom(e);

            UmengSDK.UmengAnalytics.TrackPageEnd(this.GetType().ToString());
        }
예제 #9
0
        private void numImg_ValueChanged(object sender, EventArgs e)
        {
            int      offset = (int)infos[(int)numImg.Value].offset;
            int      size   = (int)infos[(int)numImg.Value].size;
            TileForm form   = (images.EndsWith("Tex.dat") ? TileForm.Lineal : TileForm.Horizontal);

            RawImage image = new RawImage(images, -1, form, ColorFormat.colors256, false,
                                          offset + 0x220, size - 0x220);

            pluginHost.Set_Image(image);

            RawPalette palette = new RawPalette(images, -1, false,
                                                offset + 0x20, 0x200);

            pluginHost.Set_Palette(palette);

            this.Controls.Remove(spriteControl1);
            spriteControl1 = new SpriteControl(pluginHost);
            this.Controls.Add(spriteControl1);
        }
예제 #10
0
        private void CopySprite()
        {
            SpriteControl sprite = null;

            if (SpriteControl.SelectedSprite.SpriteType == SpriteType.Photo)
            {
                if (ExistingPhotoCount >= PhotoCountMax)
                {
                    lightTip.ShowTip("最多 9 张照片哦!");
                    return;
                }

                sprite = new SpriteControl(SpriteType.Photo);
                sprite.SetImage(SpriteControl.SelectedSprite.ImageSource);
            }
            else if (SpriteControl.SelectedSprite.SpriteType == SpriteType.Material)
            {
                sprite = new SpriteControl(SpriteType.Material);
                sprite.SetImage(SpriteControl.SelectedSprite.ImageSource);
            }
            else if (SpriteControl.SelectedSprite.SpriteType == SpriteType.Text)
            {
                sprite = new SpriteControl(SpriteType.Text);
                sprite.EditingStarted      += sprite_EditingStarted;
                sprite.EditingEnded        += sprite_EditingEnded;
                sprite.spriteText.Text      = selectedSpriteText.Text;
                sprite.spriteText.TextColor = selectedSpriteText.TextColor;
                sprite.spriteText.Font      = selectedSpriteText.Font;
            }

            sprite.AddToContainer();

            App.CurrentInstance.OpertationPageChanged = true;

            if (sfxEnabled)
            {
                PlaySFX();
            }
        }
예제 #11
0
        private void InitializePage()
        {
            HideSystemAppBar();
            InitColorFontList();

            SpriteControl.Initialize(stage);
            SpriteControl.OnSelected      += Sprite_OnSelected;
            SpriteControl.OnRemoved       += Sprite_OnRemoved;
            SpriteControl.OnSpriteChanged += Sprite_OnSpriteChanged;
            SpriteControl.Holding         += SpriteControl_Holding;
            SpriteControl.OnSpritePressed += SpriteControl_OnSpritePressed;

            VisualStateManager.GoToState(this, "vsLayerButtonShown", false);

            switch (pageType)
            {
            case OperationPageType.Single:
                VisualStateManager.GoToState(this, "vsSingleModeButtons", false);
                this.Frame.BackStack.RemoveAt(this.Frame.BackStack.Count - 1);
                imgBeijingBrush.ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/Images/DefaultBackgroundSingle.jpg", UriKind.Absolute));
                PreapreSingleModeImage();
                Busy = false;
                break;

            case OperationPageType.Multi:
                VisualStateManager.GoToState(this, "vsMultiModeButtons", false);
                btnPhotoLock.Visibility     = btnPhotoUnLock.Visibility = Visibility.Collapsed;
                imgBeijingBrush.ImageSource = new BitmapImage(new Uri("ms-appx:///Assets/Images/DefaultBackgroundMulti.jpg", UriKind.Absolute));
                CheckAndAddPhotos(App.CurrentInstance.HomePageMultiPhotoFiles);
                break;

            default:
                break;
            }

            App.CurrentInstance.OpertationPageChanged = true;
        }
예제 #12
0
 private void spriteDelete_Click(object sender, TappedRoutedEventArgs e)
 {
     SpriteControl.RemoveSelectedSprite();
 }
예제 #13
0
 private void stageBackground_PointerPressed(object sender, PointerRoutedEventArgs e)
 {
     SpriteControl.DismissActiveSprite();
     AppBarNormal();
     HideContextMenu();
 }
예제 #14
0
        private void LoadRedactor(string path, string name)
        {
            try
            {
                foreach (TabPage tab in RedactorsTabControl.TabPages)
                {
                    if (tab.Controls.Count == 1)
                    {
                        var redactor = tab.Controls[0] as IResourceControl;
                        if (redactor != null)
                        {
                            if (redactor.ResourcePath == path)
                            {
                                RedactorsTabControl.SelectedTab = tab;
                                return;
                            }
                        }
                    }
                }

                var     type    = Resource.GetType(path);
                Control control = null;
                switch (type)
                {
                case ResourceType.Texture: control = new TextureControl(path); break;

                case ResourceType.Sprite: control = new SpriteControl(path); break;

                case ResourceType.Ragdoll: control = new RagdollControl(path); break;

                case ResourceType.Animation: control = new AnimationControl(path); break;

                case ResourceType.Tool: control = new ToolControl(path); break;

                case ResourceType.Entity: control = new EntityControl(path); break;

                case ResourceType.Tile: control = new TileControl(path); break;

                case ResourceType.Event: control = new EventControl(path); break;

                case ResourceType.Outfit: control = new OutfitControl(path); break;

                default:
                    MessageBox.Show(this, "Resource [" + Resource.TypeToString(type) +
                                    "] redactor does not implemented!", "Warning!",
                                    MessageBoxButtons.OK, MessageBoxIcon.Warning); break;
                }

                if (control == null)
                {
                    return;
                }
                control.Dock = DockStyle.Fill;

                var page = new TabPage(name);
                page.ImageIndex = Resource.TypeToIcon(type);
                bool refresh = RedactorsTabControl.TabPages.Count == 0;
                RedactorsTabControl.TabPages.Add(page);

                page.Controls.Add(control);

                var iresource = control as IResourceControl;
                iresource.StateChanged += Redactor_StateChanged;

                RedactorsTabControl.SelectedTab = page;
                if (RedactorsTabControl.TabPages.Count == 1)
                {
                    RedactorsTabControl.SelectedTab.Text = iresource.ResourceName + (iresource.Saved ? "" : "*");
                    UndoToolStripMenuItem.Enabled        = iresource.UndoEnabled;
                    RedoToolStripMenuItem.Enabled        = iresource.RedoEnabled;
                    CloseToolStripMenuItem.Enabled       = true;
                    SaveToolStripMenuItem.Enabled        = !iresource.Saved;
                    SaveAsToolStripMenuItem.Enabled      = true;
                    CloseOthersToolStripMenuItem.Enabled = true;
                    ResourceToolStripMenuItem.DropDownItems.Clear();
                    ResourceToolStripMenuItem.DropDownItems.AddRange(iresource.MenuTabs);
                    ResourceToolStripMenuItem.Enabled = true;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.ToString(), "Error: Can not load resource redactor [" + name + "].",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #15
0
파일: Unit.cs 프로젝트: cmapua/Mythos-High
 void Awake()
 {
     manager = UnitManager.getInstance();
     unitTransform = transform;
     if (isSprite)
         sc = GetComponent<SpriteControl>();
 }
예제 #16
0
 void Start()
 {
     ctl           = GameObject.Find("perso").GetComponent <Control>();
     spritecontrol = GameObject.Find("perso").GetComponent <SpriteControl>();
 }
예제 #17
0
 private void PickPhoto_Click(object sender, RoutedEventArgs e)
 {
     SpriteControl.DismissActiveSprite();
     PickPhotos();
     HideContextMenu();
 }
 // Use this for initialization
 void Start()
 {
     spriteRenderer = GetComponent <SpriteRenderer>();
     spritecontrol  = GetComponent <SpriteControl>();
 }