unity像素鸟实现

简介: unity像素鸟实现

之前已经写过几篇用unity写的小游戏博客,感觉还不错,那么我就继续写下去。 今天写的是像素鸟。

image.png

这个像素鸟小游戏玩法也简单,就是点击屏幕,然后小鸟会往上飞一下,不然就会往下掉。然后过程中会有各种水管,我们需要穿越水管,然后得分。

image.png

先看场景对象有什么,这里面有bg01也就是背景,然后gameover也就是游戏失败时候会弹出来的背景框。ready就是准备动作。bird是鸟。roads是管道。score是显示分数。

image.png

再来看看对象都写了哪些?其实基本上每一个游戏主题都挂上了相应的游戏脚本。其中最重要的肯定是bird脚本,这是控制鸟主角的动作的。


    // Use this for initialization
    void Start () {
        body = gameObject.GetComponent<Rigidbody2D>();
        initPos = gameObject.transform.position;
    }
    
    // Update is called once per frame
    void Update () {
        if(Input.GetButtonDown("Fire1")){
            body.AddForce(force);
        }
    }

    public void reset() {
        body.isKinematic = true;
        gameObject.transform.position = initPos;
        gameObject.transform.eulerAngles = Vector3.zero;
        GetComponent<Animator>().enabled = true;
    }

鸟的动作主要是有三个函数,一开始在start函数里面得到鸟的刚体和位置。在游戏逻辑update中当按下了“Fire1”键,也就是电脑的鼠标左键时候,鸟作为刚体就会往上增加一个力,这个力是为了让鸟有一个向上的跳动。注意,这里必须要让鸟是刚体,他才会受力的。

最后是reset()函数,也就是重新配置鸟的位置,欧拉角,动画等属性而已。


    public void gen() {
        zhuzi[0].SetActive(true);
        zhuzi[1].SetActive(true);
        Vector3 p = zhuzi[0].transform.localPosition;
        float vv = Random.value;
        p.y = Mathf.Lerp(down, upper, vv);
        zhuzi[0].transform.localPosition = p;

        p = zhuzi[1].transform.localPosition;
         vv = Random.value;
        p.y = Mathf.Lerp(down, upper, vv);
        zhuzi[1].transform.localPosition = p;
    }

上面这段代码是写柱子的随机生成,其实就是随机生成柱子的位置。这里面只管了生成。

    void Update () {
         Vector3 pos = trans.position;
        pos.x -= speed * Time.deltaTime;
        trans.position = pos;
        if(pos.x <= -1.6f - 3.35f*idx) {
            Vector3 pp = roads[idx%2].transform.position;
            pp.x += 3.35f;
            idx++;
            roads[idx%2].transform.position = pp;
            if(isBegin){
                roads[idx%2].GetComponent<roadGen>().gen();
            }
        }
    }

然后这一段代码写的是柱子的移动。其实看起来是鸟在动,其实鸟一直在中心的位置没有变化,而是柱子一直在向左移动。

这个是一个比较基础简单的游戏实例,有兴趣学unity的话,可以关注公众号:诗一样的代码,留言给我,我教你系统地学。

相关文章
|
编解码 前端开发 定位技术
零基础教你Unity制作像素鸟游戏
保姆级教程,刚入门的小白也能看懂的文章。一文教你零基础制作Unity板像素鸟游戏
640 0
零基础教你Unity制作像素鸟游戏
|
2月前
|
图形学
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版3(附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版3(附带项目源码)
54 2
|
2月前
|
图形学
【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)
【制作100个unity游戏之28】花半天时间用unity复刻童年4399经典小游戏《黄金矿工》(附带项目源码)
73 0
|
6天前
|
图形学
小功能⭐️获取Unity游戏物体上,所挂载组件的名称
小功能⭐️获取Unity游戏物体上,所挂载组件的名称
|
2月前
|
存储 JSON 关系型数据库
【unity实战】制作unity数据保存和加载系统——大型游戏存储的最优解
【unity实战】制作unity数据保存和加载系统——大型游戏存储的最优解
64 2
|
2月前
|
图形学
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)(上)
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)
105 2
|
2月前
|
图形学
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版2(附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版2(附带项目源码)
34 1
|
2月前
|
存储 JSON 图形学
【unity实战】制作unity数据保存和加载系统——小型游戏存储的最优解
【unity实战】制作unity数据保存和加载系统——小型游戏存储的最优解
49 0
|
2月前
|
图形学
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)(下)
【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)(下)
41 0
|
2月前
|
存储 JSON 关系型数据库
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版13(完结,附带项目源码)
【制作100个unity游戏之27】使用unity复刻经典游戏《植物大战僵尸》,制作属于自己的植物大战僵尸随机版和杂交版13(完结,附带项目源码)
47 0