愤怒的小鸟判断场景中道具被小鸟击中后的改变以及小鸟碰撞玩物体后的受伤状态以及使用静态方法对声音的添加

首先要了解当小鸟与非小鸟发生碰撞时是因为力的存在,所以当小鸟碰撞到非小鸟物体时两者都会产生相应的速度,所以便可通过相对速度来检测其碰撞后的状态。
一:
因此,我们可以定义两个速度,一个为最小速度minSpeed,另一个为最大速度maxSpeed,我们可让当最小速度minSpeed<猪被小鸟碰撞的速度<最大速度maxSpeed,小猪此时的状态为受伤。当猪被小鸟碰撞的速度>最大速度maxSpeed,此时猪直接死亡。
二:代码如下
1.定义两个速度
2.使用碰撞检测,来完成对此时速度的判断
3.Dead方法的实现
Dead方法中的Score方法为当小猪被小鸟碰撞后死亡时会有分数呈现
其中的boom,为当小猪死亡后呈现的动画由图片构成


代码:
因为分数要在猪的上方呈现,所以要将猪当前的位置加上适当的y值让分数呈现在猪的上方,不过在实现小先定义。
二:小鸟受伤状态的实现以及非小鸟的受伤状态实现
可以看见的发射黑色小鸟后小猪的状态以及发生了改变,这个操作我们可以通过SpriteRenderer组件来完成。
1.小猪受伤后的状态改变
hurt为受伤后的图片
在Awake()中调用
在private void OnCollisionEnter2D(Collision2D collision)碰撞检测中实现,当此时的速度小于maxSpeed大于minSpeed时为受伤状态,当速度大于maxSpeed小猪直接死亡,并生成boom动画。
2.场景中木块,玻璃等物品的受伤状态改变
场景木块等物体也会被小鸟碰撞后,也会有受伤状态,其原理于小猪碰撞原理相类似,所以我们可以将小猪上的脚本(pig)赋予场景中其他物体,即可完成其效果。但我们要区分这两个物体(小猪和木头等物体),所以我们要定义一个bool类型来区分是否为ispig。

通过此方法来完成对小鸟碰撞其他物体后的其他物体的受伤状态改变。
三.小鸟受伤状态的实现
与定义小猪受伤的方法相似

也是通过SpriteRenderer组件来实现,在Awake()中获取
在bird类中定义Hurt()
然后在pig中通过将小鸟赋予Player的标签来实现小鸟受伤,来调用bird类中的Hurt()方法。
四.运用静态方法来完成对声音的调用。
首先定义三个AudioClip类型,分别为小猪受伤时的音频,一个小猪死亡时的音频和小鸟发生碰撞时的音频。

定义此静态方法
然后在通过AudioPlay()方法来调用
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
