Inheritance: MonoBehaviour
コード例 #1
0
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="fake">数据模型</param>
        /// <param name="element">主体元素</param>
        public override void Initial(FakeStruct fake, UIElement element, UIInitializer initializer)
        {
            base.Initial(fake, element, initializer);
            element.SizeChanged   = (o) => { Refresh(); };
            eventCall             = Enity.RegEvent <UserEvent>();
            eventCall.PointerDown = (o, e) => { UpdateVelocity = false; };
            eventCall.Drag        = (o, e, s) => { Scrolling(o, s); };
            eventCall.DragEnd     = OnDragEnd;
            eventCall.MouseWheel  = (o, e) => {
                Point += BounceBack((e.MouseWheelDelta * 100));
                Order();
                UpdateVelocity = true;
            };
            eventCall.ForceEvent = true;
            Size = Enity.SizeDelta;
            eventCall.CutRect = true;
            BodyParent        = element.Find("Bodys");
            TitleParent       = element.Find("Titles");
            HGUIManager.RecycleChild(Enity, new string[] { "Bodys", "Titles" });

            TitleMod  = HGUIManager.FindChild(fake, "Title");
            ItemMod   = HGUIManager.FindChild(fake, "Item");
            TailMod   = HGUIManager.FindChild(fake, "Tail");
            Body      = HGUIManager.FindChild(fake, "Body");
            ItemSize  = UIElementLoader.GetSize(ItemMod);
            TitleSize = UIElementLoader.GetSize(TitleMod);
            if (TailMod != null)
            {
                TailSize = UIElementLoader.GetSize(TailMod);
            }
        }
コード例 #2
0
ファイル: UIPalette.cs プロジェクト: huqiang0204/HGUI
        public override void Initial(FakeStruct fake, UIElement element, UIInitializer initializer)
        {
            base.Initial(fake, element, initializer);
            palette               = new Palette();
            callBackR             = element.RegEvent <UserEvent>(new UICircleCollider());
            callBackR.Drag        = callBackR.DragEnd = DragingR;
            callBackR.PointerDown = PointDownR;
            NobA                  = element.Find("NobA");
            NobB                  = element.Find("NobB");
            hc                    = element.Find("HTemplate");
            template              = hc as HImage;
            callBackC             = template.RegEvent <UserEvent>();
            callBackC.Drag        = callBackC.DragEnd = DragingC;
            callBackC.PointerDown = PointDownC;
            htemp                 = element as HImage;
            htemp.MainTexture     = Palette.LoadCTemplateAsync();
            template.MainTexture  = palette.texture;
            palette.AwaitLoadHSVT(1);
            SelectColor.a = 1;
            var son = element.Find("Slider");

            slider                  = son as HImage;
            slider.MainTexture      = Palette.AlphaTemplate();
            uISlider                = slider.composite as UISlider;
            uISlider.OnValueChanged = AlphaChanged;
            uISlider.Percentage     = 1;
        }
コード例 #3
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="container">模型名称</param>
 /// <param name="mod">模式数据</param>
 public UILinker(UIContainer container, FakeStruct mod)
 {
     con   = container;
     model = mod;
     container.linkers.Add(this);
     initializer = new UIInitializer(TempReflection.ObjectFields(typeof(T)));
 }
コード例 #4
0
        public MonoGameRenderer()
        {
            background    = UIInitializer.CreateBackground(Content);
            RollButton    = UIInitializer.CreateRollButton(Content);
            EndTurnButton = UIInitializer.CreateEndTurnButton(Content);
            FirstDice     = UIInitializer.CreateDice(Content, 1);
            SecondDice    = UIInitializer.CreateDice(Content, 2);
            FirstPlayer   = UIInitializer.CreatePlayer(Content, 1);
            SecondPlayer  = UIInitializer.CreatePlayer(Content, 2);

            PlayersUI = new List <PlayerUI>();
            PlayersUI.Add(FirstPlayer);
            PlayersUI.Add(SecondPlayer);

            TileColliders    = UIInitializer.CreateTileColliders();
            Velocity         = 200;
            ShouldPlayerMove = false;

            //Test

            NotificationText = "AutoD BRRRRRRRumm";
            PlayerOneLaps    = "0 Lap";
            PlayerTwoLaps    = "0 Lap";
            font             = Content.Load <SpriteFont>("Font");
        }
コード例 #5
0
ファイル: HotUILinker.cs プロジェクト: huqiang0204/HGUI
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="container">容器实例</param>
 /// <param name="mod">UI模型名称</param>
 public HotUILinker(UIContainer container, UIElement mod)
 {
     con                   = container;
     model                 = mod.mod;
     middle                = new ObjectLinker(container, mod);
     middle.ItemUpdate     = MItemUpdate;
     middle.LayoutCallback = MCalculItemHigh;
     middle.ItemCreate     = MItemCreate;
     initializer           = new UIInitializer(TempReflection.ObjectFields(typeof(T)));
 }
コード例 #6
0
ファイル: HotUILinker.cs プロジェクト: huqiang0204/HotFixGame
 public HotUILinker(UIContainer container, string mod)
 {
     con                   = container;
     model                 = HGUIManager.FindChild(container.model, mod);
     middle                = new ObjectLinker(container);
     middle.ItemUpdate     = MItemUpdate;
     middle.CalculItemHigh = MCalculItemHigh;
     middle.ItemCreate     = MItemCreate;
     initializer           = new UIInitializer(HotUIBase.ObjectFields(typeof(T)));
 }
コード例 #7
0
ファイル: HGraphicsLoader.cs プロジェクト: huqiang0204/HGUI
        public unsafe override void LoadUI(UIElement com, FakeStruct fake, UIInitializer initializer)
        {
            var hg = com as HGraphics;

            if (hg == null)
            {
                return;
            }
            LoadHGraphics(hg, fake);
            LoadUIElement(hg, fake, initializer);
        }
コード例 #8
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="container">容器实例</param>
 /// <param name="mod">模型名称</param>
 public UILinker(UIContainer container, string mod)
 {
     if (container.model == null)
     {
         return;
     }
     con   = container;
     model = HGUIManager.FindChild(container.model, mod);
     container.linkers.Add(this);
     initializer = new UIInitializer(TempReflection.ObjectFields(typeof(T)));
 }
コード例 #9
0
ファイル: HTextLoader.cs プロジェクト: huqiang0204/HGUI
 public override void LoadUI(HGUI.UIElement com, FakeStruct fake, UIInitializer initializer)
 {
     HGUI.HText image = com as HGUI.HText;
     if (image == null)
     {
         return;
     }
     LoadHGraphics(image, fake);
     LoadHText(image, fake);
     LoadUIElement(image, fake, initializer);
 }
コード例 #10
0
ファイル: UIContainer.cs プロジェクト: huqiang0204/HGUI
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="container">模型名称</param>
 /// <param name="mod">模式数据</param>
 public UILinker(UIContainer container, UIElement mod)
 {
     enityModel            = mod;
     enityModel.activeSelf = false;
     con   = container;
     model = enityModel.mod;
     container.linkers.Add(this);
     initializer = new UIInitializer(TempReflection.ObjectFields(typeof(T)));
     uiModel     = new T();
     initializer.ReflectionEnity(uiModel, mod);
     GetElementCount(mod);
 }
コード例 #11
0
ファイル: DesignedDockPanel.cs プロジェクト: huqiang0204/HGUI
 /// <summary>
 /// 初始化函数
 /// </summary>
 /// <param name="fake">数据模型</param>
 /// <param name="element">UI主体元素</param>
 public override void Initial(FakeStruct fake, UIElement element, UIInitializer initializer)
 {
     contents.Clear();
     base.Initial(fake, element, initializer);
     Auxiliary       = HGUIManager.FindChild(fake, "Auxiliary");
     Drag            = element.Find("Drag");
     Drag.activeSelf = false;
     MainContent     = new DesignedDockAuxiliary(this);
     MainContent.Initial(MainArea, element.Find("Auxiliary"));
     contents.Add(MainContent);
     MainContent.SetParent(MainArea);
 }
コード例 #12
0
        public unsafe override void LoadUI(UIElement com, FakeStruct fake, UIInitializer initializer)
        {
            HImage image = com as HImage;

            if (image == null)
            {
                return;
            }
            LoadHGraphics(image, fake);
            LoadHImage(fake, image);
            LoadUIElement(image, fake, initializer);
        }
コード例 #13
0
ファイル: StackPanel.cs プロジェクト: huqiang0204/HGUI
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="mod">模型数据</param>
        /// <param name="script">元素主体</param>
        public override void Initial(FakeStruct mod, UIElement script, UIInitializer initializer)
        {
            base.Initial(mod, script, initializer);
            script.SizeChanged = (o) => Order();
            var ex = UIElementLoader.GetCompositeData(mod);

            if (ex != null)
            {
                direction      = (Direction)ex[0];
                spacing        = ex.GetFloat(1);
                FixedSize      = ex[2] == 1;
                FixedSizeRatio = ex.GetFloat(3);
                ItemOffset     = ex.GetFloat(4);
            }
        }
コード例 #14
0
 public override void Initial(FakeStruct fake, UIElement script, UIInitializer initializer)
 {
     base.Initial(fake, script, initializer);
     callBack             = script.RegEvent <UserEvent>(new UICircleCollider());
     callBack.Drag        = Draging;
     callBack.DragEnd     = DragEnd;
     callBack.PointerDown = PointDown;
     _r = Enity.SizeDelta.x * 0.5f;
     if (_r <= 0)
     {
         _r = 0.01f;
     }
     _s  = _r * _r;
     Nob = Enity.Find("Nob");
 }
コード例 #15
0
 public override void Initial(FakeStruct fake, UIElement script, UIInitializer initializer)
 {
     base.Initial(fake, script, initializer);
     eventCall             = script.RegEvent <UserEvent>();
     eventCall.PointerDown = (o, e) => { UpdateVelocity = false; };
     eventCall.Drag        = (o, e, s) => { Scrolling(o, s); };
     eventCall.DragEnd     = OnDragEnd;
     eventCall.ForceEvent  = true;
     Size = Enity.SizeDelta;
     eventCall.CutRect = true;
     Enity.SizeChanged = (o) =>
     {
         Refresh(Position);
     };
 }
コード例 #16
0
        public override void Initial(FakeStruct mod, UIElement element, UIInitializer initializer)
        {
            base.Initial(mod, element, initializer);
            var txt = TextCom = element.GetComponentInChildren <TextBox>();

            textColor = txt.m_color;
            unsafe
            {
                if (mod != null)
                {
                    var ex = UIElementLoader.GetEventData(mod);
                    if (ex != null)
                    {
                        TextInputData *tp = (TextInputData *)ex.ip;
                        textColor      = tp->inputColor;
                        m_tipColor     = tp->tipColor;
                        PointColor     = tp->pointColor;
                        SelectionColor = tp->selectColor;
                        CharacterLimit = tp->CharacterLimit;
                        ReadOnly       = tp->ReadyOnly;
                        contentType    = tp->contentType;
                        lineType       = tp->lineType;
                        m_TipString    = mod.buffer.GetData(tp->tipString) as string;
                        m_InputString  = mod.buffer.GetData(tp->inputString) as string;
                    }
                    else
                    {
                        m_InputString = txt.Text;
                    }
                }
                else
                {
                    m_InputString = txt.Text;
                }
            }
            FullString.Reset(m_InputString, false);
            InputEvent = txt.RegEvent <InputBoxEvent>();
            InputEvent.Initial(null);
            InputEvent.input = this;
            Caret            = txt.GetComponentInChildren <HImage>();
#if UNITY_STANDALONE_WIN || UNITY_EDITOR
            TextCom.HorizontalOverflow = HorizontalWrapMode.Overflow;
#else
            TextCom.HorizontalOverflow = HorizontalWrapMode.Wrap;
#endif
            TextCom.VerticalOverflow = VerticalWrapMode.Overflow;
            SetShowText();
        }
コード例 #17
0
ファイル: UIContainer.cs プロジェクト: huqiang0204/HGUI
 /// <summary>
 /// 初始化
 /// </summary>
 /// <param name="fake">数据模型</param>
 /// <param name="script">元素主体</param>
 public override void Initial(FakeStruct fake, UIElement script, UIInitializer initializer)
 {
     base.Initial(fake, script, initializer);
     items                 = new List <Item>();
     eventCall             = Enity.RegEvent <UserEvent>();
     eventCall.AutoColor   = false;
     eventCall.ForceEvent  = true;
     eventCall.PointerDown = (o, e) => { UpdateVelocity = false; };
     eventCall.Drag        = (o, e, s) => { Scrolling(o, s); };
     eventCall.DragEnd     = OnDragEnd;
     //eventCall.Scrolling = Scrolling;
     //eventCall.ScrollEndY = OnScrollEnd;
     eventCall.MouseWheel = (o, e) => { Move(e.MouseWheelDelta * 100); UpdateVelocity = true; };
     model = fake;
     HGUIManager.RecycleChild(Enity);
 }
コード例 #18
0
    public T LoadUI <T>(string asset, string name) where T : class, new()
    {
        model = HGUIManager.FindModel(asset, name);
        T             t            = new T();
        UIInitializer iInitializer = new UIInitializer(TempReflection.ObjectFields(typeof(T)));

        iInitializer.Reset(t);
        Main = HGUIManager.GameBuffer.Clone(model, iInitializer);
        var trans = Main.transform;

        trans.SetParent(Parent);
        trans.localPosition = Vector3.zero;
        trans.localScale    = Vector3.one;
        trans.localRotation = Quaternion.identity;
        return(t);
    }
コード例 #19
0
        /// <summary>
        /// 载入UI模型并实例化
        /// </summary>
        /// <typeparam name="T">UI模型</typeparam>
        /// <param name="asset">资源包名</param>
        /// <param name="name">UI名</param>
        /// <returns></returns>
        public T LoadUI <T>(string asset, string name) where T : class, new()
        {
            uiName = name;
            model  = HGUIManager.FindModelAndSetAssets(asset, name);
            T t = new T();

            uiInitializer = new UIInitializer(ObjectFields(typeof(T)));
            uiInitializer.Reset(t);
            Main = HGUIManager.Clone(model, uiInitializer);
            uiInitializer.Done();
            Main.SetParent(Parent);
            Main.localPosition = Vector3.zero;
            Main.localScale    = Vector3.one;
            Main.localRotation = Quaternion.identity;
            Main.activeSelf    = true;
            return(t);
        }
コード例 #20
0
ファイル: DockPanel.cs プロジェクト: huqiang0204/HGUI
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="fake">数据模型</param>
        /// <param name="element">元素主体</param>
        public override void Initial(FakeStruct fake, UIElement element, UIInitializer initializer)
        {
            base.Initial(fake, element, initializer);
            LineLevel = Enity.Find("LineLevel");
            AreaLevel = Enity.Find("AreaLevel");
            LineMod   = HGUIManager.FindChild(fake, "Line");
            AreaMod   = HGUIManager.FindChild(fake, "Area");
            HGUIManager.RecycleUI(Enity.Find("Line"));
            HGUIManager.RecycleUI(Enity.Find("Area"));
            InitialFixLine();
            InitialArea();
            Enity.SizeChanged = SizeChanged;
            var ex = UIElementLoader.GetCompositeData(fake);

            if (ex != null)
            {
                LoadFromBuffer(ex);
            }
        }
コード例 #21
0
 public override void Initial(FakeStruct mod, UIElement script, UIInitializer initializer)
 {
     base.Initial(mod, script, initializer);
     callBack             = Enity.RegEvent <UserEvent>();
     callBack.Drag        = Draging;
     callBack.DragEnd     = DragEnd;
     callBack.PointerDown = PointDown;
     callBack.AutoColor   = false;
     FillImage            = script.Find("FillImage") as HImage;
     Nob = script.Find("Nob") as HImage;
     unsafe
     {
         var ex = UIElementLoader.GetCompositeData(mod);
         if (ex != null)
         {
             info = *(SliderInfo *)ex.ip;
         }
     }
 }
コード例 #22
0
ファイル: Paint.cs プロジェクト: huqiang0204/HGUI
        public override void Initial(FakeStruct fake, UIElement script, UIInitializer initializer)
        {
            base.Initial(fake, script, initializer);
            raw           = Enity as HImage;
            raw.MainColor = Color.white;
            var size = Enity.SizeDelta;

            Width                 = (int)size.x;
            Height                = (int)size.y;
            HalfW                 = Width / 2;
            HalfH                 = Height / 2;
            buffer                = new Color[Width * Height];
            gesture               = Enity.RegEvent <GestureEvent>();
            gesture.PointerDown   = PointDown;
            gesture.Drag          = Drag;
            gesture.DragEnd       = DragEnd;
            gesture.AutoColor     = false;
            gesture.TowFingerMove = TowFingerMove;
            Apply(null);
        }
コード例 #23
0
        public override void Initial(FakeStruct mod, UIElement script, UIInitializer initializer)
        {
            base.Initial(mod, script, initializer);
            Label          = Enity.Find("Label") as HText;
            callBack       = Enity.RegEvent <UserEvent>();
            callBack.Click = Show;
            var scroll = Enity.Find("Scroll");

            if (scroll != null)
            {
                scroll.activeSelf = false;
                m_scroll          = scroll.composite as ScrollY;
                if (m_scroll != null)
                {
                    m_scroll.SetItemUpdate <PopItemMod, object>(ItemUpdate);
                    m_scroll.eventCall.LostFocus   = LostFocus;
                    m_scroll.eventCall.DataContext = this;
                }
            }
        }
コード例 #24
0
        public override void Initial(FakeStruct mod, UIElement script, UIInitializer initializer)
        {
            base.Initial(mod, script, initializer);
            ItemMod    = HGUIManager.FindChild(BufferData, "Item");
            ContentMod = HGUIManager.FindChild(BufferData, "Content");
            HGUIManager.RecycleChild(script);
            var m = new Middleware <MenuItem, MenuContext>();

            m.Invoke = ItemUpdate;
            creator  = m;
            if (ItemMod != null)
            {
                ItemH = UIElementLoader.GetSize(ItemMod).y;
            }
            if (ContentMod != null)
            {
                ContentW = UIElementLoader.GetSize(ContentMod).x;
            }
            CurItem.Context = new MenuContext();
        }
コード例 #25
0
ファイル: TreeView.cs プロジェクト: huqiang0204/HGUI
 public override void Initial(FakeStruct fake, UIElement script, UIInitializer initializer)
 {
     base.Initial(fake, script, initializer);
     eventCall             = script.RegEvent <UserEvent>();
     eventCall.PointerDown = (o, e) => { UpdateVelocity = false; };
     eventCall.Drag        = (o, e, s) => { Scrolling(o, s); };
     eventCall.DragEnd     = OnDragEnd;
     eventCall.MouseWheel  = (o, e) => { Scrolling(o, new Vector2(0, e.MouseWheelDelta * 100)); };
     eventCall.ForceEvent  = true;
     eventCall.AutoColor   = false;
     Size = Enity.SizeDelta;
     eventCall.CutRect = true;
     ItemMod           = HGUIManager.FindChild(fake, "Item");
     if (ItemMod != null)
     {
         HGUIManager.RecycleChild(script);
         ItemSize = UIElementLoader.GetSize(ItemMod);
         ItemHigh = ItemSize.y;
     }
     Enity.SizeChanged = (o) => { Refresh(); };
 }
コード例 #26
0
ファイル: DragContent.cs プロジェクト: huqiang0204/HGUI
        /// <summary>
        /// 初始化
        /// </summary>
        /// <param name="fake">数据模型</param>
        /// <param name="script">元素主体</param>
        public override void Initial(FakeStruct fake, UIElement script, UIInitializer initializer)
        {
            base.Initial(fake, script, initializer);
            Size                  = Enity.m_sizeDelta;
            eventCall             = Enity.RegEvent <UserEvent>();
            eventCall.PointerDown = (o, e) => { UpdateVelocity = false; };
            eventCall.Drag        = (o, e, s) =>
            {
                Size = Enity.m_sizeDelta;
                Scrolling(o, s);
            };
            eventCall.DragEnd    = OnDragEnd;
            eventCall.ForceEvent = true;
            eventCall.AutoColor  = false;

            eventCall.CutRect = true;
            Content           = Enity.Find("Content");
            if (Content != null)
            {
                Move(Vector2.zero);
            }
        }
コード例 #27
0
ファイル: UIContainer.cs プロジェクト: huqiang0204/HGUI
        /// <summary>
        /// 创建项目连接器
        /// </summary>
        /// <returns></returns>
        public override LinkerMod CreateUI()
        {
            for (int i = 0; i < buffer.Count; i++)
            {
                if (buffer[i].index < 0)
                {
                    var item = buffer[i];
                    buffer.RemoveAt(i);
                    return(item);
                }
            }
            LinkerMod mod = new LinkerMod();
            T         t   = new T();

            if (initializer == null)
            {
                initializer = new UIInitializer(TempReflection.ObjectFields(typeof(T)));
            }
            initializer.Reset(t);
            mod.main = HGUIManager.Clone(model, initializer);
            mod.UI   = t;
            return(mod);
        }
コード例 #28
0
        public override void Execute()
        {
            this.Initialization();

            if (!this.IsDone)
            {
                this.NextState = this;

                this.CheckForPause();

                this.PlaySound();

                // Creating Healthpacks
                foreach (var healthpack in StateMachine.CurrentLevel.ListOfHealthPacks)
                {
                    healthpack.Animation.Position = healthpack.Position;
                    healthpack.Bounds             = new Rectangle((int)healthpack.Position.X, (int)healthpack.Position.Y, healthpack.Animation.SourceRectangle.Width, healthpack.Animation.SourceRectangle.Height);
                    if (healthpack.IsActive)
                    {
                        if (!healthpack.IsDrawn)
                        {
                            this.SpritesInState.Add(healthpack.Animation);
                            healthpack.IsDrawn = true;
                        }

                        healthpack.ActOnPlayer(StateMachine.CurrentLevel.ListOfPlayers);
                    }
                    else
                    {
                        if (healthpack.IsDrawn)
                        {
                            this.SpritesInState.Remove(healthpack.Animation);
                            healthpack.IsDrawn = false;
                        }
                        else
                        {
                            if (healthpack.TimeToSpawn > 0)
                            {
                                healthpack.TimeToSpawn--;
                            }
                            else
                            {
                                healthpack.IsActive    = true;
                                healthpack.TimeToSpawn = Globals.Rng.Next(500, 1200);
                            }
                        }
                    }
                }

                // Using PileOfSnow
                foreach (var gameObject in StateMachine.CurrentLevel.ListOfGameObjects)
                {
                    if (gameObject.GetType() != typeof(Block))
                    {
                        gameObject.ActOnPlayer(StateMachine.CurrentLevel.ListOfPlayers);
                    }
                }

                for (int i = 0; i < StateMachine.CurrentLevel.ListOfPlayers.Count; i++)
                {
                    // Adjusting snowballbars
                    UIInitializer.ListOfSnowballBars[i].SourceRectangle = new Rectangle(UIInitializer.ListOfSnowballBars[i].SourceRectangle.X, UIInitializer.ListOfSnowballBars[i].SourceRectangle.Y, 20 * StateMachine.CurrentLevel.ListOfPlayers[i].Snowballs, UIInitializer.ListOfSnowballBars[i].SourceRectangle.Height);

                    // Adjusting Healthbars
                    UIInitializer.ListOfHealthbars1[i].SourceRectangle = new Rectangle(UIInitializer.ListOfHealthbars1[i].SourceRectangle.X, UIInitializer.ListOfHealthbars1[i].SourceRectangle.Y, 3 * StateMachine.CurrentLevel.ListOfPlayers[i].Health, UIInitializer.ListOfHealthbars1[i].SourceRectangle.Height);

                    // Game Over Condition
                    if (UIInitializer.ListOfHealthbars1[i].SourceRectangle.Width == 0)
                    {
                        this.IsDone    = true;
                        this.NextState = new GameOverState(this, i);
                        //// Stop sounds
                        for (int m = 1; m < 7; m++)
                        {
                            SoundManager.Stop("Sound" + m.ToString());
                        }
                    }

                    // Base Movement, Animation and Bounds
                    StateMachine.CurrentLevel.ListOfPlayers[i].Move(StateMachine.CurrentLevel.ListOfGameObjects);
                    StateMachine.CurrentLevel.ListOfPlayers[i].PlayerAnimation.Position      = StateMachine.CurrentLevel.ListOfPlayers[i].Position;
                    StateMachine.CurrentLevel.ListOfPlayers[i].PlayerAnimation.IsFacingRight = StateMachine.CurrentLevel.ListOfPlayers[i].IsFacingRight;
                    StateMachine.CurrentLevel.ListOfPlayers[i].Bounds = new Rectangle((int)StateMachine.CurrentLevel.ListOfPlayers[i].Position.X, (int)StateMachine.CurrentLevel.ListOfPlayers[i].Position.Y, StateMachine.CurrentLevel.ListOfPlayers[i].PlayerAnimation.SourceRectangle.Width, StateMachine.CurrentLevel.ListOfPlayers[i].PlayerAnimation.SourceRectangle.Height);
                    StateMachine.CurrentLevel.ListOfPlayers[i].PlayerAnimation.ChangeAnimation(StateMachine.CurrentLevel.ListOfPlayers[i].State);

                    // Shooting
                    if (StateMachine.CurrentLevel.ListOfPlayers[i].IsShooting)
                    {
                        StateMachine.CurrentLevel.ListOfPlayers[i].IsShooting = false;
                        Vector2 snowballPosition = new Vector2();
                        if (StateMachine.CurrentLevel.ListOfPlayers[i].IsFacingRight)
                        {
                            snowballPosition = new Vector2(StateMachine.CurrentLevel.ListOfPlayers[i].Bounds.Right, StateMachine.CurrentLevel.ListOfPlayers[i].Position.Y + (StateMachine.CurrentLevel.ListOfPlayers[i].Bounds.Height * 0.2f));
                        }
                        else
                        {
                            snowballPosition = new Vector2(StateMachine.CurrentLevel.ListOfPlayers[i].Bounds.Left - 40, StateMachine.CurrentLevel.ListOfPlayers[i].Position.Y + (StateMachine.CurrentLevel.ListOfPlayers[i].Bounds.Height * 0.2f));
                        }

                        Snowball newSnowball = new Snowball(snowballPosition, UIInitializer.CreateSprite("Snowball"), StateMachine.CurrentLevel.ListOfPlayers[i].IsFacingRight);
                        StateMachine.CurrentLevel.ListOfSnowballs.Add(newSnowball);
                        this.SpritesInState.Add(newSnowball.Sprite);
                    }
                }

                // Movement and Bounds of the Snowballs
                for (int i = 0; i < StateMachine.CurrentLevel.ListOfSnowballs.Count; i++)
                {
                    // Collision
                    StateMachine.CurrentLevel.ListOfSnowballs[i].ActOnPlayer(StateMachine.CurrentLevel.ListOfPlayers);

                    StateMachine.CurrentLevel.ListOfSnowballs[i].ActOnBlock(StateMachine.CurrentLevel.ListOfGameObjects);

                    // Movement and Destruction
                    if (!StateMachine.CurrentLevel.ListOfSnowballs[i].IsMelting)
                    {
                        StateMachine.CurrentLevel.ListOfSnowballs[i].Move();
                        StateMachine.CurrentLevel.ListOfSnowballs[i].Sprite.Position = StateMachine.CurrentLevel.ListOfSnowballs[i].Position;
                        StateMachine.CurrentLevel.ListOfSnowballs[i].Bounds          = new Rectangle(
                            (int)StateMachine.CurrentLevel.ListOfSnowballs[i].Position.X,
                            (int)StateMachine.CurrentLevel.ListOfSnowballs[i].Position.Y,
                            StateMachine.CurrentLevel.ListOfSnowballs[i].Sprite.Texture.Width,
                            StateMachine.CurrentLevel.ListOfSnowballs[i].Sprite.Texture.Height);
                    }
                    else
                    {
                        this.SpritesInState.Remove(StateMachine.CurrentLevel.ListOfSnowballs[i].Sprite);
                        StateMachine.CurrentLevel.ListOfSnowballs.Remove(StateMachine.CurrentLevel.ListOfSnowballs[i]);
                    }
                }
            }
        }
コード例 #29
0
ファイル: ScrollContent.cs プロジェクト: huqiang0204/HGUI
 /// <summary>
 /// 构造函数
 /// </summary>
 public Middleware()
 {
     initializer = new UIInitializer(TempReflection.ObjectFields(typeof(T)));
 }
コード例 #30
0
        public override void Initialize()
        {
            this.LevelBackground = UIInitializer.CreateSprite("Level1Background");

            LevelOne.Player1 = new Player(Keys.Left, Keys.Right, Keys.Up, Keys.Down, new Vector2(40, 150), AnimationFactory.CreatePlayerAnimation(Color.Aquamarine), true);
            LevelOne.Player2 = new Player(Keys.A, Keys.D, Keys.W, Keys.S, new Vector2(1150, 800), AnimationFactory.CreatePlayerAnimation(Color.Peru), false);

            this.ListOfPlayers = new List <Player> {
                Player1, Player2
            };

            this.ListOfSnowballs = new List <Snowball>();

            this.ListOfHealthPacks = new List <HealthPack>
            {
                new HealthPack(new Vector2(610, 280), AnimationFactory.CreateHealthPack()),
            };

            this.ListOfGameObjects = new List <GameObject>
            {
                // PileOfSnow
                new PileOfSnow(new Vector2(580, 510), UIInitializer.CreateSprite("PileOfSnow")),
                new PileOfSnow(new Vector2(580, 880), UIInitializer.CreateSprite("PileOfSnow")),

                // BLOCKS
                // TOP BLOCK LINE
                new Block(new Vector2(0, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(40, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(80, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(120, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(160, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(200, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(240, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(280, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(320, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(360, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(400, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(440, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(480, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(520, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(560, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(600, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(640, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(680, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(720, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(760, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(800, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(840, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(880, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(920, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(960, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(1000, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(1040, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(1080, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(1120, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(1160, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(1200, 70), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(1240, 70), UIInitializer.CreateSprite("IceCube")),
                //// BOT BLOCK LINE
                new Block(new Vector2(0, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(80, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(160, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(240, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(320, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(400, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(480, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(560, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(640, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(720, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(800, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(880, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(960, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(1040, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(1120, 950), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(1200, 950), UIInitializer.CreateSprite("IceBlock")),
                //// some
                new Block(new Vector2(0, 700), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(80, 700), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(160, 750), UIInitializer.CreateSprite("IceBlock")),
                //// some
                new Block(new Vector2(1040, 750), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(1120, 700), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(1200, 700), UIInitializer.CreateSprite("IceBlock")),
                //// LEFT CUBE LINE
                new Block(new Vector2(0, 400), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(40, 400), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(0, 450), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(0, 500), UIInitializer.CreateSprite("IceCube")),
                //// RIGHT CUBE LINE
                new Block(new Vector2(1200, 400), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(1240, 400), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(1240, 450), UIInitializer.CreateSprite("IceCube")),
                new Block(new Vector2(1240, 500), UIInitializer.CreateSprite("IceCube")),
                //// Central blocks
                new Block(new Vector2(480, 580), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(560, 580), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(640, 580), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(720, 580), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(420, 620), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(480, 620), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(560, 620), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(640, 620), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(720, 620), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(780, 620), UIInitializer.CreateSprite("IceBlock")),

                //// Central upper
                new Block(new Vector2(600, 380), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(520, 380), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(680, 380), UIInitializer.CreateSprite("IceBlock")),
                //// Right central blocks
                new Block(new Vector2(1200, 350), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(1040, 400), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(1120, 400), UIInitializer.CreateSprite("IceBlock")),
                //// Left central blocks
                new Block(new Vector2(0, 350), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(80, 400), UIInitializer.CreateSprite("IceBlock")),
                new Block(new Vector2(160, 400), UIInitializer.CreateSprite("IceBlock")),
            };
        }