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); }