Exemplo n.º 1
0
        public LogListItem(LogView logView)
        {
            InitializeComponent();
            m_logView             = logView;
            logView.m_logListItem = this;

            ListViewItem nameLvi = new ListViewItem(m_logView.m_name);

            nameLvi.ToolTipText = m_logView.m_baseLogData.Name;
            nameLvi.Checked     = true;
            nameListView.Items.Add(nameLvi);

            startFrameNumericUpDown.ValueChanged += new EventHandler(startFrameNumericUpDown_ValueChanged);
            endFrameNumericUpDown.ValueChanged   += new EventHandler(endFrameNumericUpDown_ValueChanged);

            if (m_logView.m_logData is SocketLogData)
            {
                m_trackingButtonToolTip = new ToolTip();
                m_trackingState         = ETrackingState.Smart;
                UpdateTracking();
            }
            else
            {
                trackingButton.Hide();
            }

            SetFrameNumericUpDowns();
            UpdateContents();

            Invalidated += new InvalidateEventHandler(LogListItem_Invalidated);
        }
Exemplo n.º 2
0
        void SetTrackingState(ETrackingState ts)
        {
            m_trackingState = ts;

            if (!trackingButton.Visible)
            {
                return;
            }

            switch (m_trackingState)
            {
            case ETrackingState.Off:
                trackingButton.BackColor = SystemColors.Control;
                trackingButton.ForeColor = SystemColors.ControlText;
                SetTrackingButtonToolTip("off");
                break;

            case ETrackingState.Smart:
                trackingButton.BackColor = Color.CornflowerBlue;
                trackingButton.ForeColor = Color.White;
                SetTrackingButtonToolTip("smart");
                break;

            case ETrackingState.On:
                trackingButton.BackColor = Color.LightGreen;
                trackingButton.ForeColor = SystemColors.ControlText;
                SetTrackingButtonToolTip("on");
                break;
            }
        }
Exemplo n.º 3
0
    //Get the nearest or tracked player distance and change tracking state if necessary
    void ProcessMinimalDistance(float minDistance, CPlayer nearestPlayer)
    {
        if(minDistance > m_exitSoundRange) //Out of sight
        {
            if(m_trackingState != ETrackingState.NotTracking)
            {
                CSoundEngine.postEvent("TourelleZoneOff", gameObject);
            }
            m_trackedPlayer = null;
            m_trackingState = ETrackingState.NotTracking;
        }
        else if(minDistance > m_enterSoundRange) //Player in outward zone
        {
            //We don't do anything here...
        }
        else if(minDistance > m_range) //Player in inward zone
        {
            StartTracking(nearestPlayer);

            m_trackingState = ETrackingState.PlayerInTrackingZone;
        }
        else //Player in firing range
        {
            StartTracking(nearestPlayer);

            m_trackingState = ETrackingState.PlayerInFiringZone;
        }
    }
Exemplo n.º 4
0
 void IncrementTrackingState()
 {
     m_trackingState += 1;
     if (m_trackingState >= ETrackingState.Num)
     {
         m_trackingState = ETrackingState.Off;
     }
 }
Exemplo n.º 5
0
 internal extern static Boolean PXCMTracker_IsTracking(ETrackingState state);
Exemplo n.º 6
0
 /// Returns TRUE if the current state is actively tracking (valid pose information is available)
 public static Boolean IsTracking(ETrackingState state)
 {
     return PXCMTracker_IsTracking(state);
 }
Exemplo n.º 7
0
 /// Returns TRUE if the current state is actively tracking (valid pose information is available)
 public static Boolean IsTracking(ETrackingState state)
 {
     return(PXCMTracker_IsTracking(state));
 }
Exemplo n.º 8
0
 internal extern static Boolean PXCMTracker_IsTracking(ETrackingState state);
Exemplo n.º 9
0
    // Update is called once per frame
    void Update()
    {
        if(m_trackingState != ETrackingState.NotTracking) {
            Vector2 diff = m_trackedPlayer.transform.position - transform.position;

            float destAngle = Mathf.Rad2Deg * Mathf.Atan2(diff.y, diff.x) + 180;
            float sourceAngle = transform.rotation.eulerAngles.z;

            double crossProductSign = Vector3.Cross(transform.right * -1 /*"forward" of the object"*/, diff).z;

            float dist = Mathf.Abs(destAngle - sourceAngle);

            if((m_angularSpeed / dist) > m_threshold) {
                    m_angularSpeed = m_threshold * dist;
            } else
                    m_angularSpeed += m_accelerationFactor;

            float rotationAngle = Mathf.Min(m_angularSpeedMax, Mathf.Min(m_angularSpeed, dist));

            m_angularSpeed = rotationAngle;

            if(crossProductSign < 0)
                    rotationAngle *= -1;

            //Debug.Log(Mathf.Abs(destAngle- sourceAngle));

            //angle *= angleDiff>180 ? -1 : 1;

            //angle += transform.rotation.eulerAngles.z;

            transform.rotation = Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + rotationAngle);

            CSoundEngine.setRTPC("Engine_Speed", m_angularSpeed / m_angularSpeedMax, gameObject);
        }

        if(m_trackingState == ETrackingState.PlayerInFiringZone && m_angularSpeed < m_firingWindows)
        {
            this.GetComponent<CLanceur>().enabled = true;
        }
        else
        {
            this.GetComponent<CLanceur>().enabled = false;
        }

        //Update tracking info
        if(m_trackingState == ETrackingState.NotTracking){
            DetectPlayer();
        }
        else { //Check if the player is still in range
            float dist = (m_trackedPlayer.transform.position - transform.position).magnitude;
            if(dist > m_exitSoundRange)
            {
                DetectPlayer();
            }
            else if(dist > m_range)
            {
                m_trackingState = ETrackingState.PlayerInTrackingZone;
            }
            else
            {
                m_trackingState = ETrackingState.PlayerInFiringZone;
            }
        }
    }