Inheritance: MonoBehaviour
コード例 #1
0
ファイル: Program.cs プロジェクト: LaurenMazzoli/IT-1050
        static void Main(string[] args)
        {
            #region elevator1Logic

                Elevator elevator1 = new Elevator(2,400);           // ** creates a new instance of Elevator called elevator1 **

                Passenger a1 = new Passenger("A1", 180);            // ** creates a new Passenger called a1 **
                elevator1.AddOccupant(a1, 0);                       // ** adds Passenger a1 to elevator1's occupants (index 0) **

                elevator1.AddOccupant(new Passenger("A2", 220), 1); // ** creates a new Passenger, sets the values & adds it to elevator1's occupants (index 1) **

                bool elevator1IsOverMaxCapacity = elevator1.IsOverMaxCapacity(); //** determines if the passenger weight of elevator1 is over its capacity **

            #endregion elevator1Logic

            #region elevator2Logic

                Elevator elevator2 = new Elevator(3, 600);          //  ** creates a new instance of Elevator called elevator2 **

                elevator2.AddOccupant(new Passenger("A1", 200), 0); //  ** creates a new Passenger, sets the values & adds it to elevator2's occupants (index 0) **
                elevator2.AddOccupant(new Passenger("A2", 200), 1); //  ** creates a new Passenger, sets the values & adds it to elevator2's occupants (index 1) **
                elevator2.AddOccupant(new Passenger("A3", 201), 2); //  ** creates a new Passenger, sets the values & adds it to elevator2's occupants (index 2) **

                bool elevator2IsOverMaxCapacity = elevator2.IsOverMaxCapacity(); //** determines if the passenger weight of elevator2 is over its capacity **

            #endregion elevator2Logic
        }
コード例 #2
0
        static void Main(string[] args)
        {
            bool elevator1IsOverMaxCapacity;
            bool elevator2IsOverMaxCapacity;

            Elevator elevator1 = new Elevator(2, 400);
            Passenger A1 = new Passenger("A1", 180);
            Passenger A2 = new Passenger("A2", 220);
            elevator1.AddOcupant(0, A1);
            elevator1.AddOcupant(1, A2);

            Elevator elevator2 = new Elevator(3, 600);
            A1 = new Passenger("A1", 200);
            A2 = new Passenger("A2", 200);
            Passenger A3 = new Passenger("A3",201);
            elevator2.AddOcupant(0, A1);
            elevator2.AddOcupant(1, A2);
            elevator2.AddOcupant(2, A3);

            elevator1.GetCurrentWeight();
            elevator2.GetCurrentWeight();
            elevator1IsOverMaxCapacity = elevator1.IsOverMaxCap();
            elevator2IsOverMaxCapacity = elevator2.IsOverMaxCap();

            System.Console.Read();
        }
コード例 #3
0
    Text showCase; // show the information

    #endregion Fields

    #region Methods

    // Use this for initialization
    void Start()
    {
        // find the text UI in chindren
        showCase = gameObject.GetComponentInChildren<Text>();

        // find the elevator in parent
        elevator = gameObject.GetComponentInParent<Elevator>();
    }
コード例 #4
0
    void Main(string argument)
    {
        if (elev == null) elev = new Elevator(GridTerminalSystem, Me, Echo, ElapsedTime);

        if (argument.Length > 0)
        {

        }
        elev.mainLoop();
    }
コード例 #5
0
    public void Init(ElevatorState state, Elevator elevator)
    {
        SetState(state);

        owner = elevator;

        floorCoordinates = new Transform[] {
            elevator.ElevatorButtons[0].transform,
            elevator.ElevatorButtons[1].transform,
            elevator.ElevatorButtons[2].transform,
        };
    }
コード例 #6
0
	void Awake ()
	{
		elevatorGO = transform.parent.gameObject;
		elevator = elevatorGO.GetComponent<Elevator> ();

		spriteRenderer = GetComponent<SpriteRenderer> ();

		initialPosition = elevatorGO.transform.position;

		targetPosition = new Vector3 (initialPosition.x + offsetX, initialPosition.y + offsetY + additionalVerticalOffset, initialPosition.z);

		duration = Vector3.Distance (initialPosition, targetPosition) / (speed * speedFactor);
	}
コード例 #7
0
ファイル: Program.cs プロジェクト: JennJackson/IT-1050
        static void Main(string[] args)
        {
            Elevator elevator1 = new Elevator(2, 400);
            elevator1.AddOccupant(new Passenger("A1", 180), 0);
            elevator1.AddOccupant(new Passenger("A2", 220), 1);

            bool elevator1IsOverMaxCapacity = elevator1.IsOverMaxCapacity();

            /////////////////////////////////////////////////////////////////////////////

            Elevator elevator2 = new Elevator(3, 600);
            elevator2.AddOccupant(new Passenger("A1", 200), 0);
            elevator2.AddOccupant(new Passenger("A2", 200), 1);
            elevator2.AddOccupant(new Passenger("A3", 201), 2);

            bool elevator2IsOverMaxCapacity = elevator2.IsOverMaxCapacity();
        }
コード例 #8
0
ファイル: Program.cs プロジェクト: hannah-purgar/IT-1025
        static void Main(string[] args)
        {
            // ELEVATOR #1
            Elevator elevator1 = new Elevator(2, 400);
            Passenger A1 = new Passenger("A1", 180);
            elevator1.AddOccupant(A1, 0);
            //System.Console.WriteLine("1Elevator 1 weight: " + elevator1.GetCurrentWeight());

            Passenger A2 = new Passenger("A2", 220);
            elevator1.AddOccupant(A2, 1);
            //System.Console.WriteLine("2Elevator 1 weight: " + elevator1.GetCurrentWeight());

            bool elevator1IsOverMaxCapacity = elevator1.IsOverMaxCapacity();
            //System.Console.WriteLine("Elevator 1 is Overweight: " + elevator1IsOverMaxCapacity);
            //System.Console.WriteLine("Elevator 1 weight: " + elevator1.GetCurrentWeight());


            // ELEVATOR #2
            Elevator elevator2 = new Elevator(3, 600);
            Passenger A3 = new Passenger("A1", 200);
            elevator2.AddOccupant(A3, 0);
            //System.Console.WriteLine("1Elevator 2 weight: " + elevator2.GetCurrentWeight());
            Passenger A4 = new Passenger("A2", 200);
            elevator2.AddOccupant(A4, 1);
            //System.Console.WriteLine("2Elevator 2 weight: " + elevator2.GetCurrentWeight());
            Passenger A5 = new Passenger("A3", 201);
            elevator2.AddOccupant(A5, 2);
            //System.Console.WriteLine("3Elevator 2 weight: " + elevator2.GetCurrentWeight());
            bool elevator2IsOverMaxCapacity = elevator2.IsOverMaxCapacity();

            System.Console.WriteLine("Elevator 1 is Overweight: " + elevator1IsOverMaxCapacity);
            System.Console.WriteLine("Elevator 2 is Overweight: " + elevator2IsOverMaxCapacity);
            System.Console.WriteLine("Elevator 1 weight: " + elevator1.GetCurrentWeight());
            System.Console.WriteLine("Elevator 2 weight: " + elevator2.GetCurrentWeight());

            System.Console.Read();




        }
コード例 #9
0
        public void Elevator_MoveUpAndDownTests()
        {
            Type     type     = typeof(Elevator);
            Elevator elevator = (Elevator)Activator.CreateInstance(type, 3);

            type.GetMethod("GoUp").Invoke(elevator, new object[] { 2 });
            Assert.AreEqual(2, type.GetProperty("CurrentLevel").GetValue(elevator), "The elevator should go up to the floor that it was directed to.");

            type.GetMethod("OpenDoor").Invoke(elevator, null);
            type.GetMethod("GoUp").Invoke(elevator, new object[] { 3 });
            Assert.AreEqual(2, type.GetProperty("CurrentLevel").GetValue(elevator), "The elevator should remain on its current floor if the door is open.");
            type.GetMethod("CloseDoor").Invoke(elevator, null);

            type.GetMethod("GoUp").Invoke(elevator, new object[] { 3 });
            Assert.AreEqual(3, type.GetProperty("CurrentLevel").GetValue(elevator), "The elevator should go up to the floor that it was directed to.");

            type.GetMethod("GoUp").Invoke(elevator, new object[] { 4 });
            Assert.AreEqual(3, type.GetProperty("CurrentLevel").GetValue(elevator), "The elevator should not go past its last floor.");

            type.GetMethod("GoUp").Invoke(elevator, new object[] { 1 });
            Assert.AreEqual(3, type.GetProperty("CurrentLevel").GetValue(elevator), "The elevator should only go up if the desired floor is greater than the current floor.");

            type.GetMethod("GoDown").Invoke(elevator, new object[] { 2 });
            Assert.AreEqual(2, type.GetProperty("CurrentLevel").GetValue(elevator), "The elevator should go down to the floor that it was directed to.");

            type.GetMethod("OpenDoor").Invoke(elevator, null);
            type.GetMethod("GoDown").Invoke(elevator, new object[] { 1 });
            Assert.AreEqual(2, type.GetProperty("CurrentLevel").GetValue(elevator), "The elevator should remain on its current floor if the door is open.");
            type.GetMethod("CloseDoor").Invoke(elevator, null);

            type.GetMethod("GoDown").Invoke(elevator, new object[] { 1 });
            Assert.AreEqual(1, type.GetProperty("CurrentLevel").GetValue(elevator), "The elevator should go down to the floor that it was directed to.");

            type.GetMethod("GoDown").Invoke(elevator, new object[] { -1 });
            Assert.AreEqual(1, type.GetProperty("CurrentLevel").GetValue(elevator), "The elevator should not go below floor 1.");

            type.GetMethod("GoDown").Invoke(elevator, new object[] { 3 });
            Assert.AreEqual(1, type.GetProperty("CurrentLevel").GetValue(elevator), "The elevator should only go down if the desired floor is less than the current floor.");
        }
コード例 #10
0
        public void GivenOneFloorAndOneElevator_WhenElevatorIsInFirstFloorAndUpFollowedByFirstFloorIsPressedFromGroundFloor_ThenElevatorIsMovedFromFirstToGroundAndThenToFirstFloor()
        {
            //Arrange
            Building building = new Building(minFloor: 0, maxfloor: 1, numberOfElevators: 1);
            //Move elevator to First floor
            Elevator elevatorReachedFirstFloor = building.AddRequest(floorNumber: 0, requestDirection: FloorRequestDirection.UP, destinationFloor: 1);

            //Act
            Elevator elevatorServedRequest = building.AddRequest(floorNumber: 0, requestDirection: FloorRequestDirection.UP, destinationFloor: 1);

            var actions = elevatorServedRequest.GetActions();

            //Assert
            Assert.True(actions.Count() == 7);
            Assert.Equal(new ElevatorAction(doorsOpenedFloor: 0), actions[0]);
            Assert.Equal(new ElevatorAction(fromFloor: 0, toFloor: 1), actions[1]);
            Assert.Equal(new ElevatorAction(doorsOpenedFloor: 1), actions[2]);
            Assert.Equal(new ElevatorAction(fromFloor: 1, toFloor: 0), actions[3]);
            Assert.Equal(new ElevatorAction(doorsOpenedFloor: 0), actions[4]);
            Assert.Equal(new ElevatorAction(fromFloor: 0, toFloor: 1), actions[5]);
            Assert.Equal(new ElevatorAction(doorsOpenedFloor: 1), actions[6]);
        }
コード例 #11
0
            private Elevator challengedistance(Elevator[] elevator, int floornumber)
            {
                int      poselevator1;
                int      poselevator2;
                Elevator elevatorchenge = new Elevator();
                int      bestpos;
                Elevator bestposelevator = new Elevator();

                bestposelevator.number = -1;
                for (int i = 0; i < elevator.Length - 1; i++)
                {
                    poselevator1 = floornumber - elevator[i].floor;
                    poselevator2 = floornumber - elevator[i + 1].floor;

                    if (poselevator1 < 0)
                    {
                        poselevator1 = poselevator1 * (-1);
                    }
                    if (poselevator2 < 0)
                    {
                        poselevator2 = poselevator2 * (-1);
                    }
                    bestpos = poselevator2 - poselevator1;

                    if (bestpos > 0)
                    {
                        bestposelevator = elevator[i];
                        elevatorchenge  = elevator[i + 1];
                        elevator[i + 1] = elevator[i];
                        elevator[i]     = elevatorchenge;
                    }
                    else
                    {
                        bestposelevator = elevator[i + 1];
                    }
                }

                return(bestposelevator);
            }
コード例 #12
0
    // Start is called before the first frame update
    void Start()
    {
        myCapsuleCollider = GetComponent <CapsuleCollider2D>();
        myRigidbody       = GetComponent <Rigidbody2D>();

        if (forGate)
        {
            gateScript = gate.GetComponent <Gate>();
        }
        if (forBridge)
        {
            bridgeScript = bridge.GetComponent <Bridge>();
        }
        if (forElevator)
        {
            elevatorScript = elevator.GetComponent <Elevator>();
        }
        if (forWaterfall)
        {
            waterfallScript = waterfall.GetComponent <Waterfall>();
        }
    }
コード例 #13
0
ファイル: StateMoving.cs プロジェクト: Cruiser18/ElevatorTest
    public override void UpdateState(Elevator elevator)
    {
        Transform elevatorPosition = elevator.gameObject.transform;
        Transform floorPosition = stateMachine.floorCoordinates[stateMachine.targetFloor].transform;

        float step = movementSpeed * Time.deltaTime;
        elevatorPosition.position = Vector2.MoveTowards(
            elevatorPosition.position,
            new Vector2(elevatorPosition.position.x, floorPosition.position.y),
            step);

        if (Vector2.Distance(new Vector2(0, elevatorPosition.position.y), new Vector2(0, floorPosition.position.y)) < 0.01)
        {
            StateOpeningDoors state;

            state = ScriptableObject.CreateInstance("StateOpeningDoors") as StateOpeningDoors;

            stateMachine.SetState(state);

            isDone = true;
        }
    }
コード例 #14
0
ファイル: Elevator.cs プロジェクト: dhog10/gmtk2020
    public void SetNewDestination(Vector3 destination)
    {
        var player = TankCharacterController.Instance;
        var pPos   = Vector3.zero;

        if (player != null)
        {
            pPos = TankCharacterController.Instance.transform.position - transform.position;
        }

        transform.position = destination - new Vector3(0f, 10f, 0f);
        m_GoingUp          = false;

        if (TankCharacterController.Instance != null)
        {
            TankCharacterController.Instance.transform.position = transform.position + pPos;
        }

        m_TargetPosition = destination;

        LastEnterElevator = this;
    }
コード例 #15
0
        private void Open_Door_On_Specified_Floors(
            int elevatorInitialFloor,
            int[][] elevatorRequestsArrays,
            int[] expectedStops)
        {
            List <ElevatorRequest> elevatorRequests = new List <ElevatorRequest>();

            foreach (int[] elevatorRequest in elevatorRequestsArrays)
            {
                elevatorRequests.Add(new ElevatorRequest
                {
                    FloorStart = elevatorRequest[0],
                    FloorEnd   = elevatorRequest[1]
                });
            }

            Elevator elevator = new Elevator(elevatorInitialFloor);

            elevator.Operate(elevatorRequests);

            Assert.AreEqual(expectedStops, elevator.GetElevatorStops());
        }
コード例 #16
0
        static void Main(string[] args)
        {
            Elevator elevator = new Elevator(new Random());
            var      agents   =
                Enumerable.Range(1, 5)
                .Select(i => new Agent(elevator))
                .ToList();



            foreach (var agent in agents)
            {
                agent.MoveAround();
            }

            while (agents.Any(s => !s.HasLeft))
            {
                elevator.ElevatorWork();
            }

            Console.WriteLine("End of the program.");
        }
コード例 #17
0
ファイル: Program.cs プロジェクト: SamDelBrocco/IT-1050
        static void Main(string[] args)
        {
            bool elevator1IsOverMaxCapacity;
            bool elevator2IsOverMaxCapacity;

            Elevator elevator1 = new Elevator(2, 400);
            Passenger A1 = new Passenger("A1", 180);
            elevator1.AddOccupant(A1, 0);
            Passenger A2 = new Passenger("A2", 220);
            elevator1.AddOccupant(A2, 1);

            Elevator elevator2 = new Elevator(3, 600);
            A1 = new Passenger("A1", 200);
            elevator2.AddOccupant(A1, 0);
            A2 = new Passenger("A2", 200);
            elevator2.AddOccupant(A2, 1);
            Passenger A3 = new Passenger("A3", 201);
            elevator2.AddOccupant(A3, 2);

            elevator1IsOverMaxCapacity = elevator1.IsOverMaxCapacity();
            elevator2IsOverMaxCapacity = elevator2.IsOverMaxCapacity();
        }
コード例 #18
0
            // ======================================== //

            // ========= Column Constructor ========== //
            public Column(int id, int numberOfelevator, int minOperatingFloor, int maxOperatingFloor)
            {
                this.id = id;
                this.numberOfelevator  = numberOfelevator;
                this.minOperatingFloor = minOperatingFloor;
                this.maxOperatingFloor = maxOperatingFloor;
                this.elevatorsList     = new List <Elevator>();

                // == Generating elevators in elevatorsList == //
                for (int i = 1; i <= numberOfelevator; i++)
                {
                    Elevator elevator = new Elevator(
                        id: i,
                        value: 0,
                        currentFloor: 0,
                        totalScore: 0,
                        direction: "idle",
                        doorStatus: "closed"
                        );
                    elevatorsList.Add(elevator);
                }
            }
コード例 #19
0
        public void Call_4elevators_4returned()
        {
            //arrange
            Elevator elev1    = new Elevator(12, Status.Down, 1);
            Elevator elev2    = new Elevator(5, Status.Up, 6);
            Elevator elev3    = new Elevator(1, Status.Up, 10);
            Elevator elev4    = new Elevator(8, Status.Down, 1);
            Elevator expected = elev3;

            //act
            Building building = new Building();

            building.AddElevator(elev1);
            building.AddElevator(elev2);
            building.AddElevator(elev3);
            building.AddElevator(elev4);
            var actual = building.Call(new Person {
                Location = 7, Direction = Status.Up
            });

            Assert.AreEqual(expected, actual);
        }
コード例 #20
0
        public MovementBuoy(Buoy buoy)
        {
            _buoy     = buoy;
            _elevator = Actionneur.FindElevator(_buoy.Color);

            double delta = _elevator == Actionneur.ElevatorLeft ? 30 : -30;

            //for (int i = 0; i < 360; i += 60)
            //{
            //    Positions.Add(new Geometry.Position(i + delta + 180, new Geometry.Shapes.RealPoint(_buoy.Position.X + 200* new AnglePosition(delta + i).Cos, _buoy.Position.Y + 200 * new AnglePosition(delta + i).Sin)));
            //}

            for (int i = 0; i < 360; i += 60)
            {
                Positions.Add(new Geometry.Position(i + 180 + delta, new Geometry.Shapes.RealPoint(_buoy.Position.X + 250 * new AnglePosition(i).Cos, _buoy.Position.Y + 250 * new AnglePosition(i).Sin)));
            }

            //AnglePosition a = 0;
            //Positions.Add(new Geometry.Position(a + 180 + delta, new Geometry.Shapes.RealPoint(_buoy.Position.X + 250 * new AnglePosition(a).Cos, _buoy.Position.Y + 250 * new AnglePosition(a).Sin)));
            //a = 180;
            //Positions.Add(new Geometry.Position(a + 180 + delta, new Geometry.Shapes.RealPoint(_buoy.Position.X + 250 * new AnglePosition(a).Cos, _buoy.Position.Y + 250 * new AnglePosition(a).Sin)));
        }
コード例 #21
0
        private PowerCounter[] GetAllConnectedCounters(Elevator topElevator)
        {
            var counters        = new List <PowerCounter>();
            var currentElevator = topElevator;

            do
            {
                PowerCounter counter1, counter2;
                GetConnectedCounters(currentElevator, out counter1, out counter2);
                if (counter1 != null)
                {
                    counters.Add(counter1);
                }

                if (counter2 != null)
                {
                    counters.Add(counter2);
                }
            }while ((currentElevator = currentElevator.GetElevatorInDirection(Elevator.Direction.Down)) != null);

            return(counters.Count > 0 ? counters.ToArray() : null);
        }
コード例 #22
0
ファイル: Hotel.cs プロジェクト: Mrzicokiller/hotelsimulator
        /// <summary>
        /// Deze functie wordt elke seconden aangeroepen om gasten en medewerkes te laten lopen.
        /// </summary>
        /// <param name="source"></param>
        /// <param name="e"></param>
        private void UpdateHotel(Object source, ElapsedEventArgs e)
        {
            //for loop voor het update van de lift
            for (int i = 0; i < Roomlist.Count; i++)
            {
                //als de kamer gelijk is aan Elevator
                if (Roomlist[i].AreaType == "Elevator")
                {
                    //maak een tijdelijke lift update de lift en voeg hem weer toe
                    Elevator tempElevator = (Elevator)Roomlist[i];
                    tempElevator.updateElevator();
                    Roomlist[i] = tempElevator;
                }
            }

            //update de gasten
            foreach (Guest guest in GuestList.ToList())
            {
                guest.Move();
            }


            //update de schoonmakers en kijk of er een kamer moet worden schoon gemaakt
            foreach (Maid maid in Employees)
            {
                maid.Move();

                if (!maid.working && _dirtyroom.Count > 0)
                {
                    maid.working = true;
                    maid.CleanRoom(_dirtyroom.Dequeue());
                }
                else if (_dirtyroom.Count == 0 && !maid.working && maid.CurrentPosition.AreaType != "Reception")
                {
                    maid.ReturnToBase();
                }
            }
        }
コード例 #23
0
        public async Task MoveDownAsyncShouldAbortIfCanceled()
        {
            var cts     = new CancellationTokenSource();
            var request = new ElevatorRequest {
                FromFloor = 5, ToFloor = 0
            };
            var elevator = new Elevator
            {
                CurrentFloor = 5,
                Name         = nameof(MoveDownAsyncShouldMoveElevatorDownwards)
            };
            var elevatorMover = new ElevatorMover(
                elevator,
                _movementLogger.Object,
                new WaiterService()
                );

            cts.Cancel();

            await Assert.ThrowsAsync <TaskCanceledException>(() =>
                                                             elevatorMover.MoveDownAsync(request, cts.Token)
                                                             );
        }
コード例 #24
0
        public void CheckMaxWeightAllowedReached_100MaxWeightWithSeveralEmployees_ReturnTrue()
        {
            // Arrange
            var myElevator = new Elevator(100);
            // employee 1
            var Director = new Employee();

            Director.Weight      = 75;
            Director.IsExecutive = true;
            // employee 2
            var Producer = new Employee();

            Producer.Weight = 85;

            // Act
            //adding employees to the elevator
            myElevator.InUser(Director);
            myElevator.InUser(Producer);
            var result = myElevator.CheckMaxWeightAllowedReached();

            // Assert
            Assert.IsTrue(result);
        }
コード例 #25
0
ファイル: ElevatorPanel.cs プロジェクト: RainElysium/2.5DGame
    private void OnTriggerStay(Collider other)
    {
        if (other.CompareTag("Player") && other.GetComponent <Player>().Getcoins() == _coinsRequired)
        {
            if (Input.GetKeyDown(KeyCode.E))
            {
                _mat = GameObject.Find("Call_Button").GetComponent <MeshRenderer>();

                if (_elevatorCalled == true)
                {
                    _mat.material.color = Color.red;
                }
                else
                {
                    _mat.material.color = Color.green;
                    _elevatorCalled     = true;
                }

                Elevator elevator = GameObject.Find("Elevator").GetComponent <Elevator>();
                elevator.CallElevator();
            }
        }
    }
コード例 #26
0
        /*
         * Реальный пример
         * Нам надо управлять лифтом, который может перемещаться между подвалом, первым и верхними этажами
         * (местоположение лифтовой кабины относительно земли будет как раз являться Состоянием, которое мы отразим в коде).
         */
        static void Main(string[] args)
        {
            // определяется интерфейс состония лифта: IElevatorState.cs

            // Теперь реализуем различные состояния нашего объекта Лифт: LowerElevatorState.cs, GroundElevatorState.cs, UpperElevatorState.cs

            // Теперь реализация самого объекта Лифт: Elevator.cs

            // Клиентский код:
            // инициализируем лифт (находится на земле)
            Elevator elevator = new Elevator(new GroundElevatorState());

            elevator.Up();             // подъем наверх
            elevator.Down();           // спуск на землю
            elevator.Down();           // спуск в подвал
            elevator.Down();           // ниже некуда

            /*
             * Мы вынесли поведение, зависящее от текущего состояния объекта, в отдельные классы (соответствующие нужному состоянию).
             * Если бы мы этого не делали, наши основные методы были бы перегружены условиями, if-else и так далее.
             * В систему можно легко вводить новые состояния при необходимости, также как и использовать уже имеющиеся в других объектах.
             */
        }
コード例 #27
0
        public void GivenThreeElevatorsDifferentQueues_GetBestElevator_ShouldReturnTheCorrectIndexIndex()
        {
            var elevator1Queue = new Queue <int>();

            elevator1Queue.Enqueue(0); elevator1Queue.Enqueue(2); elevator1Queue.Enqueue(12);
            var elevator2Queue = new Queue <int>();

            elevator2Queue.Enqueue(10); elevator2Queue.Enqueue(0); elevator2Queue.Enqueue(5);
            var elevator3Queue = new Queue <int>();

            elevator3Queue.Enqueue(12); elevator3Queue.Enqueue(14);
            var elevators = new Elevator[] { new Elevator {
                                                 Position = 10, Stops = elevator1Queue
                                             }, new Elevator {
                                                 Position = 5, Stops = elevator2Queue
                                             }, new Elevator {
                                                 Position = 11, Stops = elevator3Queue
                                             } };

            var elevatorIndex = GetBestElevator(elevators, 10, 12);

            Assert.IsTrue(elevatorIndex == 2);
        }
コード例 #28
0
 public Entity.Elevator Get(Guid id)
 {
     try
     {
         Entity.Elevator elevator = new Elevator();
         elevator = _deviceRepository.FindBy(r => r.Guid == id).Select(p => Mapper.Configuration.Mapper.Map <Entity.Elevator>(p)).FirstOrDefault();
         var wing     = _entityRepository.FindBy(r => r.Guid == elevator.EntityGuid).FirstOrDefault();
         var building = _entityRepository.FindBy(r => r.Guid == wing.ParentEntityGuid).FirstOrDefault();
         elevator.Wing     = wing.Name;
         elevator.Building = building.Name;
         var template = _lookupService.GetTemplate(false).FirstOrDefault();
         if (template != null)
         {
             elevator.TemplateGuid = new Guid(template.Value);
         }
         return(elevator);
     }
     catch (Exception ex)
     {
         _logger.ErrorLog(ex, "DeviceManager.Get " + ex);
         return(null);
     }
 }
コード例 #29
0
    // Update is called once per frame
    void Update()
    {
        if (Input.touchCount > 0)
        {
            //Ray ray = Camera.main.ScreenPointToRay(Input.GetTouch(0).position);
            RaycastHit2D hit;
            Touch        myTouch = Input.touches[0];

            if (myTouch.phase == TouchPhase.Began)
            {
                hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.GetTouch(0).position), Vector2.zero);
                string parent = hit.transform.parent.name;
                if (hit.transform.gameObject.name == "ArrowDown")
                {
                    Elevator.MoveDown(parent);
                }
                else if (hit.transform.gameObject.name == "ArrowUp")
                {
                    Elevator.MoveUp(parent);
                }
            }
        }
    }
コード例 #30
0
    public void ActionBasedOnItem()
    {
        LeverMachine leverMachine = GetComponentInChildren <LeverMachine>();

        if (leverMachine != null)
        {
            leverMachine.ActivateLever();
        }
        else
        {
            Elevator elevator = GetComponentInChildren <Elevator>();
            if (elevator != null)
            {
                elevator.enabled = !elevator.enabled;
            }

            Bridge bridge = GetComponentInChildren <Bridge>();
            if (bridge != null)
            {
                bridge.Toggle();
            }


            Circular[] circulars = GetComponentsInChildren <Circular>();
            foreach (Circular c in circulars)
            {
                c.enabled = !c.enabled;
            }
        }

        GravityFieldToggler gravityField = GetComponentInChildren <GravityFieldToggler>();

        if (gravityField != null)
        {
            gravityField.Toggle();
        }
    }
コード例 #31
0
ファイル: Program.cs プロジェクト: MrGrabazu/codingame
    public string GetOrder(int position, string direction)
    {
        int positionToReach = ExitPosition;

        if (positionToReach == -1)
        {
            Elevator finalElevator = null;
            if (Elevators.Count == 1)
            {
                finalElevator = Elevators.FirstOrDefault();
            }
            else
            {
                int minDistance = int.MaxValue;
                foreach (Elevator elevator in Elevators)
                {
                    int currentDistance = elevator.Position > position ? elevator.Position - position : position - elevator.Position;
                    if (currentDistance < minDistance)
                    {
                        finalElevator = elevator;
                        minDistance   = currentDistance;
                    }
                }
            }

            positionToReach = finalElevator.Position;
        }

        if ((positionToReach < position && direction == Direction.RIGHT) || (positionToReach > position && direction == Direction.LEFT))
        {
            return("BLOCK");
        }
        else
        {
            return("WAIT");
        }
    }
コード例 #32
0
        private void OnElevatorMove(Elevator topElevator, int targetFloor)
        {
            var lift = topElevator.liftEntity;

            if (lift == null)
            {
                return;
            }

            var liftFloor = topElevator.LiftPositionToFloor();

            if (targetFloor == liftFloor)
            {
                return;
            }

            // Using NextTick to wait for the movement to begin so we can get the travel time
            NextTick(() =>
            {
                if (topElevator == null || lift == null)
                {
                    return;
                }

                var travelTime = GetTravelTime(lift);
                if (travelTime == 0)
                {
                    return;
                }

                var counters = GetAllConnectedCounters(topElevator);
                if (counters != null)
                {
                    StartUpdatingLiftCounters(lift, counters, travelTime);
                }
            });
        }
コード例 #33
0
            // === This is used to request RC from another floor === //
            public void requestElevator(int floorNumber)
            {
                // Setting user position and direction //
                userFloor = floorNumber;
                if (userFloor >= 1)
                {
                    userDirection = "down";
                }
                else if (userFloor < -1)
                {
                    userDirection = "up";
                }

                // User wants to go to RC, so requestedFloor = 0 //
                requestedFloor = 0;

                // Console Writing to make the program clearer //
                Console.WriteLine("");
                Console.WriteLine("======== Request ground floor ==========");
                Console.WriteLine("A request has been made at floor " + userFloor + ". User is going " + userDirection);
                Console.WriteLine("");
                Console.WriteLine("======== Returning a column ============");

                // Nesting findColumn, findElevator and 2 moveElevator //
                //        (first to the user, then destination)        //
                selectedColumn   = findColumn(floorNumber);
                selectedElevator = selectedColumn.findElevator(selectedColumn, floorNumber, userDirection);
                Console.WriteLine("=========== Moving to User ============");
                selectedElevator.moveElevator(floorNumber);
                Console.WriteLine("User is entering the elevator.");
                Console.WriteLine("");
                Console.WriteLine("========== Returning to RC ============");
                selectedElevator.moveElevator(requestedFloor);
                Console.WriteLine("User has arrived at his destination.");
                Console.WriteLine("");
            }
コード例 #34
0
 public ActionResult <ApiResponse <IEnumerable <Elevator> > > IntiateElevator(int count, int floors)
 {
     try
     {
         Logger.Info($"Elevators initiation requested - {count} with floors  - {floors}");
         int i = 0;
         while (i < count)
         {
             var item = new Elevator
             {
                 Guid         = Guid.NewGuid(),
                 CurrentState = State.Idle,
                 CurrentFloor = 0,
                 MaxFloor     = floors
             };
             _elevators.Add(item);
             i += 1;
         }
         Logger.Info($"Elevators initiated - {count} with floors  - {floors}");
         var apiResponse = new ApiResponse <IEnumerable <Elevator> >()
         {
             ResponseCode   = ResponseCodeType.Success,
             ResponseObject = _elevators
         };
         return(Ok(apiResponse));
     }
     catch (Exception ex)
     {
         Logger.Error($"initiate elevator failed - {ex.Message}");
         return(Ok(new ApiResponse <IEnumerable <Elevator> >()
         {
             ResponseCode = ResponseCodeType.Error,
             Message = Resources.Resources.ErrorMessage,
         }));
     }
 }
コード例 #35
0
ファイル: Authorization.xaml.cs プロジェクト: Aleks9100/UP01
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            bool key = false;

            using (var Db = new Elevator())
            {
                foreach (var enter in Db.Users.ToList())
                {
                    if (enter.Login == TB_Login.Text && enter.Password == PB_Password.Password)
                    {
                        if (enter.Status == "Admin")
                        {
                            new MainWindow().Show();
                            this.Close();
                        }
                        key = true;
                    }
                }
                if (key == false)
                {
                    MessageBox.Show("Неверный логин или пароль");
                }
            }
        }
コード例 #36
0
    /// <summary>
    /// Saves all current stats from a station
    /// </summary>
    /// <param name="stationToSave"></param>
    private void SaveStats(Station stationToSave)
    {
        mCurrentStats = new Stats
        {
            CurrentWorkerSpeed       = stationToSave.WorkerList[0].TimeForCompletion,
            CurrentUpgradeMultiplier = stationToSave.CostToUpgradeMultiplier
        };

        if (stationToSave is Mine)
        {
            Mine mine = (Mine)stationToSave;
            mCurrentStats.CurrentEfficiency = mine.GoldPerMiner;
        }
        else if (stationToSave is Elevator)
        {
            Elevator elevator = (Elevator)stationToSave;
            mCurrentStats.CurrentEfficiency = elevator.Limit;
        }
        else if (stationToSave is Transport)
        {
            Transport transport = (Transport)stationToSave;
            mCurrentStats.CurrentEfficiency = transport.Limit;
        }
    }
コード例 #37
0
    void FindMyElevator()
    {
        elevators     = Object.FindObjectsOfType(typeof(Elevator)) as Elevator[];
        elevatorTotal = elevators.Length;

        if (elevators.Length != 0)
        {
            //Choose the manager which is a parent of the button
            for (int i = 0; i < elevatorTotal; i++)
            {
                Elevator aElevator = (Elevator)elevators[i];
                //Debug.Log ("Testing..." + aElevator);
                if (aElevator.transform.IsChildOf(myManager.transform))
                {
                    myElevator = aElevator;
                }
            }
        }
        else
        {
            //Warn the user there are no managers in the scene
            Debug.Log("There are no Elevator scripts assigned in this scene. Elevator buttons will not work without these scripts. Please see the manual for assistance");
        }
    }
コード例 #38
0
        //bu method kioskun bulunduğu noktadan hedefe olan uzaklığını x ve y koordinatı olarak hesaplar her iki kattaki koordinatları tuple tipi ile verir
        public Tuple <Point, Point> FindShortestPath(Node target)
        {
            Point firstPath;
            Point secondPath;
            var   floorPath = target.Floor - Floor;

            if (floorPath != 0)
            {
                var stairs           = new Stairs();
                var stairsFirstPath  = Math.Abs(stairs.Column - Column) + Math.Abs(stairs.Row - Row);               //ilk kattaki yolun uzunluğu (merdivenli yol)
                var stairsSecondPath = Math.Abs(target.Column - stairs.Column) + Math.Abs(target.Row - stairs.Row); //ikinci kattaki yolun uzunluğu (merdivenli yol)
                var stairsTotalPath  = stairsFirstPath + stairsSecondPath;                                          //merdivenli yolun toplam uzuluğu

                var elevator           = new Elevator();
                var elevatorFirstPath  = Math.Abs(elevator.Column - Column) + Math.Abs(elevator.Row - Row);               //ilk kattaki yolun uzunluğu (asansörlü yol)
                var elevatorSecondPath = Math.Abs(target.Column - elevator.Column) + Math.Abs(target.Row - elevator.Row); //ikinci kattaki yolun uzunluğu (asansörlü yol)
                var elevatorTotalPath  = elevatorFirstPath + elevatorSecondPath;                                          //asansörlü yolun toplam uzuluğu
                if (elevatorTotalPath <= stairsTotalPath)                                                                 //yol eşitsede asansörü kullansın yorulmasın =)
                {
                    firstPath  = new Point(elevator.Column - Column, elevator.Row - Row);
                    secondPath = new Point(target.Column - elevator.Column, target.Row - elevator.Row);
                }
                else
                {
                    firstPath  = new Point(stairs.Column - Column, stairs.Row - Row);
                    secondPath = new Point(target.Column - stairs.Column, target.Row - stairs.Row);
                }
                return(new Tuple <Point, Point>(firstPath, secondPath));
            }
            else
            {
                firstPath  = new Point(target.Column - Column, target.Row - Row);
                secondPath = new Point();
                return(new Tuple <Point, Point>(firstPath, secondPath));
            }
        }
コード例 #39
0
    /// <summary>
    /// Sets a station back to its old stats
    /// </summary>
    /// <param name="stationToSetBack"></param>
    public void SetBack(Station stationToSetBack)
    {
        foreach (Worker worker in stationToSetBack.WorkerList)
        {
            worker.TimeForCompletion = mCurrentStats.CurrentWorkerSpeed;
        }
        stationToSetBack.CostToUpgradeMultiplier = mCurrentStats.CurrentUpgradeMultiplier;

        if (stationToSetBack is Mine)
        {
            Mine mine = (Mine)stationToSetBack;
            mine.GoldPerMiner = mCurrentStats.CurrentEfficiency;
        }
        else if (stationToSetBack is Elevator)
        {
            Elevator elevator = (Elevator)stationToSetBack;
            elevator.Limit = mCurrentStats.CurrentEfficiency;
        }
        else if (stationToSetBack is Transport)
        {
            Transport transport = (Transport)stationToSetBack;
            transport.Limit = mCurrentStats.CurrentEfficiency;
        }
    }
コード例 #40
0
ファイル: Program.cs プロジェクト: Dandarache/Academy.NetCore
        static void Main()
        {
            List <Elevator> elevators = LoadElevatorsFromFile();

            while (true)
            {
                DisplayHeader();
                DisplayStatus(elevators);
                Elevator             elevator  = AskWhichElevatorToMove(elevators);
                Direction            direction = AskForDirection();
                ElevatorMoveResponse response;

                if (direction == Direction.Up)
                {
                    response = elevator.TryGoUp();
                }
                else
                {
                    response = elevator.TryGoDown();
                }

                DisplayResponse(response, elevator, direction);
            }
        }
コード例 #41
0
ファイル: Teleport.cs プロジェクト: Kritz7/KIT208-ASS2
 // Use this for initialization
 void Start()
 {
     attachedElevator = transform.root.GetComponent<Elevator>();
 }
コード例 #42
0
 public override void UpdateState(Elevator gameObject)
 {
 }
コード例 #43
0
 void SpawnElevator()
 {
     if (elevator != null) return;
     GameObject go = template.Spawn(new OnSpawnElevatorEvent(template, 0));
     elevator = go.GetComponent<Elevator>();
 }
コード例 #44
0
 void Awake()
 {
     elevator = GameObject.FindObjectOfType<Elevator>();
 }
コード例 #45
0
ファイル: PlayerController.cs プロジェクト: PhilipBui/Unity3D
 // Use this for initialization
 void Start()
 {
     controller = GetComponent<CharacterController>();
     audios = GetComponents<AudioSource>();
     coinPickup = audios[0];
     playerHurt = audios[1];
     playerJump = audios[2];
     playerDeath = audios[3];
     healthText = GameObject.Find("HealthDisplay").GetComponent<Text>();
     healthText.text = "Health : " + health;
     scoreText = GameObject.Find("ScoreDisplay").GetComponent<Text>();
     scoreText.text = "Score : " + score + " / 14";
     timerText = GameObject.Find("TimerDisplay").GetComponent<Text>();
     startTime = Time.time;
     deathScreen = GameObject.Find("DeathScreen");
     deathScreen.SetActive(false);
     pauseScreen = GameObject.Find("PauseScreen");
     pauseScreen.SetActive(false);
     victoryScreen = GameObject.Find("VictoryScreen");
     victoryScreen.SetActive(false);
     alarm = GameObject.FindWithTag("Alarm");
     elevator = GameObject.FindWithTag("Elevator").GetComponent<Elevator>();
 }
コード例 #46
0
ファイル: BuildingTest.cs プロジェクト: evilz/Elevator
 public void Setup()
 {
     _elevator = new Elevator();
     _building = new Building(_elevator);
 }
コード例 #47
0
    // Use this for initialization
    void Start()
    {
        // initial sensor area
        sensorArea = new List<Elevator_Object>();

        // find elevator in parent
        if (!elevator)
        {
            elevator = gameObject.GetComponentInParent<Elevator>();
        }

        // get the next level
        Next();
    }
コード例 #48
0
 void Start()
 {
     elevator = elevator.GetComponent<Elevator>();
 }
コード例 #49
0
        private static List<IGameObject> CreateNewGameObjects(List<string[]> objectList, Game1 game)
        {
            List<IGameObject> gameObjects = new List<IGameObject>();
            Vector2 location = new Vector2(0,0);
            
            objectList.RemoveAt(0);

            foreach(string[] line in objectList)
            {
                foreach(string objectName in line)
                {
                    IGameObject gameObject = null;
                    IGameObject objectsItem = null;

                    if (objectName.Equals("Mario"))
                        gameObject = new MarioInstance(game);
                    if (objectName.Equals("InvisiMario"))
                        gameObject = new InvisiMario(game);
                    if (objectName.Equals("PacMario"))
                        gameObject = new PacMario(game);
                    else if (objectName.Equals("Coin"))
                        gameObject = new Coin(false, game);
                    else if (objectName.Equals("PacNormCoin"))
                        gameObject = new PacMarioNormalCoin(false, game);
                    else if (objectName.Equals("PacMarioCoin"))
                        gameObject = new PacMarioCoin(false, game);
                    else if (objectName.Equals("Flower"))
                        gameObject = new Flower(false, game);
                    else if (objectName.Equals("GreenMush"))
                        gameObject = new GreenMushroom(false, game);
                    else if (objectName.Equals("RedMush"))
                        gameObject = new RedMushroom(false, game);
                    else if (objectName.Equals("Star"))
                        gameObject = new Star(false, game);
                    else if (objectName.Equals("Koopa"))
                        gameObject = new GreenKoopa(game);
                    else if (objectName.Equals("Goomba"))
                        gameObject = new Goomba(game);
                    else if (objectName.Equals("Boo1"))
                        gameObject = new Boo(game, IEnemyObjectConstants.BOO_START_LOCATIONS[0]);
                    else if (objectName.Equals("Boo2"))
                        gameObject = new Boo(game, IEnemyObjectConstants.BOO_START_LOCATIONS[1]);
                    else if (objectName.Equals("Boo3"))
                        gameObject = new Boo(game, IEnemyObjectConstants.BOO_START_LOCATIONS[2]);
                    else if (objectName.Equals("Boo4"))
                        gameObject = new Boo(game, IEnemyObjectConstants.BOO_START_LOCATIONS[3]);
                    else if (objectName.Equals("Castle"))
                        gameObject = new Castle(game);
                    else if (objectName.Equals("FlagPole"))
                        gameObject = new FlagPole(game);
                    else if (objectName.Equals("FlagPoleBarrier"))
                        gameObject = new InvisibleFlagPoleBarrier(game);
                    else if (objectName.Equals("SolidBlock"))
                        gameObject = new Block(Block.Type.SolidBlock, false, game);
                    else if (objectName.Equals("HBlockWall"))
                        gameObject = new Block(Block.Type.HorizontalBlockWall, false, game);
                    else if (objectName.Equals("VBlockWall"))
                        gameObject = new Block(Block.Type.VerticalBlockWall, false, game);
                    else if (objectName.Equals("InvisCoinBlock"))
                    {
                        objectsItem = new Coin(true, game);
                        gameObject = new Block(Block.Type.HiddenBlock, false, game);
                    }

                    else if (objectName.Equals("InvisGreenMushBlock"))
                    {
                        objectsItem = new GreenMushroom(true, game);
                        gameObject = new Block(Block.Type.HiddenBlock, false, game);
                    }
                    else if (objectName.Equals("QuestionCoinBlock"))
                    {
                        objectsItem = new Coin(true, game);
                        gameObject = new Block(Block.Type.QuestionBlock, false, game);
                    }
                    else if (objectName.Equals("BrickCoinBlock"))
                    {
                        objectsItem = new Coin(true, game);
                        gameObject = new Block(Block.Type.BrickBlock, false, game);
                    }
                    else if (objectName.Equals("QuestionRedMushBlock"))
                    {
                        objectsItem = new RedMushroom(true, game);
                        gameObject = new Block(Block.Type.QuestionBlock, false, game);
                    }
                    else if (objectName.Equals("QuestionGreenMushBlock"))
                    {
                        objectsItem = new GreenMushroom(true, game);
                        gameObject = new Block(Block.Type.QuestionBlock, false, game);
                    }
                    else if (objectName.Equals("QuestionFlowerBlock"))
                    {
                        objectsItem = new Flower(true, game);
                        gameObject = new Block(Block.Type.QuestionBlock, false, game);
                    }
                    else if (objectName.Equals("QuestionStarBlock"))
                    {
                        objectsItem = new Star(true, game);
                        gameObject = new Block(Block.Type.QuestionBlock, false, game);
                    }
                    else if (objectName.Equals("BrickStarBlock"))
                    {
                        objectsItem = new Star(true, game);
                        gameObject = new Block(Block.Type.BrickBlock, false, game);
                    }
                    else if (objectName.Equals("BrickBlock"))
                        gameObject = new Block(Block.Type.BrickBlock, false, game);
                    else if (objectName.Equals("UndergroundBrickBlock"))
                        gameObject = new Block(Block.Type.BrickBlock, true, game);
                    else if (objectName.Equals("BreakingBlock"))
                        gameObject = new Block(Block.Type.BreakingBlock, false, game);
                    else if (objectName.Equals("UndergroundBreakingBlock"))
                        gameObject = new Block(Block.Type.BreakingBlock, true, game);
                    else if (objectName.Equals("EnemyUpBlock"))
                        gameObject = new Block(Block.Type.EnemyUpBlock, true, game);
                    else if (objectName.Equals("EnemyDownBlock"))
                        gameObject = new Block(Block.Type.EnemyDownBlock, true, game);
                    else if (objectName.Equals("EnemyRightBlock"))
                        gameObject = new Block(Block.Type.EnemyRightBlock, true, game);
                    else if (objectName.Equals("EnemyLeftBlock"))
                        gameObject = new Block(Block.Type.EnemyLeftBlock, true, game);
                    else if (objectName.Equals("TeleportBlock"))
                        gameObject = new Block(Block.Type.TeleportBlock, false, game);
                    else if (objectName.Equals("Pipe"))
                        gameObject = new Pipe(game);
                    else if (objectName.Equals("DoublePipe"))
                        gameObject = new DoublePipe(game);
                    else if (objectName.Equals("TriplePipe"))
                        gameObject = new TriplePipe(game);
                    else if (objectName.Equals("SidePipe"))
                        gameObject = new SidePipe(game);
                    else if (objectName.Equals("VerticalPipe"))
                        gameObject = new VerticalPipe(game);
                    else if (objectName.StartsWith("TripleWarpPipe"))
                    {
                        string[] parsedName = objectName.Split('-');
                        float x = Int32.Parse(parsedName[1]);
                        float y = Int32.Parse(parsedName[2]);
                        gameObject = new TriplePipe(new Vector2(x, y), game);
                    }
                    else if (objectName.StartsWith("TripleGameStatePipe"))
                    {
                        string[] parsedName = objectName.Split('-');
                        IGameState gameState = createNewGameState(parsedName[1], game);
                        gameObject = new TriplePipe(gameState, game);
                    }
                    else if (objectName.StartsWith("SideWarpPipe"))
                    {
                        string[] parsedName = objectName.Split('-');
                        float x = Int32.Parse(parsedName[1]);
                        float y = Int32.Parse(parsedName[2]);
                        gameObject = new SidePipe(new Vector2(x, y), game);
                    }
                    else if (objectName.Equals("BigHill"))
                        gameObject = new BigHill(game);
                    else if (objectName.Equals("Bush"))
                        gameObject = new SingleBush(game);
                    else if (objectName.Equals("Cloud"))
                        gameObject = new SingleCloud(game);
                    else if (objectName.Equals("SmHill"))
                        gameObject = new SmallHill(game);
                    else if (objectName.Equals("TripleBush"))
                        gameObject = new TripleBush(game);
                    else if (objectName.Equals("TripleCloud"))
                        gameObject = new TripleCloud(game);
                    else if (objectName.Equals("Buckeye"))
                        gameObject = new BuckeyePlayer(game);
                    else if (objectName.Equals("Wolverine"))
                        gameObject = new WolverineEnemy(game);
                    else if (objectName.Equals("JmpWolverine"))
                        gameObject = new JumpingWolverineEnemy(game);
                    else if (objectName.Equals("WolverineChuck"))
                        gameObject = new WolverineChuck(game);
                    else if (objectName.Equals("ThwWolverine"))
                        gameObject = new ThrowingWolverineEnemy(game);
                    else if (objectName.Equals("BuckeyeGrass"))
                        gameObject = new GrassTile(game);
                    else if (objectName.Equals("BuckeyeGround"))
                        gameObject = new GroundTile(game);
                    else if (objectName.Equals("BuckeyeStone"))
                        gameObject = new StoneTile(game);
                    else if (objectName.Equals("StoneWall"))
                        gameObject = new GiantVerticalStoneWall(game);
                    else if (objectName.Equals("Paddle"))
                        gameObject = new Paddle(game);
                    else if (objectName.Equals("PaddleBall"))
                        gameObject = new PaddleBall(game);
                    else if (objectName.Equals("ElevatorU"))
                        gameObject = new Elevator(true, game);
                    else if (objectName.Equals("ElevatorD"))
                        gameObject = new Elevator(false, game);
                    else if (objectName.Equals("Endblock"))
                        gameObject = new Endblock(game);
                    

                    if (objectsItem != null)
                    {
                        objectsItem.VectorCoordinates = location + new Vector2(0, -objectsItem.Sprite.SpriteDimensions.Y);
                        gameObjects.Add(objectsItem);
                    }

                    if(gameObject != null){

                        gameObject.VectorCoordinates = location + new Vector2(0, -gameObject.Sprite.SpriteDimensions.Y + 16);

                        if (gameObject is IFlagPole)
                            gameObject.VectorCoordinates += new Vector2(0,16);

                        gameObjects.Add(gameObject);
                    }
                    
                    location.X += 16;
                }

                location.Y += 16;
                location.X = 0;
            }

            for(int index = 0; index < gameObjects.Count; index++)
            {
                if (gameObjects[index] is IMario)
                {
                    IGameObject mario = gameObjects[index];
                    gameObjects.RemoveAt(index);
                    gameObjects.Add(mario);
                    break;
                }
            }

            for (int index = 0; index < gameObjects.Count; index++)
            {
                if (gameObjects[index] is IScenery)
                {
                    IGameObject scenery = gameObjects[index];
                    gameObjects.RemoveAt(index);
                    gameObjects.Insert(0, scenery);
                }
            }

            for (int index = gameObjects.Count - 1; index > 0; index--)
            {
                if (gameObjects[index] is IPipe)
                {
                    IGameObject pipe = gameObjects[index];
                    gameObjects.RemoveAt(index);
                    gameObjects.Add(pipe);
                }
            }

                return gameObjects;
        }
コード例 #50
0
ファイル: ElevatorEvent.cs プロジェクト: hww/UnityTFSM
 public ElevatorEvent(Elevator elevator, EName name) : base(elevator)
 {
     this.name = name;
 }
コード例 #51
0
ファイル: ElevatorEvent.cs プロジェクト: hww/UnityTFSM
	public ElevatorEvent(Elevator elevator, EName name, int level) : this(elevator, name)
    {
        this.level = level;
    }
コード例 #52
0
 // Use this for initialization
 void OnEnable()
 {
     el = (Elevator)target;
 }