diff options
Diffstat (limited to 'marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs')
-rw-r--r-- | marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs | 45 |
1 files changed, 33 insertions, 12 deletions
diff --git a/marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs b/marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs index 388bfef..3df5e4b 100644 --- a/marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs +++ b/marching/Assets/Scripts/Unit/Enemies/SpiritScript.cs @@ -1,3 +1,4 @@ +using mh; using MH; using System.Collections; using System.Collections.Generic; @@ -9,18 +10,38 @@ public class SpiritScript : UnitBase public Item_Coin coinPrefab; - //protected override void Update() - //{ - // base.Update(); - // //UnitBase hero = UnitManager.hero; - // //Vector2 pos = transform.position; - // //Vector2 heroPos = hero.transform.position; - // //Vector2 dir = (heroPos - pos).normalized; - // //pos += dir * Time.deltaTime * speed; - // //this.GetComponent<SpriteRenderer>().flipX = dir.x < 0; - - // //transform.position = pos; - //} + public int count = 0; + + private FastCircleCollider collider; + + private static List<IQuadTreeObject> collisions = new List<IQuadTreeObject>(); + + protected override void Awake() + { + base.Awake(); + collider = GetComponent<FastCircleCollider>(); + } + + protected override void Update() + { + base.Update(); + UnitBase hero = UnitManager.hero; + Vector2 pos = transform.position; + Vector2 heroPos = hero.transform.position; + Vector2 dir = (heroPos - pos).normalized; + pos += dir * Time.deltaTime * speed; + this.GetComponent<SpriteRenderer>().flipX = dir.x < 0; + + collisions.Clear(); + if (TestQuadtree.quadtree.Retrieve(ref collisions, collider)) + { + count = collisions.Count; + } + else + { + transform.position = pos; + } + } public void Die() { |