コード例 #1
0
        //public virtual void Run()
        //{
        //    //while (thread == ILOG.J2CsMapping.Threading.ThreadWrapper.CurrentThread)
        //    {
        //        //Repaint();
        //        try
        //        {
        //            //Sleep(tp.ThreadPeriodMsec());
        //        }
        //        catch (ThreadInterruptedException localInterruptedException)
        //        {
        //        }
        //    }
        //}

        //public override void Start()
        //{
        //    if (thread == null)
        //    {
        //        thread = new ThreadWrapper(this);
        //        thread.Start();
        //    }
        //}

        //public override void Stop()
        //{
        //    thread = null;
        //}

        public void Update(Graphics g)
        {
            if (simIF.changePlane == 1)
            {
                //g.DrawString("Now Loading...", 200, 250);
                System.Console.Out.WriteLine("################# 飛行機変更 ############################################");
                System.Console.Out.WriteLine("飛行機番号=" + configMenu.selectedAirPlane);
                System.Console.Out.WriteLine("CODEBASE=" + codeBase);
                System.Console.Out.WriteLine("PATH=" + configMenu.apl.GetPath(configMenu.selectedAirPlane));
                simIF.changePlane = 0;
                ap = new AirPlane(codeBase, configMenu.apl.GetPath(configMenu.selectedAirPlane));
                ap.Set_pMotionLand();
                InitPadlockList();
            }

            if (simIF.changePSetting == 1)
            {
                configMenu.SetPSetting(tp);
                simIF.changePSetting = 0;
            }

            if (simIF.pause_sw == 0)
            {
                simIF.counter -= 1;
                if (simIF.counter <= 0)
                {
                    for (int i = 0; i < tp.t_disp; i++)
                    {
                        ap.Update(tp.dt);
                        if (ap.crash_point != -1)
                        {
                            Jp.Maker1.Util.Gui.Caption.SetCaption("POINT " + ap.crash_point + " TOUCH THE GROUND.", 4.0D);
                        }

                        tp.simT        += tp.dt;
                        tp.rec_counter += 1;
                        if (tp.rec_counter >= tp.t_record)
                        {
                            recorder.Record(tp.simT, tp.dt, ap);
                            tp.rec_counter = 0;
                        }
                    }
                    if (simIF.slow_mode == 1)
                    {
                        simIF.counter = simIF.slow_count;
                    }
                    else
                    {
                        simIF.counter = 0;
                    }
                }
            }

            if (simIF.mode == 0)
            {
                gd.CreateImage(myGC, ap, simIF, tp.dt);
                //myGC.SetColor(Java.Awt.Color.black);
                myGC.DrawRectangle(Pens.Black, (int)sX0, (int)sY0, (int)(sX1 - sX0 - 1.0D), (int)(sY1 - sY0 - 1.0D));
            }
            else if (simIF.mode == 1)
            {
                if (simIF.locusMake == 1)
                {
                    //g.SetColor(Java.Awt.Color.white);
                    //g.FillRect((int)sX0, (int)sY0, (int)(sX1 - sX0 + 1.0D), (int)(sY1 - sY0 + 1.0D));
                    //g.SetColor(Java.Awt.Color.black);
                    //g.DrawString("Now Drawing...", 280, 150);
                    locusVierer     = new LocusViewer(sX0, sY0, sX1, sY1, ap, recorder);
                    simIF.locusMake = 0;
                }
                locusVierer.UpdateDispParam(simIF, tp.ThreadPeriod());
                if (simIF.locusImageMake == 1)
                {
                    //g.SetColor(Java.Awt.Color.white);
                    //g.FillRect((int)sX0, (int)sY0, (int)(sX1 - sX0 + 1.0D), (int)(sY1 - sY0 + 1.0D));
                    //g.SetColor(Java.Awt.Color.black);
                    //g.DrawString("Now Drawing...", 280, 150);
                    locusVierer.DrawLocus(locusGC, 1);
                    // myGC.DrawImage(LocusImage, 0, 0, this);
                    simIF.locusImageMake = 0;
                }
                //myGC.DrawImage(LocusImage, 0, 0, this);
                if (simIF.Check_locus_action_sw() > 0)
                {
                    // myGC.DrawImage(LocusImage, 0, 0, this);
                    locusVierer.DrawLocus(myGC, 0);
                }
                locusVierer.DrawData(myGC, simIF);
                // myGC.SetColor(Java.Awt.Color.black);
                //myGC.DrawRect((int)sX0, (int)sY0, (int)(sX1 - sX0 - 1.0D), (int)(sY1 - sY0 - 1.0D));
            }
            else if (simIF.mode == 2)
            {
                configMenu.Draw(myGC, "Ver.1.1 2003.11.04");
            }

            tp.tsim_dt += tp.ThreadPeriod();
            long t_end = (DateTime.Now.Ticks / 10000);

            if (simIF.pause_sw == 0)
            {
                //myGC.SetColor(gd.informationColor);
                myGC.DrawString("ΔT:" + DispFormat.DoubleFormat(tp.dt * 1000.0D, 3, 0), gd.stdFont, gd.interfaceColorBrush, 2, 11);
                //myGC.DrawString("T:" + Jp.Maker1.Sim.Tools.Tool.TimeStr3(tp.simT), 2, 22);
                //myGC.DrawString("T-ΣΔT:" + Jp.Maker1.Util.DispFormat.DoubleFormat((t_end - tp.tStart) / 1000.0D - tp.tsim_dt, 3, 3), 2, 33);
                //myGC.DrawString("TGT.FR:" + Jp.Maker1.Util.DispFormat.DoubleFormat(1.0D / tp.ThreadPeriod(), 3, 1), 2, 44);
            }

            Jp.Maker1.Util.Gui.Caption.Draw(myGC);
            Jp.Maker1.Util.Gui.Caption.Update(tp.ThreadPeriod());

            //g.DrawImage(doubleBuffer, 0, 0, this);

            if (simIF.record_output_sw == 1)
            {
                simIF.record_output_sw = 0;
                recorder.Print("Ver.1.1 2003.11.04");
            }
        }
コード例 #2
0
        public void KeyReleased(Keys keyCode, AirPlane ap, SimulatorInterface simIF)
        {
            if (keyCode == simIF.key_ctrl)
            {
                simIF.ctrl_sw = 0;
            }

            if ((simIF.mode == 0) && (simIF.pause_sw == 0))
            {
                if ((keyCode == ap.cif.key_rudder_left) ||
                    (keyCode == ap.cif.key_rudder_right))
                {
                    ap.cif.rudder_sw = 0;
                }

                if ((keyCode == ap.cif.key_throttle_up) || (keyCode == ap.cif.key_throttle_down))
                {
                    ap.cif.throttle_sw = 0;
                }

                if ((keyCode == ap.cif.key_mixture_lean) || (keyCode == ap.cif.key_mixture_rich))
                {
                    ap.cif.mixture_sw = 0;
                }

                if ((keyCode == ap.cif.key_prop_pitch_high) || (keyCode == ap.cif.key_prop_pitch_low))
                {
                    ap.cif.prop_pitch_sw = 0;
                }

                if (keyCode == ap.cif.key_brake_right)
                {
                    ap.cif.brakeRight_sw = -1;
                }
                if (keyCode == ap.cif.key_brake_left)
                {
                    ap.cif.brakeLeft_sw = -1;
                }

                if ((keyCode == ap.cif.key_flap_down) || (keyCode == ap.cif.key_flap_up))
                {
                    ap.cif.flap_sw = 0;
                }

                if ((keyCode == ap.cif.key_front) || (keyCode == ap.cif.key_front_left) || (keyCode == ap.cif.key_left) || (keyCode == ap.cif.key_rear_left) || (keyCode == ap.cif.key_rear) || (keyCode == ap.cif.key_rear_right) || (keyCode == ap.cif.key_right) || (keyCode == ap.cif.key_front_right))
                {
                    ap.cif.view_direction = 0;
                }
                if (keyCode == ap.cif.key_upper)
                {
                    ap.cif.view_upper = 0;
                }
            }

            if (simIF.mode == 1)
            {
                for (int i = 0; i < simIF.key_locus_action.Length; i++)
                {
                    if (keyCode == simIF.key_locus_action[i])
                    {
                        simIF.locus_action_sw[i] = 0;
                        if (simIF.Check_locus_action_sw() == 0)
                        {
                            simIF.locusImageMake = 1;
                        }
                        else
                        {
                            simIF.locusImageMake = 0;
                        }
                    }
                }

                if (keyCode == simIF.key_data_foword)
                {
                    simIF.data_foword_sw = 0;
                }
                if (keyCode == simIF.key_data_back)
                {
                    simIF.data_back_sw = 0;
                }
            }
        }