GetLatestPlayer1Positions() public method

public GetLatestPlayer1Positions ( int frames ) : List
frames int
return List
Beispiel #1
0
        public void OnNewFrameDataReady(Object sender, EventArgs args)
        {
            DataTransferEventArgs arg = (DataTransferEventArgs)args;
            int frame = (int)arg.m_data;

            if (m_player1LatestPositions == null)                                                          //first time initial
            {
                m_player1LatestPositions = m_dataWarehouse.GetLatestPlayer1Positions(m_inspectWindowSize); //TODO: specify accurate time
            }
            else //set data
            {
                //initialize data
                if (m_player1LatestPositions.Count < m_inspectWindowSize)
                {
                    m_player1LatestPositions.Add(m_dataWarehouse.m_frameData[frame].m_Player1.m_position);
                    return;
                }
                else
                {
                    m_player1LatestPositions.RemoveAt(0);
                    m_player1LatestPositions.Add(m_dataWarehouse.m_frameData[frame].m_Player1.m_position);
                }
                //make decision
                if (isPlayer1MovesInLatestFrame() && !m_isMoving)//split start point
                {
                    Console.WriteLine("moving");
                    m_isMoving   = true;
                    m_startFrame = frame;
                }
                if (!isPlayer1MovesInLatestFrame() && m_isMoving)//stop moving
                {
                    m_isMoving = false;
                    //NOTIFY dataWarehouse
                    m_endFrame = frame;
                    m_dataWarehouse.SetSegmentationData(m_startFrame, m_endFrame, 1.0f);

                    Console.WriteLine("stop");
                }
            }
        }