iTween的使用 :战棋移动代码

  1 using UnityEngine;
  2 using System.Collections;
  3 
  4 public class course2 : MonoBehaviour {
  5 
  6     public int size = 9;
  7     public GameObject tileCube;
  8     GameObject preTile;
  9     GameObject ballTile;
 10     // Use this for initialization
 11     void Start () {
 12 
 13         GreatGrid();
 14 
 15     }
 16     /// <summary>
 17     /// 创建底层方块
 18     /// </summary>
 19     void GreatGrid()
 20     {
 21         for (int i = 0; i < size; i++)
 22         {
 23             for (int j = 0; j < size; j++)
 24             {
 25                 GameObject t= (GameObject)Instantiate(tileCube,new Vector3(i,0,j),Quaternion.identity);
 26                 if ((i+j)%2==0)
 27                 {
 28                     iTween.ColorTo(t,Color.black,0);
 29                 }
 30             }
 31         }
 32 
 33 
 34     }
 35     /// <summary>
 36     /// 移动起来方块
 37     /// </summary>
 38     /// <param name="obj"></param>
 39     void MoveTileUp(GameObject obj)
 40     {
 41         if (preTile != obj && preTile != null)
 42         {
 43             iTween.MoveTo(preTile,new Vector3(preTile.transform.position.x,0,preTile.transform.position.z),1);
 44             if ((preTile.transform.position.x+preTile.transform.position.z)%2 == 0)
 45             {
 46                 iTween.ColorTo(preTile, Color.black,0.5f);
 47             }else
 48             {
 49                 iTween.ColorTo(preTile, Color.white, 0.5f);
 50             }
 51             
 52         }
 53         if (obj.transform.position.y == 0)
 54         {
 55          
 56             iTween.ColorTo(obj,Color.green,.5f);
 57             iTween.MoveTo(obj,new Vector3(obj.transform.position.x,0.5f,obj.transform.position.z),0.5f);
 58             preTile = obj;
 59         }
 60 
 61     }
 62 
 63     public GameObject ball;
 64     Vector3[] waypoints= new Vector3[2];
 65     int pointi;
 66 
 67 
 68 
 69     //回调移动 sendmassage 回调到当前对象上要
 70     void MoveToPoint()
 71     {
 72         if (pointi<2)
 73         {
 74             iTween.MoveTo(ball, iTween.Hash("position", waypoints[pointi], "speed", 10f, "easetype", "linear", "oncomplete", "MoveToPoint", "oncompletetarget", this.gameObject));
 75             pointi++;
 76         }
 77     
 78     }
 79     void hehe()
 80     {
 81         print("hehehehehehehehe");
 82     }
 83 
 84 
 85     // Update is called once per frame
 86     void Update () {
 87         Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
 88         RaycastHit hit;
 89 
 90         if (Physics.Raycast(ray,out hit))
 91         {
 92             if (ballTile!=null)//小球所在的tile
 93             {
 94                 iTween.MoveTo(ballTile.transform.gameObject,new Vector3(ballTile.transform.position.x,0,ballTile.transform.position.z),.5f);
 95                 iTween.ColorTo(ballTile.transform.gameObject,Color.red,0.5f);
 96             }
 97 
 98             if (hit.transform.tag == "tile")
 99             {
100                 print(hit.transform.position);
101                 MoveTileUp(hit.transform.gameObject);
102 
103                 if (Input.GetMouseButtonDown(0))
104                 {
105                     if (ballTile != null)
106                     {
107                         if ((ballTile.transform.position.x + ballTile.transform.position.z) % 2 == 0)
108                         {
109                             iTween.ColorTo(ballTile, Color.black, 0.5f);
110                         }
111                         else
112                         {
113                             iTween.ColorTo(ballTile, Color.white, 0.5f);
114                         }  
115                     }
116                     ballTile = hit.transform.gameObject;
117 
118                     pointi = 0;
119                     waypoints[0] = new Vector3(hit.transform.position.x, 0.5f, ball.transform.position.z);
120                     waypoints[1] = new Vector3(hit.transform.position.x, 0.5f, hit.transform.position.z);
121                     MoveToPoint();
122                 }
123 
124             }
125             else//如果点击的不是tile 则还原点击过的tile
126             {
127                 if (preTile != null)
128                 {
129                     iTween.MoveTo(preTile, new Vector3(preTile.transform.position.x, 0, preTile.transform.position.z), 1);
130                     if ((preTile.transform.position.x + preTile.transform.position.z) % 2 == 0)
131                     {
132                         iTween.ColorTo(preTile, Color.black, 0.5f);
133                     }
134                     else
135                     {
136                         iTween.ColorTo(preTile, Color.white, 0.5f);
137                     }  
138                 }
139             }
140         }
141 
142 
143     }
144 }

 

你可能感兴趣的:(iTween的使用 :战棋移动代码)