最近我在准备一个比赛 然后现在的想法是做一个2D的类似于跑酷的游戏
然后就想到做一个冲刺的效果(不单单是速度的改变 还有身后的残影)
和上几篇博客一样 还是用之前超级玛丽来实现的 效果如下
这里边会用到队列和对象池的知识 我之前写过栈和队列还有对象池的博客 可能对大家有用
栈和队列传送门
对象池传送门
然后就开始我们的实现过程吧
我的思路是创建一个对象池 然后每次按下特定的冲刺键的时候 对象池中显示出来
在冲刺时间过后 再隐藏掉
然后对象池中的预制体 我们通过代码给他赋值为玩家上几个位置的精灵图片和位置 旋转 大小等
我们这个脚本大致分为3个 一个是预制体挂载的控制精灵贴图等的 一个是控制对象池的 还有一个就是玩家控制器中修改速度等参数的
下面先给出控制精灵贴图的代码
private Transform player;//玩家
private SpriteRenderer thissprite;//当前的sprite
private SpriteRenderer playersprite;//玩家的sprite
private Color color;
[Header("时间控制参数")]
public float activetime;//允许存在的时间
public float activestart;//开始的时间
[Header("不透明度参数")]
private float alpha;
public float alphamul;//变化的速度
public float alphaset;//初始值
private void OnEnable()
{
player = GameObject.Find("Mario").transform;//我的玩家叫 马里奥(Mario)查找了一下 直接赋值也可以
thissprite = GetComponent<SpriteRenderer>();//获得预制体上的 贴图组件
thissprite.sorti