コード例 #1
0
            public override void OnUserUpdate(float fElapsedTime)
            {
                gCanvas.Clear(Color.Black);
                if (Input.KeyPressed(MouseButtons.Left))
                {
                    maxspeed *= 3f;
                }
                if (Input.KeyReleased(MouseButtons.Left))
                {
                    maxspeed /= 3f;
                }
                Vector desire   = (Input.MousePos() - pos).Normalize();
                Vector steering = desire - vel;

                vel += steering.Limit(maxsteer);
                float distance = (Input.MousePos() - pos).Magnitude();
                float speed    = Utility.Map(distance, 1f, 100f, 0f, maxspeed);

                pos += vel * speed * fElapsedTime;
                float  angle       = vel.AngleFromVector();
                Bitmap pspriteship = Utility.RotateImage(spriteship, Utility.Degrees(angle));

                gCanvas.DrawImage(pspriteship, pos.x - pspriteship.Width * 0.5f, pos.y - pspriteship.Height * 0.5f);
                pspriteship.Dispose();
                if (speed > 10f && Focused())
                {
                    enginesound.PlayLoop();
                }
                else
                {
                    enginesound.Stop();
                }
            }