7. 角色的跳跃、游戏边界、顶部尖刺

专栏收录该内容

Hi I'm Shendi



这节开始制作角色的跳跃,尖刺和边界



游戏边界

角色需要跳跃自然就需要落下,给角色增加刚体(Rigidbody 2D)组件来实现

这样会有一个问题,就是角色会一直往下落,于是需要使用碰撞体,给角色增加碰撞体组件,以及在屏幕底部增加一个方块,宽度超过屏幕宽度,代表地面,同样增加碰撞体,角色移动当然不能超过屏幕两侧,于是同样在屏幕两侧各加一个方块,增加碰撞体,如下图所示

示例

方块碰撞体组件 Box Collider 2D

给这三个方块颜色设置透明,这样角色可移动的位置就被框在了方块之间了



角色跳跃

当摇杆 y 大于 0.7 则代表跳跃

这里跳跃功能制作成,摇杆往上跳跃一定高度,然后摇杆下来再往上又可以继续跳跃(可无限跳跃),具体就判断摇杆的y是否大于0.7即可,使用一个变量来判断,通过给刚体组件一个力即可实现跳跃,代码如下

(Player)

/** 是否可以跳跃 */
private bool canSkip = true;

void FixedUpdate()
{
    var curPos = Rocker.curPos;
    if (curPos.magnitude != 0)
    {
        if (curPos.x < 0)
        {
            transform.position = new Vector3(transform.position.x - playerSpeed, transform.position.y);
        }
        else if (curPos.x > 0)
        {
            transform.position = new Vector3(transform.position.x + playerSpeed, transform.position.y);
        }

        // y大于0.7代表跳跃
        if (curPos.y > 0.7)
        {
            if (canSkip)
            {
                canSkip = false;
                transform.GetComponent<Rigidbody2D>().velocity = new Vector2(0, 4);
            }
        }
        else
        {
            canSkip = true;
        }
    }
    else
    {
        canSkip = true;
    }
}


运行将摇杆往上拖拽,角色即可跳跃了

角色跳跃



顶部尖刺

在之前设计 logo 的时候就已经将尖刺设计出来了,本着能不使用图片就不使用图片的原则

实现尖刺其实就是使用三角形,而Unity正好可以直接创建三角形

层级,选择 PageGame 右键 - 2D对象 - Sprites - 三角形

创建三角形


将三角形的x旋转180度,就变成了尖尖向下的效果,然后缩放x,例如缩放到0.2,就实现尖刺了,改变颜色成黑色,效果如下

尖刺


使用 Ctrl + D 复制物体,然后拉成一排,并将物体放到一个空对象下,作为一个整体(空物体在PageGame下)

结构如下

结构


并且给创建的空对象增加一个Box Collider 2D 碰撞体组件

点击组件的编辑碰撞器按钮,拖拽绿色的正方形覆盖住尖刺

编辑边界体积


碰撞体覆盖尖刺


如此,尖刺就制作好了



本文链接:https://sdpro.top/blog/html/article/1067.html

♥ 赞助 ♥

尽管去做,或许最终的结果不尽人意,但你不付出,他不付出,那怎会进步呢?