最近看了SIKI的三消游戏实现,跟着做了一遍,由于是PC端的,所以做完不方便展示,故而自己采用EasyTouch插件进行结合,开发了手机版的。
在这里主要说下移植时的移动函数问题。废话少说,先贴代码!
Gesture currentGesture = EasyTouch.current;
if (currentGesture == null)
{
return;
}
else
{
//当点击时,获取当前物体,放入EnterSweet方法
if (currentGesture.pickedObject != null)
{
isMoveEnd = false;
EnterSweet(sweets[currentGesture.pickedObject.GetComponent
if (currentGesture.swipe == EasyTouch.SwipeDirection.Right&&!isMoveEnd)
{
if (currentGesture.pickedObject.GetComponent
{
PressSweet(sweets[currentGesture.pickedObject.GetComponent
ReleaseSweet(); //调用交换方法
isMoveEnd = true;
}
}
else if (currentGesture.swipe == EasyTouch.SwipeDirection.Up && !isMoveEnd)
{
if (currentGesture.pickedObject.GetComponent
{
PressSweet(sweets[currentGesture.pickedObject.GetComponent
ReleaseSweet(); //调用交换方法
isMoveEnd = true;
}
}
else if (currentGesture.swipe == EasyTouch.SwipeDirection.Down && !isMoveEnd)
{
if (currentGesture.pickedObject.GetComponent
{
PressSweet(sweets[currentGesture.pickedObject.GetComponent
ReleaseSweet(); //调用交换方法
isMoveEnd = true;
}
}
else if (currentGesture.swipe == EasyTouch.SwipeDirection.Left && !isMoveEnd)
{
if (currentGesture.pickedObject.GetComponent
{
PressSweet(sweets[currentGesture.pickedObject.GetComponent
ReleaseSweet(); //调用交换方法
isMoveEnd = true;
}
}
}
}
这是Update中检测每次touch屏幕时,获取的物体,对应GameSweet组件下的编号,然后根据滑动方向,决定与上下左右哪个部分进行交换。这里需要注意的是,要判断好选择物体的X和Y,不要移出边界,其他的就是抄代码了。
再次记录下,EasyTouch里判定滑动方向的函数。currentGesture.swipe == EasyTouch.SwipeDirection.Down,然后我增加了一个是否单次移动完成的bool变量,并在每次移动后重置它,保证每次只移动一次。



