예제 #1
0
            public UserComponent(PPDDevice device, PPDFramework.Resource.ResourceManager resourceManager, User user) : base(device)
            {
                this.resourceManager = resourceManager;

                User = user;

                this.AddChild((userIcon = new PictureObject(device, resourceManager, PathObject.Absolute(currentUserIconPath), true)
                {
                    Position = new Vector2(21, 21)
                }));
                this.AddChild((userNameString = new TextureString(device, "", 18, 160, PPDColors.White)
                {
                    Position = new Vector2(42, 12)
                }));
                this.AddChild(rectangle = new RectangleComponent(device, resourceManager, PPDColors.White)
                {
                    Hidden          = true,
                    Position        = new Vector2(5, 5),
                    RectangleHeight = 30
                });

                AddBinding(new Binding(user, "Name", this, "UserName"));
                AddBinding(new Binding(user, "ImagePath", this, "UserImagePath"));
                ChangeUserIconScale();
            }
예제 #2
0
 public override void EnterLoading()
 {
     if (imageFiles != null && imageFiles.Length > 0)
     {
         if (currentImage != null)
         {
             RemoveChild(currentImage);
             currentImage.Dispose();
             currentImage = null;
         }
         var index = new Random().Next(imageFiles.Length);
         currentImage = new PictureObject(device, ResourceManager, PathObject.Absolute(imageFiles[index]), true)
         {
             Position = new Vector2(400, 225)
         };
         var     aspect        = currentImage.Width / currentImage.Height;
         var     displayAspect = 16 / 9f;
         Vector2 scale;
         if (aspect > displayAspect)
         {
             scale = new Vector2(800 / currentImage.Width);
         }
         else
         {
             scale = new Vector2(450 / currentImage.Height);
         }
         currentImage.Scale = scale;
         AddChild(currentImage);
     }
 }
예제 #3
0
파일: MoviePanel.cs 프로젝트: KHCmaster/PPD
            private void LoadTexture()
            {
                while (true)
                {
                    lock (this)
                    {
                        if (!isLoading)
                        {
                            isLoading = true;
                            break;
                        }
                    }
                    Thread.Sleep(100);
                }
                picture       = new PictureObject(device, resourceManager, PathObject.Absolute(thumbPath), true);
                picture.Scale = new SharpDX.Vector2(480 / picture.Width * 0.25f, 270 / picture.Height * 0.25f);
                picture.Alpha = 0;
                this.AddChild(picture);

                lock (this)
                {
                    isLoading = false;
                }
            }
예제 #4
0
        private void InnerStruct()
        {
            Hidden          = true;
            itemPictureDict = new Dictionary <ItemEffect, PictureObject>();

            this.AddChild(itemSprite = new SpriteObject(device)
            {
                Position = new SharpDX.Vector2(92, 1)
            });
            this.AddChild((userIcon = new PictureObject(device, resourceManager, PathObject.Absolute(currentUserIconPath), true)
            {
                Position = new Vector2(19, 19)
            }));
            this.AddChild((userNameString = new TextureString(device, "", 9, 75, PPDColors.White)
            {
                Position = new Vector2(35, 3)
            }));
            this.AddChild(scorePicture = new NumberPictureObject(device, resourceManager, Utility.Path.Combine("play_user_score.png"))
            {
                Position  = new Vector2(35, 24),
                Alignment = Alignment.Left,
                MaxDigit  = 7
            });

            var filenames = new string[] {
                "cool.png",
                "good.png",
                "safe.png",
                "sad.png",
                "worst.png",
                "misscool.png",
                "missgood.png"
            };

            evals = new PictureObject[filenames.Length];
            for (int i = 0; i < filenames.Length; i++)
            {
                evals[i] = new PictureObject(device, resourceManager, Utility.Path.Combine("eva", filenames[i]))
                {
                    Position = new Vector2(35, 14),
                    Hidden   = true,
                    Scale    = new SharpDX.Vector2(0.4f, 0.4f)
                };
                this.AddChild(evals[i]);
            }
            this.AddChild(lifeGage = new LifeGage(device, resourceManager)
            {
                Position = new SharpDX.Vector2(37, 32)
            });

            if (userPlayState.User.IsSelf)
            {
                this.AddChild(new PictureObject(device, resourceManager, Utility.Path.Combine("play_user_back_self.png")));
            }
            else
            {
                this.AddChild(new PictureObject(device, resourceManager, Utility.Path.Combine("play_user_back.png")));
            }

            AddBinding(new Binding(userPlayState.User, "Name", this, "UserName"));
            AddBinding(new Binding(userPlayState.User, "ImagePath", this, "UserImagePath"));
            AddBinding(new Binding(userPlayState, "Score", this, "Score"));
            AddBinding(new Binding(userPlayState, "Evaluate", this, "Evaluate"));
            AddBinding(new Binding(userPlayState, "LifeAsFloat", this, "LifeAsFloat"));
            AddBinding(new Binding(userPlayState, "IsStealth", this, "IsStealth"));
            AddBinding(new Binding(userPlayState, "Loaded", this, "Loaded"));

            ChangeUserIconScale();
        }
예제 #5
0
        private void DrawBack(DXBezierControl.BezierDrawer drawer)
        {
            drawer.Background.ClearChildren();
            switch (BackGroundMode)
            {
            case DockForm.BackGroundMode.Default:
                drawer.Background.AddChild(new PictureObject(drawer.Device, bezierControl1.Drawer.ResourceManager, PathObject.Absolute(checkBackPath)));
                break;

            case DockForm.BackGroundMode.Color:
                drawer.Background.AddChild(new RectangleComponent(drawer.Device, drawer.ResourceManager,
                                                                  new SharpDX.Color4(BackGroundColor.R / 255f, BackGroundColor.G / 255f, BackGroundColor.B / 255f, 1.0f))
                {
                    RectangleWidth  = bezierControl1.Width,
                    RectangleHeight = bezierControl1.Height
                });
                break;

            case DockForm.BackGroundMode.Image:
                if (!File.Exists(BackImageFileName))
                {
                    return;
                }
                var resource = drawer.ResourceManager.GetResource <ImageResourceBase>(BackImageFileName);
                if (resource == null)
                {
                    resource = ImageResourceFactoryManager.Factory.Create(drawer.Device, BackImageFileName, false);
                    drawer.ResourceManager.Add(BackImageFileName, resource);
                }
                for (int i = 0; i *resource.Width < bezierControl1.Width; i++)
                {
                    for (int j = 0; j *resource.Height < bezierControl1.Height; j++)
                    {
                        drawer.Background.AddChild(new PictureObject(drawer.Device, drawer.ResourceManager, PathObject.Absolute(BackImageFileName))
                        {
                            Position = new SharpDX.Vector2(i * resource.Width, j * resource.Height)
                        });
                    }
                }
                break;
            }
        }
예제 #6
0
            public MessageComponent(PPDDevice device, PPDFramework.Resource.ResourceManager resourceManager, Message message) : base(device)
            {
                this.resourceManager = resourceManager;
                this.message         = message;

                Color4 color = PPDColors.White;

                if (message.User.IsSelf)
                {
                    this.AddChild((userIcon = new PictureObject(device, resourceManager, PathObject.Absolute(currentUserIconPath), true)
                    {
                        Position = new Vector2(16, 20)
                    }));
                    this.AddChild((userName = new TextureString(device, "", 10, PPDColors.Black)
                    {
                        Border = new Border {
                            Color = PPDColors.White, Thickness = 1
                        }
                    }));
                    this.AddChild((messageString = new TextureString(device, "", 10, 260, 40, true, PPDColors.Black)
                    {
                        Position = new Vector2(50, 1)
                    }));
                    this.AddChild((back = new PictureObject(device, resourceManager, Utility.Path.Combine("message_back.png"))
                    {
                        Position = new Vector2(32, 0),
                        EdgeColors = new[] { color, color, color, color }
                    }));
                }
                else
                {
                    this.AddChild((userIcon = new PictureObject(device, resourceManager, Utility.Path.Combine("noimage_icon.png"), true)
                    {
                        Position = new Vector2(312, 20)
                    }));
                    this.AddChild((userName = new TextureString(device, "", 10, PPDColors.Black)
                    {
                        Border = new Border {
                            Color = PPDColors.White, Thickness = 1
                        }
                    }));
                    this.AddChild((messageString = new TextureString(device, "", 10, 260, 40, true, PPDColors.Black)
                    {
                        Position = new Vector2(10, 1)
                    }));
                    this.AddChild((back = new PictureObject(device, resourceManager, Utility.Path.Combine("message_back.png"))
                    {
                        Scale = new Vector2(-1, 1),
                        EdgeColors = new[] { color, color, color, color }
                    }));
                    back.ScaleCenter = new Vector2(back.Width / 2, back.Height / 2);
                }

                AddBinding(new Binding(message, "User.Name", this, "UserName"));
                AddBinding(new Binding(message, "User.ImagePath", this, "UserImagePath"));
                AddBinding(new Binding(message, "Text", this, "Text"));
                AddBinding(new Binding(message, "User.Color", this, "Color"));

                Alpha = 0;

                ChangeUserIconScale();
            }
예제 #7
0
        public MenuUserIcon(PPDDevice device, PPDFramework.Resource.ResourceManager resourceManager, UserListComponent listComponent, User user) : base(device)
        {
            this.resourceManager = resourceManager;
            this.listComponent   = listComponent;
            User = user;

            this.AddChild((leaderIcon = new PictureObject(device, resourceManager, Utility.Path.Combine("leader.png"))));
            this.AddChild((userIcon = new PictureObject(device, resourceManager, PathObject.Absolute(currentUserIconPath), true)
            {
                Position = new SharpDX.Vector2(21, 21)
            }));
            this.AddChild((userNameString = new TextureString(device, "", 15, 140, PPDColors.White)
            {
                Position = new SharpDX.Vector2(42, 3)
            }));
            this.AddChild((accountIdString = new TextureString(device, "", 15, 140, PPDColors.White)
            {
                Position = new SharpDX.Vector2(42, 3)
            }));
            this.AddChild((readyIcon = new PictureObject(device, resourceManager, Utility.Path.Combine("user_state_ready.png"), true)
            {
                Position = new SharpDX.Vector2(187, 30)
            }));
            this.AddChild((notReadyIcon = new PictureObject(device, resourceManager, Utility.Path.Combine("user_state_notready.png"), true)
            {
                Position = new SharpDX.Vector2(187, 30)
            }));
            this.AddChild((playingIcon = new PictureObject(device, resourceManager, Utility.Path.Combine("user_state_playing.png"), true)
            {
                Position = new SharpDX.Vector2(187, 30)
            }));
            this.AddChild((watchIcon = new PictureObject(device, resourceManager, Utility.Path.Combine("user_state_watch.png"), true)
            {
                Position = new SharpDX.Vector2(187, 30)
            }));
            this.AddChild(hasSongIcon = new PictureObject(device, resourceManager, Utility.Path.Combine("hassong.png"), true)
            {
                Position = new SharpDX.Vector2(165, 30)
            });
            pingPictures = new PictureObject[5];
            for (int i = 0; i < 5; i++)
            {
                pingPictures[i] = new PictureObject(device, resourceManager, Utility.Path.Combine(String.Format("ping_{0}.png", i)))
                {
                    Position = new SharpDX.Vector2(42, 22)
                };
                this.AddChild(pingPictures[i]);
            }
            this.AddChild(pingString = new TextureString(device, "0", 12, PPDColors.White)
            {
                Position = new SharpDX.Vector2(60, 24)
            });
            this.AddChild(new PictureObject(device, resourceManager, Utility.Path.Combine("user_back.png")));

            AddBinding(new Binding(user, "Name", this, "UserName"));
            AddBinding(new Binding(user, "AccountId", this, "AccountId"));
            AddBinding(new Binding(user, "ImagePath", this, "UserImagePath"));
            AddBinding(new Binding(user, "CurrentState", this, "UserState"));
            AddBinding(new Binding(user, "HasSong", this, "HasSong"));
            AddBinding(new Binding(user, "Ping", this, "Ping"));
            AddBinding(new Binding(user, "IsLeader", this, "IsLeader"));

            ChangeUserIconScale();
        }
예제 #8
0
        public PlayUserIcon(PPDDevice device, PPDFramework.Resource.ResourceManager resourceManager, UserPlayState userPlayState,
                            bool showScore, bool showEvaluate, bool showLife) : base(device)
        {
            this.resourceManager = resourceManager;
            this.userPlayState   = userPlayState;
            this.showScore       = showScore;
            this.showEvaluate    = showEvaluate;
            this.showLife        = showLife;

            this.AddChild((userIcon = new PictureObject(device, resourceManager, PathObject.Absolute(currentUserIconPath), true)
            {
                Position = new SharpDX.Vector2(19, 19)
            }));
            this.AddChild((userNameString = new TextureString(device, "", 9, 75, PPDColors.White)
            {
                Position = new SharpDX.Vector2(35, 3)
            }));
            this.AddChild(scorePicture = new NumberPictureObject(device, resourceManager, Utility.Path.Combine("play_user_score.png"))
            {
                Position  = new SharpDX.Vector2(35, 24),
                Alignment = Alignment.Left,
                MaxDigit  = 7,
                Hidden    = !showScore
            });

            var filenames = new string[] {
                "cool.png",
                "good.png",
                "safe.png",
                "sad.png",
                "worst.png",
                "misscool.png",
                "missgood.png",
                "misssafe.png",
                "misssad.png"
            };

            evals = new PictureObject[filenames.Length];
            for (int i = 0; i < filenames.Length; i++)
            {
                evals[i] = new PictureObject(device, resourceManager, Utility.Path.Combine("eva", filenames[i]))
                {
                    Position = new SharpDX.Vector2(35, 14),
                    Hidden   = true,
                    Scale    = new SharpDX.Vector2(0.4f, 0.4f)
                };
                this.AddChild(evals[i]);
            }
            this.AddChild(lifeGage = new LifeGage(device, resourceManager)
            {
                Position = new SharpDX.Vector2(37, 32),
                Hidden   = !showLife
            });

            if (userPlayState.User.IsSelf)
            {
                this.AddChild(new PictureObject(device, resourceManager, Utility.Path.Combine("play_user_back_self.png")));
            }
            else
            {
                this.AddChild(new PictureObject(device, resourceManager, Utility.Path.Combine("play_user_back.png")));
            }

            AddBinding(new Binding(userPlayState.User, "Name", this, "UserName"));
            AddBinding(new Binding(userPlayState.User, "ImagePath", this, "UserImagePath"));
            AddBinding(new Binding(userPlayState, "Score", this, "Score"));
            AddBinding(new Binding(userPlayState, "Evaluate", this, "Evaluate"));
            AddBinding(new Binding(userPlayState, "IsMissPress", this, "IsMissPress"));
            AddBinding(new Binding(userPlayState, "LifeAsFloat", this, "LifeAsFloat"));

            ChangeUserIconScale();
        }
예제 #9
0
            public ResultComponent(PPDDevice device, PPDFramework.Resource.ResourceManager resourceManager, UserResult result, int rank) : base(device)
            {
                this.resourceManager = resourceManager;

                this.AddChild(new TextureString(device, ConvertRank(rank), 14, PPDColors.White)
                {
                    Position = new SharpDX.Vector2(0, 8)
                });

                this.AddChild(userIcon = new PictureObject(device, resourceManager, PathObject.Absolute(currentUserIconPath))
                {
                    Position = new SharpDX.Vector2(50, 0)
                });
                this.AddChild(new TextureString(device, result.User.Name, 12, 85, PPDColors.White)
                {
                    Position = new SharpDX.Vector2(90, 8)
                });
                this.AddChild(new NumberPictureObject(device, resourceManager, Utility.Path.Combine("numpoint.png"))
                {
                    Position  = new SharpDX.Vector2(240, 4),
                    Alignment = PPDFramework.Alignment.Center,
                    MaxDigit  = 7,
                    Value     = (uint)result.Result.Score,
                    Scale     = new SharpDX.Vector2(0.5f, 1)
                });
                this.AddChild(new NumberPictureObject(device, resourceManager, Utility.Path.Combine("numpoint.png"))
                {
                    Position  = new SharpDX.Vector2(317, 4),
                    Alignment = Alignment.Center,
                    MaxDigit  = -1,
                    Value     = (uint)result.Result.CoolCount,
                    Scale     = new SharpDX.Vector2(0.5f, 1)
                });
                this.AddChild(new NumberPictureObject(device, resourceManager, Utility.Path.Combine("numpoint.png"))
                {
                    Position  = new SharpDX.Vector2(380, 4),
                    Alignment = Alignment.Center,
                    MaxDigit  = -1,
                    Value     = (uint)result.Result.GoodCount,
                    Scale     = new SharpDX.Vector2(0.5f, 1)
                });
                this.AddChild(new NumberPictureObject(device, resourceManager, Utility.Path.Combine("numpoint.png"))
                {
                    Position  = new SharpDX.Vector2(440, 4),
                    Alignment = Alignment.Center,
                    MaxDigit  = -1,
                    Value     = (uint)result.Result.SafeCount,
                    Scale     = new SharpDX.Vector2(0.5f, 1)
                });
                this.AddChild(new NumberPictureObject(device, resourceManager, Utility.Path.Combine("numpoint.png"))
                {
                    Position  = new SharpDX.Vector2(497, 4),
                    Alignment = Alignment.Center,
                    MaxDigit  = -1,
                    Value     = (uint)result.Result.SadCount,
                    Scale     = new SharpDX.Vector2(0.5f, 1)
                });
                this.AddChild(new NumberPictureObject(device, resourceManager, Utility.Path.Combine("numpoint.png"))
                {
                    Position  = new SharpDX.Vector2(557, 4),
                    Alignment = Alignment.Center,
                    MaxDigit  = -1,
                    Value     = (uint)result.Result.WorstCount,
                    Scale     = new SharpDX.Vector2(0.5f, 1)
                });
                this.AddChild(new NumberPictureObject(device, resourceManager, Utility.Path.Combine("numpoint.png"))
                {
                    Position  = new SharpDX.Vector2(645, 4),
                    Alignment = Alignment.Center,
                    MaxDigit  = -1,
                    Value     = (uint)result.Result.MaxCombo,
                    Scale     = new SharpDX.Vector2(0.5f, 1)
                });

                AddBinding(new Binding(result.User, "ImagePath", this, "UserImagePath"));
                ChangeUserIconScale();
            }