软工课设第一周周五报告

姓名

张骁

时间

2016年7月1日

学习内容

    今天并没有什么要解决的问题,但是为了增添游戏性,我们需要增加一个游戏中的机关或障碍。

    首先,在设计的最开始需要确定下来该机关的主要功能,这一步的难度在于不能和现有机关的功能重叠,同时还要保证机关的适应性,即可以用在不同布局的多个关卡中的能力。我们现有的机关主要分为传送类、阻挡类和辅助类。传送类的机关入Sucker能够使玩家发生位置的变化,阻挡类的机关如Rock能够挡住玩家的路线,辅助类的机关如Trigger能够触发其他类的机关。通过这样的梳理,我们不难发现我们的场景中的机关的功能都是直接地阻止玩家接近终点,而且都是遵循着一成不变的规则对玩家造成影响,所以本着差异化的原则,我决定加入这样一个机关,间接地从规则上影响玩家的发挥。

    确定了方向之后,我们需要找到最合适的具体规则来作为改变的对象。我们可以考虑让玩家的前后倒置,即按下前进摩托向后行驶,但是考虑到这样做并没有太大意义,因为我们的游戏中规定摩托只能向一个方向行驶,所以换了方向与直接将摩托设计成朝向另一个方向或者使关卡朝向另一个方向并没有实质区别。经过了各种考虑之后,我们决定将机关的功能设置为改变重力方向,即让物体的重力方向朝上,自由落体变为自由上升。

    具体的功能确定之后,我们开始设计功能实现的方式。关于该机关的运作方式大致有两种表现形式,一种是区域型的,即进入该区域则重力方向向上,离开该区域则重力方向向下。另一种是触发型的,与Trigger类似,触发激光接收器则物体重力方向倒置。两种方式各有利弊,在此我们选用的是第二种,即开关式触发方式,因为这样可能更适合设置谜题。

    代码如下:

    void OnTriggerEnter2D(Collider2D other)

    {

        if(other.rigidbody2D)

        {

            other.rigidbody2D.gravityScale = -other.rigidbody2D.gravityScale;

        }

    }

    效果如下:

所遇问题

目前为止还未遇到问题

解决方案

原文地址:https://www.cnblogs.com/ACskyline/p/5639050.html