static void Main(string[] args)
 {
     Console.Title = "水果的销售";
     FruitAgent proxy = new FruitAgent();                    //创建代理商类
     int money = 1234;
     int fruit = proxy.Sell(ref money);                      //代理商向消费者卖水果
     Console.WriteLine("消费者花费{0}元购买{1}千克水果!", 1234 - money, fruit);
     Console.Read();
 }
Ejemplo n.º 2
0
 static void Main(string[] args)
 {
     Console.Title = "水果的销售";
     FruitAgent proxy = new FruitAgent();                    //创建代理商类
     int money = 1234;
     int fruit = proxy.Sell(ref money);                      //代理商向消费者卖水果
     Console.WriteLine("消费者花费{0}元购买{1}千克水果!", 1234 - money, fruit);
     Console.Read();
 }
    protected override void Update()
    {
        base.Update();

        var direction = Vector2.zero;

        if (IsPlayer)
        {
            direction = GetDirectionalInput();
        }
        else if (Time.time >= _nextUpdate)
        {
            FruitAgent target = null;
            if (!(GameController.Instance.ActiveAgent is WormAgent))
            {
                var minDist = float.MaxValue;
                for (var i = 0; i < FruitAgent.All.Count; i++)
                {
                    var t = FruitAgent.All[i];
                    if (!t.HasFallen)
                    {
                        continue;
                    }

                    var dst = Vector2.Distance(t.transform.position, transform.position);
                    if (dst < minDist && dst < _aiDistance)
                    {
                        target  = t;
                        minDist = dst;
                    }
                }
            }

            if (target == null)
            {
                if (Mathf.Abs(_lastDir.x) > 0f || Mathf.Approximately(_lastDir.sqrMagnitude, 0f))
                {
                    direction.y = Random.value > Random.value
                        ? 1f
                        : -1f;
                }
                else if (Mathf.Abs(_lastDir.y) > 0f)
                {
                    direction.x = Random.value > Random.value
                        ? 1f
                        : -1f;
                }
            }
            else
            {
                direction.y = transform.position.y < 0f && Mathf.Approximately(Mathf.Abs(_lastDir.y), 0f)
                    ? 1f
                    : 0f;

                if (transform.position.y >= 0f || Mathf.Approximately(Mathf.Abs(_lastDir.x), 0f))
                {
                    direction.x = Mathf.Sign(target.transform.position.x - transform.position.x);
                }
            }

            _nextUpdate = Time.time + _updateSpeed;
        }
        if (Mathf.Abs(direction.x) > 0f && Mathf.Abs(direction.y) > 0f)
        {
            // Not sure how this happens, dont have time to fix it!
            Debug.LogError("INVALID WORM MOVEMENT");
            Kill(this);
        }
        MoveInDirection(direction);
    }