コード例 #1
0
 public void ReactToDoor(Vector2 playerPos,Door door)
 {
     if (Vector2.Distance(position,playerPos)<50)
     {
         if (this.buttonName == door.name)
         {
             door.OpenDoor();
         }
     }
 }
コード例 #2
0
        public TestLevel(Texture2D texture,string mapname,Vector2 position)
        {
            this.mapname = mapname;
            this.position = position;

            switch (mapname)
            {
                case "map":
                    map = new int[,]
                    {
                                    /*items*/
                        // 1 = blok      // 3 = ladder  // 5 = item // 7 = schuif obj // 9 = falldoor button // 11
                        // 2 = steen     // 4 = button  // 6 = door // 8 = fall door // 10 = pressure plate

                        {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                        {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,1,0,1,0,1,0,3,0,0,0,0,0,0,0,1,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                        {1,1,1,1,0,0,0,0,0,10,0,10,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                        {1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,1,3,0,0,0,6,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                        {1,1,1,1,11,0,0,0,1,1,1,1,3,1,1,1,1,1,1,1,0,0,4,0,0,0,1,0,1,1,1,3,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,3,0,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                        {1,1,1,1,0,0,0,0,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,6,0,0,0,1,0,1,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                        {1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,4,1,0,1,1,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
                        {1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,0,1,1,0,1,1,1,1,5,0,0,1,1,1,0,0,0,0,0,0,0,0,6,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,2,0,0,0,0,0},
                        {1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,5,0,9,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0},
                        {1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,0,0,1,1,1,3,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                        {1,1,1,1,1,1,1,3,0,0,0,0,0,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,5,0,4,0,0,0,0,0,0,1,1,1,1,0,0,0,0,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                        {1,1,1,1,1,1,1,0,1,1,0,5,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,5,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                        {1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,0,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                        {1,1,1,1,1,1,1,0,5,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,1,1,1,1,1,1,1,5,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                        {1,1,1,1,1,1,1,1,1,1,1,0,0,0,4,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                        {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},
                    };
                    break;
            }

            buttons = new List<Door_button>();
            ladders = new List<Ladder>();
            stones = new List<Steen>();
            Tiles = new List<blok>();
            collectibles = new List<CollectItem>();
            doors = new List<Door>();
            moveObjects = new List<MoveObject>();
            Mdoors = new List<MoveDoor>();
            Mbuttons = new List<MoveDoorButton>();
            plates = new List<PressurePlate>();

            CheckRtiles = new List<blok>();
            CheckLtiles = new List<blok>();
            CheckBtiles = new List<blok>();

            this.tiletexture = texture;

            buttonIndex = 0;
            ladderIndex = 0;
            doorIndex = 0;

            center = new Vector2(this.Width / 2 * 44, this.Heigth / 2*44);
            SpawnNextlvl = false;

            for (int x = 0; x < Width; x++)
            {
                for (int y = 0; y < Heigth; y++)
                {
                    //Assets in het Grid genereren
                    int textureIndex = map[y, x];
                    if (textureIndex == 0)
                        continue;
                    switch (textureIndex)
                    {
                        case 1:
                            blok tile = new blok(tiletexture, new Vector2(position.X + x * 44,position.Y + y * 44));
                            Tiles.Add(tile);
                            break;

                        case 2:
                            Steen steen = new Steen(Game1.crushstone,13, 1);
                            AnimationClass animate = new AnimationClass();
                            steen.position = new Vector2(position.X + x * 44, position.Y + y * 44);
                            steen.addAnimation(Game1.crushstone,"idle",1,13, animate.Copy());
                            steen.Animation = "idle";

                            stones.Add(steen);
                            break;

                        case 3:
                            Ladder ladder = new Ladder(Game1.laddertextures[ladderIndex], new Vector2(position.X + x * 44, position.Y + y * 44));
                            ladderIndex++;
                            ladders.Add(ladder);
                            break;

                        case 4:
                           Door_button button = new Door_button(Game1.button_tex, 12, 1, buttonIndex);
                            AnimationClass animate2 = new AnimationClass();
                            button.position = new Vector2(position.X + x * 44, position.Y + y * 44);
                            button.addAnimation(Game1.button_tex, "idle", 1, 12, animate2.Copy());
                            button.Animation = "idle";
                            buttonIndex++;
                            buttons.Add(button);
                            break;

                        case 5:
                            CollectItem item = new CollectItem(Game1.slaktex, 50, 1);
                            AnimationClass animate3 = new AnimationClass();
                            item.position = new Vector2(position.X + x * 44, position.Y + y * 44);
                            item.addAnimation(Game1.slaktex, "idle", 1, 50, animate3.Copy());
                            item.Animation = "idle";
                            collectibles.Add(item);
                            break;

                        case 6:
                            Door door = new Door(Game1.door_tex, new Vector2(position.X + x * 44, position.Y + y * 44), doorIndex);
                            doorIndex++;
                            doors.Add(door);
                            break;

                        case 7:
                            MoveObject obj = new MoveObject(Game1.stonetex,15, 1);
                            AnimationClass animate5 = new AnimationClass();
                            obj.position = new Vector2(position.X + x * 44, position.Y + y * 44);
                            obj.addAnimation(Game1.stonetex,"idle2",1, 15, animate5.Copy());
                            obj.Animation = "idle2";
                            moveObjects.Add(obj);
                            break;

                        case 8:
                            MoveDoor objdoor = new MoveDoor(Game1.fallStone, new Vector2(position.X + x * 44, position.Y + y * 44),moveDoorIndex);
                            moveDoorIndex++;
                            Mdoors.Add(objdoor);
                            break;

                        case 9:
                            MoveDoorButton button2 = new MoveDoorButton(Game1.button_tex,12, 1,moveButtonIndex);
                            AnimationClass animate6 = new AnimationClass();
                            button2.position = new Vector2(position.X + x * 44, position.Y + y * 44);
                            button2.addAnimation(Game1.button_tex, "idle", 1, 12, animate6.Copy());
                            button2.Animation = "idle";
                            moveButtonIndex++;
                            Mbuttons.Add(button2);
                            break;

                        case 10:
                            PressurePlate plate = new PressurePlate(Game1.pressureplate, new Vector2(position.X + x * 44, position.Y + y * 55));
                            plates.Add(plate);
                            break;

                        case 11:
                            liftobject = new LiftObject(Game1.liftobj, new Vector2(position.X + x * 44, position.Y + y * 44));
                            break;
                    }

                }
            }
        }