예제 #1
0
        void Load_3()
        {
            doorOpened  = false;
            doorOpening = false;
            LevelFinish = false;
            gameState   = 0;
            putCount    = 0;
            animals     = new List <Dragable>
            {
                new Dragable(new Texture2D[] { Content.Load <Texture2D>("Graphics/owl_grey_0"), Content.Load <Texture2D>("Graphics/owl_grey_1") },
                             new Rectangle(rd.Next(ObjectMovingRestrictionList[0].X, ObjectMovingRestrictionList[0].X + ObjectMovingRestrictionList[0].Width), rd.Next(ObjectMovingRestrictionList[0].Y, ObjectMovingRestrictionList[0].Y + ObjectMovingRestrictionList[0].Height), 171, 216))
                {
                    RenderOrder = 4,
                    ID          = 0,

                    holdPoint = new Point(98, 65)
                },
                new Dragable(new Texture2D[] { Content.Load <Texture2D>("Graphics/Fox_Peach_0"), Content.Load <Texture2D>("Graphics/Fox_Peach_1") },
                             new Rectangle(rd.Next(ObjectMovingRestrictionList[0].X, ObjectMovingRestrictionList[0].X + ObjectMovingRestrictionList[0].Width), rd.Next(ObjectMovingRestrictionList[0].X, ObjectMovingRestrictionList[0].Y + ObjectMovingRestrictionList[0].Height), 180, 184))
                {
                    RenderOrder = 4,
                    ID          = 1,
                    holdPoint   = new Point(58, 92)
                },
                new Dragable(new Texture2D[] { Content.Load <Texture2D>("Graphics/Bear_0"), Content.Load <Texture2D>("Graphics/Bear_1") },
                             new Rectangle(rd.Next(ObjectMovingRestrictionList[0].X, ObjectMovingRestrictionList[0].X + ObjectMovingRestrictionList[0].Width), rd.Next(ObjectMovingRestrictionList[0].X, ObjectMovingRestrictionList[0].Y + ObjectMovingRestrictionList[0].Height), 200, 200))
                {
                    RenderOrder = 4,
                    ID          = 2,

                    holdPoint = new Point(49, 61)
                },
            };

            /*
             * taskList = new TaskList(Content.Load<Texture2D>("Graphics/TaskList"), new Rectangle(29, 20, 147, 200), Content.Load<SpriteFont>("Font/font"))
             * {
             *  RenderOrder = 5,
             *  taskList = new List<Task>()
             * };
             * foreach (Dragable animal in animals)
             * {
             *  taskList.taskList.Add(new Task("Hide " + animal.name, animal.ID));
             * }
             * taskList.taskList.Add(new Task("Turn off the\n         light", animals.Count));
             */

            var room = new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/room2") }, new Rectangle(0, 0, 1280, 720))
            {
                RenderOrder = 0
            };

            curtains = new List <BGGraphic>
            {
                new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/curtain_0"), Content.Load <Texture2D>("Graphics/curtain_1") }, new Rectangle(265, 58, 175, 258))
                {
                    ID = 20
                },
                new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/curtain_0"), Content.Load <Texture2D>("Graphics/curtain_1") }, new Rectangle(567, 58, 175, 258))
                {
                    ID = 21
                }
            };
            spaceBar = new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/space") }, new Rectangle(1079, 564, 165, 132))
            {
                RenderOrder = 4,
                isVisible   = false,
                suprisee    = true
            };
            lightSwitch = new Button(Content.Load <Texture2D>("Graphics/switch_1"), Content.Load <Texture2D>("Graphics/switch_0"))
            {
                RenderOrder = 3,
                Position    = new Vector2(1000, 180)
            };
            door = new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/door_0"), Content.Load <Texture2D>("Graphics/door_1") }, new Rectangle(811, 130, 143, 230))
            {
                RenderOrder = 0
            };
            confetti = new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/confetti") }, new Rectangle(0, 0, ScreenWidth, ScreenHeight))
            {
                RenderOrder = 100,
                isVisible   = false
            };
            cat = new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/cat_0"), Content.Load <Texture2D>("Graphics/cat_1"), Content.Load <Texture2D>("Graphics/cat_2"), Content.Load <Texture2D>("Graphics/cat_3") }, new Rectangle(0, 265, 152, 180))
            {
                RenderOrder  = -1,
                DisplayingID = 3,
                suprisee     = true,
                MoveSpeed    = 2
            };

            lounge = new InteractableObj(new Texture2D[] { Content.Load <Texture2D>("Graphics/Lounge_0"), Content.Load <Texture2D>("Graphics/Lounge_1"), Content.Load <Texture2D>("Graphics/Lounge_2") }, new Rectangle(325, 251, 398, 219), new Point(467, 354), animals)
            {
                ID          = 0,
                RenderOrder = 3
            };
            var rug2 = new InteractableObj(new Texture2D[] { Content.Load <Texture2D>("Graphics/rug_0"), Content.Load <Texture2D>("Graphics/rug_1"), Content.Load <Texture2D>("Graphics/rug_2") }, new Rectangle(521, 452, 366, 366), new Point(615, 665), animals)
            {
                ID          = 1,
                RenderOrder = 3
            };
            var sofa2 = new InteractableObj(new Texture2D[] { Content.Load <Texture2D>("Graphics/sofa_0"), Content.Load <Texture2D>("Graphics/sofa_1"), Content.Load <Texture2D>("Graphics/sofa_2") }, new Rectangle(100, 360, 352, 352), new Point(258, 548), animals)
            {
                ID          = 2,
                RenderOrder = 3
            };

            horns = new ObjInBody[] {
                new ObjInBody(Content.Load <Texture2D>("Graphics/Horn_0"), new Rectangle(100, 600, 50, 50))
                {
                    RenderOrder = 3,
                    isVisible   = true
                }, new ObjInBody(Content.Load <Texture2D>("Graphics/Horn_1"), new Rectangle(200, 400, 50, 50))
                {
                    RenderOrder = 3,
                    isVisible   = true
                },
                new ObjInBody(Content.Load <Texture2D>("Graphics/Horn_2"), new Rectangle(400, 500, 50, 50))
                {
                    RenderOrder = 3,
                    isVisible   = true
                }
            };

            foreach (var item in animals)
            {
                for (int i = 0; i < horns.Length; i++)
                {
                    item.objInBodies.Add(horns[i]);
                }
            }

            components = new List <Component>()
            {
                room,
                spaceBar,
                lightSwitch,
                door,
                confetti,
                cat,
                horns[0],
                horns[1],
                horns[2],
                lounge,
                rug2,
                sofa2
            };
            interactableObjs2 = new List <InteractableObj>();
            interactableObjs2.Add(lounge);
            interactableObjs2.Add(rug2);
            interactableObjs2.Add(sofa2);

            foreach (Dragable anim in animals)
            {
                components.Add(anim);
            }
            foreach (BGGraphic curt in curtains)
            {
                components.Add(curt);
            }

            cat.MoveTo(new Point(170, 142 - 219));
            SceneStart = _gameTime.TotalGameTime;
        }
예제 #2
0
        void Update_1(GameTime gameTime)
        {
            #region Update_Scene1
            foreach (var item in components)
            {
                item.Update(gameTime);
            }

            // mouse staffs
            previousMouseState = currentMouseState;
            currentMouseState  = Mouse.GetState();

            UpdateMouse();

            if (!doorOpening)
            {
                if (gameTime.TotalGameTime > SceneStart + FirstLeg && !halfTime)
                {
                    cat.MoveTo(new Point(800 - 170, 0));
                    sounds["goGoGo"].Play();
                    halfTime = true;
                }
                else if (gameTime.TotalGameTime > SceneStart + FirstLeg + SecondLeg)
                {
                    // cout down finish
                    doorOpening = true;
                    gameState   = 1;
                    OpenDoor(gameTime);
                    sounds["shush"].Play();
                    halfTime = false;
                }
            }

            if (!doorOpened && doorOpening)
            {
                if (gameTime.TotalGameTime - IntervalSpan2 > DoorOpenToComeIn)
                {
                    doorOpened         = true;
                    spaceBar.isVisible = true;
                    door.RenderOrder   = -2;
                    foreach (var item in animals)
                    {
                        item.StopMovement();
                    }
                    // show rabit
                    cat.isVisible = true;
                }
            }

            if (doorOpened && doorOpening && Keyboard.GetState().IsKeyDown(Keys.Space) && (gameState == 1))
            {
                gameState      = 2;
                Game1.supriser = Color.White;
                Game1.suprisee = Color.White;
                CheckResult_Scene1();
            }

            if (gameState == 2)
            {
                gameState = 3;

                foreach (var item in animals)
                {
                    if (item.InSpot)
                    {
                        item.DisplayingID = 1;
                    }
                    item.isVisible = true;
                }
                foreach (var item in interactObjs)
                {
                    item.SetIMG(0);
                }
            }

            if (LevelFinish)
            {
                if (Keyboard.GetState().IsKeyDown(Keys.N))
                {
                    GameScene = 2;
                    Load_2();
                    LevelFinish = false;
                }
            }

            #endregion
        }
예제 #3
0
        void Load_1()
        {
            #region Scene1_LoadContent

            sounds["comeOn"].Play();
            // UIs
            #region Initialize parameters
            // dragable animals
            animals = new List <Dragable>
            {
                new Dragable(new Texture2D[] { Content.Load <Texture2D>("Graphics/owl_grey_0"), Content.Load <Texture2D>("Graphics/owl_grey_1") },
                             new Rectangle(rd.Next(ObjectMovingRestrictionList[0].X, ObjectMovingRestrictionList[0].X + ObjectMovingRestrictionList[0].Width), rd.Next(ObjectMovingRestrictionList[0].Y, ObjectMovingRestrictionList[0].Y + ObjectMovingRestrictionList[0].Height), 171, 216))
                {
                    RenderOrder = 4,
                    ID          = 0
                },
                new Dragable(new Texture2D[] { Content.Load <Texture2D>("Graphics/hamster_0"), Content.Load <Texture2D>("Graphics/hamster_1") },
                             new Rectangle(rd.Next(ObjectMovingRestrictionList[0].X, ObjectMovingRestrictionList[0].X + ObjectMovingRestrictionList[0].Width), rd.Next(ObjectMovingRestrictionList[0].X, ObjectMovingRestrictionList[0].Y + ObjectMovingRestrictionList[0].Height), 103, 127))
                {
                    RenderOrder = 4,
                    ID          = 1
                },
                new Dragable(new Texture2D[] { Content.Load <Texture2D>("Graphics/Bear_0"), Content.Load <Texture2D>("Graphics/Bear_1") },
                             new Rectangle(rd.Next(ObjectMovingRestrictionList[0].X, ObjectMovingRestrictionList[0].X + ObjectMovingRestrictionList[0].Width), rd.Next(ObjectMovingRestrictionList[0].X, ObjectMovingRestrictionList[0].Y + ObjectMovingRestrictionList[0].Height), 100, 100))
                {
                    RenderOrder = 4,
                    ID          = 2
                },
            };

            /*
             * taskList = new TaskList(Content.Load<Texture2D>("Graphics/TaskList"), new Rectangle(29, 20, 147, 200), Content.Load<SpriteFont>("Font/font"))
             * {
             *  RenderOrder = 5,
             *  taskList = new List<Task>()
             * };
             * foreach (Dragable animal in animals)
             * {
             *  taskList.taskList.Add(new Task("Hide " + animal.name, animal.ID));
             * }
             * taskList.taskList.Add(new Task("Turn off the\n         light", animals.Count));
             */
            door = new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/door_0"), Content.Load <Texture2D>("Graphics/door_1") }, new Rectangle(811, 130, 143, 230))
            {
                RenderOrder = 0
            };
            confetti = new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/confetti") }, new Rectangle(0, 0, ScreenWidth, ScreenHeight))
            {
                RenderOrder = 100,
                isVisible   = false
            };
            balloons = new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/ballons") }, new Rectangle(480, 100, 143, 230))
            {
                RenderOrder = 1
            };
            cat = new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/cat_0"), Content.Load <Texture2D>("Graphics/cat_1"), Content.Load <Texture2D>("Graphics/cat_2"), Content.Load <Texture2D>("Graphics/cat_3") }, new Rectangle(0, 265, 152, 180))
            {
                RenderOrder  = -1,
                DisplayingID = 3,
                suprisee     = true,
                MoveSpeed    = 2
            };
            cat.isVisible = true;

            var room = new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/room") }, new Rectangle(0, 0, 1280, 720))
            {
                RenderOrder = 0
            };
            boxes = new InteractableObj(new Texture2D[] { Content.Load <Texture2D>("Graphics/box_0"), Content.Load <Texture2D>("Graphics/box_1"), Content.Load <Texture2D>("Graphics/box_2") }, new Rectangle(780, 339, 300, 300), new Point(780 + 150 - 20, 339 + 150), animals)
            {
                ID          = 0,
                RenderOrder = 3
            };

            sofa = new InteractableObj(new Texture2D[] { Content.Load <Texture2D>("Graphics/sofa_0"), Content.Load <Texture2D>("Graphics/sofa_1"), Content.Load <Texture2D>("Graphics/sofa_2") }, new Rectangle(420, 189, 300, 300), new Point(420 + 184, 189 + 226), animals)
            {
                ID          = 1,
                RenderOrder = 3
            };

            rug = new InteractableObj(new Texture2D[] { Content.Load <Texture2D>("Graphics/rug_0"), Content.Load <Texture2D>("Graphics/rug_1"), Content.Load <Texture2D>("Graphics/rug_2") }, new Rectangle(320, 389, 300, 300), new Point(126 + 320, 389 + 220), animals)
            {
                ID          = 2,
                RenderOrder = 3,
            };
            lightSwitch = new Button(Content.Load <Texture2D>("Graphics/switch_1"), Content.Load <Texture2D>("Graphics/switch_0"))
            {
                RenderOrder = 3,
                Position    = new Vector2(1000, 180)
            };

            spaceBar = new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/space") }, new Rectangle(1079, 564, 165, 132))
            {
                RenderOrder = 4,
                isVisible   = false,
                suprisee    = true
            };

            curtains = new List <BGGraphic>()
            {
                new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/curtain_0"), Content.Load <Texture2D>("Graphics/curtain_1") }, new Rectangle(265, 58, 175, 258))
                {
                    ID = 20
                },
                new BGGraphic(new Texture2D[] { Content.Load <Texture2D>("Graphics/curtain_0"), Content.Load <Texture2D>("Graphics/curtain_1") }, new Rectangle(567, 58, 175, 258))
                {
                    ID = 21
                }
            };

            foreach (var item in curtains)
            {
                item.OnPress += OnPressCurtain;
            }
            #endregion



            components = new List <Component>()
            {
                door,
                balloons,
                cat,
                room,
                boxes,
                sofa,
                rug,
                lightSwitch,
                spaceBar,
                confetti,
                curtains[0],
                curtains[1]
            };
            foreach (Dragable animal in animals)
            {
                components.Add(animal);
            }


            // sort the list by the render order
            components.Sort((x, y) => x.RenderOrder.CompareTo(y.RenderOrder));

            #region interaction list and method

            interactObjs = new List <InteractableObj>()
            {
                boxes,
                sofa,
                rug
            };
            #endregion

            cat.MoveTo(new Point(170, 142 - 219));

            #endregion
        }