zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Unity 弹球打砖块游戏(简易)

游戏 Unity 简易
2023-09-11 14:20:51 时间

弹球打砖块小游戏:

制作过程:

搭框架:设计三个方向上的边框,防止小球弹出,一个打物体的弹力球,一个主角操控的底端,一堆要销毁的物体,还加里几个音效在相应的物体身上,,

参考图;


需要注意的是所有进行碰撞的物体都要添加一个物理材质(弹力)


每个边框物体都要有以下的组件:



然后个相应的物体添加代码即可实现简单效果,,,

public class lrmove : MonoBehaviour {

    //主角操作脚本

    //获取边界值
    float min = -5.5f, max = 5.5f;
    // Use this for initialization
    void Start()
    {
    }
	
	// Update is called once per frame
	void Update () {

        //获取水平轴输入的变量
        float x = Input.GetAxis("Horizontal");

        //移动物体
        this.transform.Translate(new Vector3(0, -x, 0) * Time.deltaTime * 10);

        //使用Mathf里的Clamp函数对物体的位置进行限制
        transform.position = new Vector3(Mathf.Clamp(transform.position.x,min,max),-7.0f,0);
	}
}

public class qiuqiu : MonoBehaviour {

    AudioSource asqiu;   //获取AudioSource类型
    // Use this for initialization
    void Start () {
        //给小球初速度
        this.GetComponent<Rigidbody>().AddForce(new Vector3(150, 500, 0));
        //获取小球身上的声音组件
        asqiu = GetComponent<AudioSource>();
    }
    /// <summary>
    /// 检测小球与其他物体碰撞
    /// </summary>
    /// <param name="collision">碰撞信息</param>
    private void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.tag != "blok")
        {
            asqiu.Play();    //弹起时 播放声音
        }
    }


}

public class DestroyDemo : MonoBehaviour {

    //每个砖块的自动销毁脚本

    AudioSource asbro;
	// Use this for initialization
	void Start () {
        asbro = GetComponent<AudioSource>();
	}
	
	// Update is called once per frame
	void Update () {
		
	}

    private void OnCollisionEnter(Collision collision)
    {
        asbro.Play();
        Destroy(this.gameObject,0.05f);   //碰撞后 0.05s销毁自身
    }
}

这里我的想法是:每个关卡都用被销毁物体做出不同的形状,继而没有使用克隆的方法进行生成被销毁物体,,本篇博客只实现了一些基本的功能,,,