Ejemplo n.º 1
0
        /** 更新。
         */
        public void Main(bool a_is_focus)
        {
            //is_focus
            this.is_focus = a_is_focus;

            try{
                /** 更新。インプットシステム。デバイスリスト。
                 */
                this.Main_InputSystem_UpdateDeviceList();

                for (int ii = 0; ii < this.pad_status.Length; ii++)
                {
                    if (this.pad_status[ii].enable == true)
                    {
                        //デジタルボタン。更新。
                        this.Main_DigitalButton(ref this.pad_status[ii]);

                        //トリガー。更新。
                        this.Main_Trigger(ref this.pad_status[ii]);

                        //スティック。更新。
                        this.Main_Stick(ref this.pad_status[ii]);
                    }
                }

                //更新。
                for (int ii = 0; ii < this.pad_status.Length; ii++)
                {
                    if (this.pad_status[ii].enable == true)
                    {
                        //デジタルボタン。
                        this.pad_status[ii].left.Main();
                        this.pad_status[ii].right.Main();
                        this.pad_status[ii].up.Main();
                        this.pad_status[ii].down.Main();
                        this.pad_status[ii].enter.Main();
                        this.pad_status[ii].escape.Main();
                        this.pad_status[ii].sub1.Main();
                        this.pad_status[ii].sub2.Main();
                        this.pad_status[ii].left_menu.Main();
                        this.pad_status[ii].right_menu.Main();

                        //アナログスティック。
                        this.pad_status[ii].l_stick.Main();
                        this.pad_status[ii].r_stick.Main();
                        this.pad_status[ii].l_stick_button.Main();
                        this.pad_status[ii].r_stick_button.Main();

                        //トリガーボタン。
                        this.pad_status[ii].l_trigger_1.Main();
                        this.pad_status[ii].r_trigger_1.Main();
                        this.pad_status[ii].l_trigger_2.Main();
                        this.pad_status[ii].r_trigger_2.Main();

                        //モータ。
                        this.pad_status[ii].moter_low.Main(1);
                        this.pad_status[ii].moter_high.Main(1);
                    }
                }

                for (int ii = 0; ii < this.pad_status.Length; ii++)
                {
                    if (this.pad_status[ii].enable == true)
                    {
                        //モーター。更新。
                        this.Main_Moter(ref this.pad_status[ii]);
                    }
                }
            }catch (System.Exception t_exception) {
                Tool.DebugReThrow(t_exception);
            }
        }
Ejemplo n.º 2
0
        /** 更新。
         */
        public void Main(Fee.Render2D.Render2D a_render2d)
        {
            //スクリーンサイズ更新。
            {
                this.screen_w = UnityEngine.Screen.width;
                this.screen_h = UnityEngine.Screen.height;
            }

            try{
                for (int ii = 0; ii < this.list.Count; ii++)
                {
                    this.list[ii].update = false;
                }

                //タッチ。
                this.Main_Touch(a_render2d);

                //近距離追跡。
                for (int ii = 0; ii < this.device_item_list_count; ii++)
                {
                    if (this.device_item_list[ii].link == false)
                    {
                        int t_index = this.SearchListItemFromNoUpdate(this.device_item_list[ii].x, this.device_item_list[ii].y, 100);
                        if (t_index >= 0)
                        {
                            //追跡。
                            this.device_item_list[ii].link = true;

                            //設定。
                            this.list[t_index].Set(this.device_item_list[ii].x, this.device_item_list[ii].y, this.device_item_list[ii].phasetype);
                            this.list[t_index].SetRawID(this.device_item_list[ii].touch_raw_id);

                            this.list[t_index].update       = true;
                            this.list[t_index].fadeoutframe = 0;
                        }
                    }
                }

                for (int ii = 0; ii < this.device_item_list_count; ii++)
                {
                    if (this.device_item_list[ii].link == false)
                    {
                        int t_index = this.SearchListItemFromNoUpdate(this.device_item_list[ii].x, this.device_item_list[ii].y, -1);
                        if (t_index >= 0)
                        {
                            //遠距離追跡。
                            this.device_item_list[ii].link = true;

                            //設定。
                            this.list[t_index].Set(this.device_item_list[ii].x, this.device_item_list[ii].y, this.device_item_list[ii].phasetype);
                            this.list[t_index].SetRawID(this.device_item_list[ii].touch_raw_id);

                            this.list[t_index].update       = true;
                            this.list[t_index].fadeoutframe = 0;
                        }
                        else
                        {
                            Touch_Phase t_touch_phase = new Touch_Phase();
                            this.list.Add(t_touch_phase);
                            t_index = this.list.Count - 1;
                            {
                                //新規。
                                this.device_item_list[ii].link = true;

                                //設定。
                                this.list[t_index].Set(this.device_item_list[ii].x, this.device_item_list[ii].y, this.device_item_list[ii].phasetype);
                                this.list[t_index].SetRawID(this.device_item_list[ii].touch_raw_id);

                                this.list[t_index].update       = true;
                                this.list[t_index].fadeoutframe = 0;
                            }
                            if (this.callback != null)
                            {
                                this.callback(t_touch_phase);
                            }
                        }
                    }
                }

                {
                    int ii = 0;
                    while (ii < this.list.Count)
                    {
                        if (this.list[ii].update == false)
                        {
                            this.list[ii].fadeoutframe++;
                            if (this.list[ii].fadeoutframe >= 10)
                            {
                                //タイムアウト削除。
                                this.list.RemoveAt(ii);
                            }
                            else
                            {
                                this.list[ii].update    = true;
                                this.list[ii].phasetype = Touch_Phase.PhaseType.FadeOut;
                            }
                        }
                        else
                        {
                            ii++;
                        }
                    }
                }

                //更新。
                for (int ii = 0; ii < this.list.Count; ii++)
                {
                    this.list[ii].Main();
                }
            }catch (System.Exception t_exception) {
                Tool.DebugReThrow(t_exception);
            }
        }