愤怒的小鸟历程 更新中..

1.配置小鸟于棍子的距离  弹簧的弹性

 

 

 2.加了个碰撞体 实现小鸟【世界】和鼠标【局部】的交互(注意世界坐标和局部坐标)

3.限制拖拽的最大距离(maxDis)

if (Vector3.Distance(transform.position,rightPos.position) > maxDis) //进行位置限定
            {
                Vector3 pos = (transform.position - rightPos.position).normalized;//单位化向量
                pos *= maxDis;//最大长度的向量
                transform.position = pos + rightPos.position;

            }        

 4.小鸟的飞出(但飞出去太猛了)

 是否开启动力学 不受物理元素的控制了

private void OnMouseUp()
    {
        isClick = false;
        rg.isKinematic = false;
        Invoke("Fly",0.1f);     // 0.1秒之后开启动力学
    }
void Fly()
    {
        sp.enabled = false;
    }

5.草地 添加碰撞盒    

6.猪的受伤

猪也有个阻力(Angular Drag)配置为2       不然猪和鸟都滑下去了

  受伤图Sprite Renderer 组件里面

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Pig : MonoBehaviour {

	public float maxSpeed = 10;
	public float minSpeed = 5;
	private SpriteRenderer render;
    public Sprite hurt;

	private void Awake()  //获取组件
    {
		render = GetComponent<SpriteRenderer>();
    }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        if (collision.relativeVelocity.magnitude > maxSpeed)  //死亡消失
        {
            Destroy(gameObject);
        } else if (collision.relativeVelocity.magnitude > minSpeed && collision.relativeVelocity.magnitude < maxSpeed)  //受伤
        {
            render.sprite = hurt;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/qq_50777680/article/details/119117535