栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > Unity3D

Unity 三消游戏学习

Unity3D 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unity 三消游戏学习

最近看了SIKI的三消游戏实现,跟着做了一遍,由于是PC端的,所以做完不方便展示,故而自己采用EasyTouch插件进行结合,开发了手机版的。

       在这里主要说下移植时的移动函数问题。废话少说,先贴代码!

Gesture currentGesture = EasyTouch.current;
        if (currentGesture == null)
        {
            return;
        }
        else
        {
            //当点击时,获取当前物体,放入EnterSweet方法
            if (currentGesture.pickedObject != null)
            {
                isMoveEnd = false;
                EnterSweet(sweets[currentGesture.pickedObject.GetComponent().X, currentGesture.pickedObject.GetComponent().Y]);
                if (currentGesture.swipe == EasyTouch.SwipeDirection.Right&&!isMoveEnd)
                {
                    if (currentGesture.pickedObject.GetComponent().X < xColumn-1)
                    {                      
                        PressSweet(sweets[currentGesture.pickedObject.GetComponent().X + 1, currentGesture.pickedObject.GetComponent().Y]); //尝试把另一个物体放入交换列表
                        ReleaseSweet();    //调用交换方法
                        isMoveEnd = true;
                    }
                }
                else if (currentGesture.swipe == EasyTouch.SwipeDirection.Up && !isMoveEnd)
                {
                    if (currentGesture.pickedObject.GetComponent().Y >= 1)
                    {
                        PressSweet(sweets[currentGesture.pickedObject.GetComponent().X, currentGesture.pickedObject.GetComponent().Y - 1]); //尝试把另一个物体放入交换列表
                        ReleaseSweet();    //调用交换方法
                        isMoveEnd = true;
                    }
                }
                else if (currentGesture.swipe == EasyTouch.SwipeDirection.Down && !isMoveEnd)
                {
                    if (currentGesture.pickedObject.GetComponent().Y < yRow-1)
                    {                                        
                        PressSweet(sweets[currentGesture.pickedObject.GetComponent().X, currentGesture.pickedObject.GetComponent().Y + 1]); //尝试把另一个物体放入交换列表
                        ReleaseSweet();    //调用交换方法
                        isMoveEnd = true;
                    }
                }
                else if (currentGesture.swipe == EasyTouch.SwipeDirection.Left && !isMoveEnd)
                {
                    if (currentGesture.pickedObject.GetComponent().X >= 1)
                    {
                        PressSweet(sweets[currentGesture.pickedObject.GetComponent().X - 1, currentGesture.pickedObject.GetComponent().Y]); //尝试把另一个物体放入交换列表
                        ReleaseSweet();    //调用交换方法
                        isMoveEnd = true;
                    }
                }
            }
        }

这是Update中检测每次touch屏幕时,获取的物体,对应GameSweet组件下的编号,然后根据滑动方向,决定与上下左右哪个部分进行交换。这里需要注意的是,要判断好选择物体的X和Y,不要移出边界,其他的就是抄代码了。

再次记录下,EasyTouch里判定滑动方向的函数。currentGesture.swipe == EasyTouch.SwipeDirection.Down,然后我增加了一个是否单次移动完成的bool变量,并在每次移动后重置它,保证每次只移动一次。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/900401.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号