• Unity3d5.0 新UI之2048


    因为汽车系统没写出来所以,纠结之中,弄了弄新版本的UI。

    做了个2048。

    新版本的unity的UI必须以Canvas为基底来呈现,如果没有加画布的话可是显示不出来东西的哦。

    而且作为UI上的所有组件都应属于Canvas的子物体,要不也不会显示出来。

    如图所示Image并没有在UI界面显示出来。而把Image拖入Canvas中的效果如下图:

    ImageUI就显示出来了。

    对于其他的组件来说也是必须的。

    但是还有一个组件可以不用画布,,但是仅限Text的控制哦。

    然后就是2048的程序了,写的很乱&烂,不要吐槽。

    要注意的是,因为是调用了UI组件,说以必须导入组件的代码关联包UnityEngine.UI

    using UnityEngine;
    using System.Collections;
    using UnityEngine.UI;
    
    public class MouseMove : MonoBehaviour {
    
        private Vector3 firstPoint, endPoint;
        public Text T1;
        public Text T2;
        public Text T3;
        public Text T4;
        public Text T5;
        public Text T6;
        public Text T7;
        public Text T8;
        public Text T9;
        private int[] T = new int[9];
    
        // Use this for initialization
        void Start () {
            int i = 0;
            while (i != 4) {
                int r = Random.Range (1, 9);
                if (T[r-1] != 1) {
                    i++;
                    set(r,2);
                }
            }
        }
        
        // Update is called once per frame
        void Update () {//鼠标滑动判读移动方位
            if (Input.GetMouseButtonDown (0)) {
                firstPoint = Input.mousePosition;
            }
            if (Input.GetMouseButtonUp (0)) {
                endPoint = Input.mousePosition;
                Vector3 v= firstPoint - endPoint;
                float angle = Vector3.Angle(v,new Vector3(1,0,0));
                if (angle < 30) heng (1);
                if (angle > 150) heng (2);
                if (angle > 60 && angle < 120) 
                    if (firstPoint.y - endPoint.y > 0) shu(2); else shu (1);
                nextrandom();
            }
        }
    
        void nextrandom(){//随机更新两个位置加2
            int i = 0;
            int pp = 0;
            for (int c=0; c<9; c++)
                if (T [c] == 1)
                    pp++;
            if (pp < 7) {
                while (i != 2) {
                    int r = Random.Range (1, 9);
                    if (T [r - 1] != 1) {
                        i++;
                        set (r, 2);
                    }
                }
            }
        }
    
        void set(int i,int number) {//修改i位置的数值为number
            if (i == 1) 
                T1.text = "" + number;
            if (i == 2)
                T2.text = "" + number;
            if (i == 3)
                T3.text = "" + number;
            if (i == 4)
                T4.text = "" + number;
            if (i == 5)
                T5.text = "" + number;
            if (i == 6)
                T6.text = "" + number;
            if (i == 7)
                T7.text = "" + number;
            if (i == 8)
                T8.text = "" + number;
            if (i == 9)
                T9.text = "" + number;
            if (number == 0)
                T [i-1] = 0; else T[i-1] = 1;
        }
    
        int get(int i) {//读取i位置的数值
            if (i == 1)
                return int.Parse(T1.text);
            if (i == 2)
                return int.Parse(T2.text);
            if (i == 3)
                return int.Parse(T3.text);
            if (i == 4)
                return int.Parse(T4.text);
            if (i == 5)
                return int.Parse(T5.text);
            if (i == 6)
                return int.Parse(T6.text);
            if (i == 7)
                return int.Parse(T7.text);
            if (i == 8)
                return int.Parse(T8.text);
            if (i == 9)
                return int.Parse(T9.text);
            return 0;
        }
    
        void change(int p, int o) {
            if (get (p) == get (p + o)) {
                set (p + o, get (p) * 2);
                set (p, 0);
            }
            if (get (p + o) == 0) {
                set (p + o, get (p));
                set (p, 0);
            }
        }
    
        void heng(int p) {
    //四个方向的操作
            if (p == 1) {
                for (int i=1; i<=9; i++) {
                    if (i == 2 || i == 5 || i == 8) {
                        if (get (i) != 0)
                            change (i,-1);
                    }
                    if (i == 3 || i == 6 || i == 9) {
                        if (get (i) != 0) {
                            change (i,-1);
                            change (i-1,-1);
                        }
                    }
                }
            }
            if (p == 2) {
                for (int i=9; i>=1; i--) {
                    if (i == 2 || i == 5 || i == 8) {
                        if (get (i) != 0)
                            change (i,1);
                    }
                    if (i == 1 || i == 4 || i == 7) {
                        if (get (i) != 0) {
                            change (i,1);
                            change (i+1,1);
                        }
                    }
                }
            }
        }
    
        void shu(int p) {
            if (p == 1) {
                for (int i=1; i<=9; i++) {
                    if (i == 4 || i == 5 || i == 6) {
                        if (get (i) != 0)
                            change (i,-3);
                    }
                    if (i == 7 || i == 8 || i == 9) {
                        if (get (i) != 0) {
                            change (i,-3);
                            change (i-3,-3);
                        }
                    }
                }
            }
            if (p == 2) {
                for (int i=9; i>=1; i--) {
                    if (i == 4 || i == 5 || i == 6) {
                        if (get (i) != 0)
                            change (i,+3);
                    }
                    if (i == 1 || i == 2 || i == 3) {
                        if (get (i) != 0) {
                            change (i,+3);
                            change (i+3,+3);
                        }
                    }
                }
            }
        }
    
    }
  • 相关阅读:
    tr加不上边框
    placeholder 用法
    <input/>文本输入框效果:
    colspan="2"、列、rowspan="3"、行、用法!
    CSS--实现小三角形
    “div+css”下拉菜单
    HDU4624 Endless Spin(概率&&dp)
    chanme的博客搬家了!
    HDU5487 Difference of Languages(BFS)
    HDU5469 Antonidas(树分治&&哈希)
  • 原文地址:https://www.cnblogs.com/SHOR/p/4908782.html
Copyright © 2020-2023  润新知