• 全部
  • 作业
  • 作业发布
  • 招聘

2021秋软工实践第二次结对编程作业

.airophue 2021-10-09 23:28:03
这个作业属于哪个课程 构建之法-2021秋-福州大学软件工程 https://bbs.csdn.net/forums/fzuSoftwareEngineering2021?category=0
这个作业要求在哪里 2021秋软工实践第二次结对编程作业 https://bbs.csdn.net/topics/601189945
个人学号031902401
结对成员学号031902431
结对小伙伴的作业博客链接 https://bbs.csdn.net/topics/601417833
GitHub 仓库地址 https://github.com/The-homework-for-Software-Engineering/unity
视频演示链接 demo https://www.bilibili.com/video/BV1WQ4y1675U?spm_id_from=333.999.0.0

PSP

PSPPersonal Software Process Stages预估耗(分钟)实际耗时(分钟)
Planning计划60120
Estimate估计这个任务需要多少时间1030
Development开发10001200
Analysis需求分析 (包括学习新技术)9001200
Design Spec生成设计文档3030
Design Review设计复审 (审核设计文档)--
Coding Standard代码规范 (为目前的开发制定合适的规范)6060
Design具体设计200200
Coding具体编码400600
Code Review代码复审-100
Test测试(自我测试,修改代码,提交修改)6060
Reporting报告3030
Test Report测试报告--
Size Measurement计算工作量1020
Postmortem & Process Improvement Plan事后总结, 并提出过程改进计划3060
Total合计27303590

学习进度条

第N周新增代码(行)累计代码(行)本周学习耗时(小时)累计学习耗时(小时)重要成长
12002003636学会了unity界面使用,UI构建和C#的基本语法
23005003672学会了unity脚本的编写,以及将逻辑代码转变成脚本语言

项目介绍

博饼是源于福建闽南的一项传统民俗活动,是中秋节时的一种大众娱乐活动,用六粒骰子投掷结果组合来决定参与者的奖品。在如今的新冠疫情期间,线下家族聚会也十分不便,以及博饼所需要的道具也难以随身携带。于是,我们开发了一款博饼软件,用户可以随时随刻在任何地方进行博饼活动。即使和家人朋友远隔千里,也可以其乐融融的博饼助兴。

界面展示

下图为开始界面,可以实现单人游戏,多人游戏,设置界面的跳转,并加有退出游戏的功能

img

下图为设置界面,可以在这里调节BGM大小和开关BGM,并可以由此界面进入到奖品设置界面

img

下图为奖品设置页面,用户可以在这里输入各级别的奖品。这个界面目前采用的是输入框模式,后续可能改为列表输入模式

img

下图为单人游戏与多人游戏界面,用户可以在这里输入ID,并点击返回按钮回到主菜单,通过点击下一步按钮前往游戏界面

img


img

下图为游戏界面,拥有查看规则与隐藏规则的功能,以及具有前往结果页面查看的功能

img

下图为结果页面,用户可以在这里查看自己投中的结果

img

GitHub仓库及commit内容展示

仓库页面 https://github.com/The-homework-for-Software-Engineering/unity

下图为本次软工结对开发所建立的小组

img

仓库页面展示

img

commit内容展示

img


img


img

更新日志内容展示

img

项目重难点内容与解决方法

BGM的设置调整

由于要实现用户即时调整BGM的功能,unity里面没有现成的功能,故需要自己编写功能脚本来实现,这个脚本主要通过调用C#和unity的库函数

img

代码

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

public class BGM : MonoBehaviour
{
    public AudioSource audioSource;
    public Slider sd;               //用于滑条控制音量
    //开始、停止播放
    public void play_stop_music()
    {
        Debug.Log("s");
        if (!audioSource.isPlaying)
        {
            audioSource.Play();
        }
        else
        { 
            audioSource.Stop();
        }
    }
    //暂停播放
    public void pause_music()
    {
        if (audioSource.isPlaying)
        {
            audioSource.Pause();
        }
    }
    //改变音量
    public void change_volume()
    {
        audioSource.volume = sd.value;  //将音量和滑条对应
    }
}

骰子变换显示脚本

由于在开始投掷的过程中,骰子是不断变动的。所以就采用更换材质的脚本,以实现骰子变换动画的功能

img

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

public class ChangeTexture : MonoBehaviour
{
    public Texture[] texList;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        gameObject.GetComponent<Renderer> ().material.mainTexture = texList[Random.Range(0, 6)];  //给骰子加上贴图,以随机显示贴图的形式来完成骰子变换动画
    }
}

使文件参数夸场景传输

由于unity上切换场景会导致GameObject被销毁,所以需要运行此脚本,用于保护GameObject和挂在其上面的脚本和参数,虽然此功能没有直接在游戏上体现,但是这个功能是核心中的核心

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class Initiation : MonoBehaviour
{
    private static Initiation instance = null;
    public static Initiation Instance
    {
        get { return instance; }
    }
    private void Awake()
    {
        if (instance != null && instance != this)
        {
            Destroy(this.gameObject);
            return;
        }
        else
        {
            instance = this;
        }
        DontDestroyOnLoad(this.gameObject);//使对象目标在加载新场景时不被自动销毁。
    }
}


结对工作环境

img

img

结对编程体验

本周的结对任务中,我深刻地体会到了结对的重要性。分则难以推进,合则其利断金。曾遇到过自己遇到不会的部分,不断查阅资料却毫无进展,白费了一整个下午;在晚上进行结对工作时队友三下五除二解决问题的情况。结对时最重要的部分就是两个人互帮互助,明确分工,互补短处。一个人能学习、维护的代码是有限的,而各司其职则可以达到1+1>2的效果。 ——<031902431>

这两周的结对任务,是一次非常难忘的经历,在这两周中,我和我的队友迅速学会了unity的操作。但是在开发过程中,仍然遇到了多次的瓶颈,但是两个人一起解决的效率,会比一个人解决高出好几倍。以及在开发过程中,学会一定程度的妥协是一项非常重要的能力,在开发过程中,由于时间和技术力的限制,很多预想的功能难以实现,所以,必须时刻调整工程的方向,一切以完成任务为主。拓展功能可以之后再加。 ——来自队友<031902401>

项目展望

这次由于时间太短,加上学的东西还不够多,所以之做出了.exe 的版本。一些预想的功能,如网络联机,奖品实时更新,BGM切换,案件音效和引导语音等功能没有实现,之后等学会了小程序开发,有更富裕的时间之后,我打算把这个软件,改造成微信小程序版本,在过年的时候,邀请家里的长辈,还有群里的亲朋好友一起来博饼!另外由于时间限制,UI素材很多都不是原创的,在之后的日子里,我打算把素材全换成原创的,然后名正言顺的发布。

...全文
38 点赞 收藏 回复
写回复
回复
切换为时间正序
请发表友善的回复…
发表回复

还没有回复,快来抢沙发~

相关推荐
发帖

186

社区成员

福州大学软件工程教学,推行邹欣老师“构建之法”。
帖子事件
创建了帖子
2021-10-09 23:28
社区公告
暂无公告