示例#1
0
            protected override void DoUpdate(double elapsed)
            {
                var motionInterval = 18.0 / Neko.Speed;

                if (motionInterval <= TotalElapsed)
                {
                    if (Neko.GetCollisionRect().Contains(Neko.TrackingTargetPos.Value))
                    {
                        _context.SetState(_context.DefaultState);
                        return;
                    }

                    var angle = MathUtil.RadianToDegree(Math.Atan2(-(Neko.TrackingTargetPos.Value.Y - Neko.Pos.Y), Neko.TrackingTargetPos.Value.X - Neko.Pos.X));
                    angle = (angle + 360) % 360;

                    var no = (int)((angle + 22.5) % 360 / 45.0);
                    Neko.SetImage($"move{no}_{_motion}.png");
                    _motion = (_motion + 1) % 2;

                    // 移動
                    Neko.SetPos(
                        new Point(
                            Neko.Pos.X + Math.Cos(MathUtil.DegreeToRadian(angle)) * TotalElapsed * Neko.Speed,
                            Neko.Pos.Y - Math.Sin(MathUtil.DegreeToRadian(angle)) * TotalElapsed * Neko.Speed));

                    TotalElapsed -= motionInterval;
                }
            }
示例#2
0
            protected override void DoUpdate(double elapsed)
            {
                const double MotionInterval = 0.5;

                if (MotionInterval <= TotalElapsed)
                {
                    _motion = (_motion + 1) % 2;
                    Neko.SetImage($"sleep_{_motion}.png");
                    TotalElapsed -= MotionInterval;
                }
            }
示例#3
0
            protected override void DoUpdate(double elapsed)
            {
                const double MotionInterval = 0.12;

                if (MotionInterval <= TotalElapsed)
                {
                    Neko.SetImage($"foot_{_motion}.png");
                    _motion = (_motion + 1) % 2;

                    TotalElapsed -= MotionInterval;
                    _count++;
                }

                if (12 < _count)
                {
                    _context.SetState(_context.DefaultState);
                }
            }
示例#4
0
 protected override void DoReset()
 {
     Neko.SetImage("aware.png");
 }
示例#5
0
            protected override void DoReset()
            {
                _changeInterval = MathUtil.Rand(1, 4);

                Neko.SetImage("default.png");
            }
示例#6
0
 protected override void DoReset()
 {
     Neko.SetImage("sleep_0.png");
 }
示例#7
0
 protected override void DoReset()
 {
     Neko.SetImage("yawn.png");
 }
示例#8
0
 protected override void DoReset()
 {
     Neko.SetImage("default.png");
 }