结对编程作业
人员 | 博客地址 | 分工 |
---|---|---|
汪鸿宇 | https://www.cnblogs.com/YamadaQAQ/ | 原型设计 |
卢浩玮 | https://www.cnblogs.com/lamia76/ | 代码实现 |
一、原型设计
- 设计说明:
我们作为游戏玩家,决定使用unity来制作这次游戏。在此基础上,我们使用了在线原型设计网站墨刀进行原型设计。
这是游戏的主菜单,点击“开始游戏”跳到下一界面“游戏规则”,点击“退出游戏”将会关闭。
这是游戏规则简介,在了解游戏规则之后点击“确认”进入模式选择。
进入这个界面后选择游戏模式,这里以“人人对战”为例。点击“人人对战”进入游戏。
点击“开始”,游戏开始。
游戏结束后会进入结算界面
点击“返回主菜单”返回主菜单。“人机对战”和“网络对战”也是一样的。 - 遇到的困难和解决办法:
在原型制作上,由于这是一个新的接触,学习如何熟练使用墨刀这个网站花了一段时间。进行原型制作的时候,由于文字和图案是分开的组件,需要同时对文字和图案增加转到页面。
而且在上传素材的时候,需要将图片压缩到2M以内,而且素材有可能被判定为损坏,在素材处理上也花费了一些时间。在原型的制作中,我们学习了很多有关原型制作的知识,可活用于下一次。
二、原型设计实现
代码实现思路
- 贴出你认为重要的/有价值的代码片段,并解释
这段代码是核心,也就是有关牌的代码,洗牌函数的实现依靠创建临时列表使用随机插入完成,洗牌完成后重新加入队列(即牌库)。 - 性能分析与改进与改进方法:
为简化代码逻辑,将多个界面以UI 覆盖在同一个scene,全部禁用并根据按钮触发事件按顺序显示并禁用上一层UI - 困难部分:
- 描述:无法使卡牌正确显示在背景图上
- 解决过程:整了三小时,整了一圈还原回去就好了,也不知道咋解决的,推测原因:unity Sprite Renderer Sprite图片不应与Canvas混用,在Canvas render type为overlay时canvas会强制浮在sprite上改用UI image即正常显示
- 收获:知道了unity的渲染和摄像机的一部分基础的工作原理
- 评价你的队友:
值得学习的地方 可以使用photoshop
需要改进的地方 给予的素材风格不统一
PSP | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | ||
Estimate | 估计这个任务需要多少时间 | 30 | 30 |
Development | 开发 | 2000 | 2200 |
Analysis | 需求分析 (包括学习新技术) | 100 | 150 |
Design Spec | 生成设计文档 | 100 | 130 |
Design Review | 设计复审 | 100 | 110 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 30 |
Design | 具体设计 | 100 | 100 |
Coding | 具体编码 | 1500 | 1750 |
Code Review | 代码复审 | 100 | 90 |
Test | 测试(自我测试,修改代码,提交修改) | 60 | 50 |
Reporting | 报告 | 90 | 100 |
Test Repor | 测试报告 | 30 | 60 |
Size Measurement | 计算工作量 | 30 | 20 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 30 | 20 |
合计 | 2070 | 2330 |
第N周 | 新增代码 | 累计代码 | 本周学习耗时 | 累计学习耗时 | 重要成长 |
---|---|---|---|---|---|
1 | 30 | 30 | 2 | 2 | 查资料决定使用unity2d完成作业,构建卡牌类 |
2 | 50 | 50 | 3 | 5 | 重新构建实现思路,初步了解c#洗牌函数一般实现方法和unity的物件功能 |
3 | 100 | 150 | 10 | 15 | 了解了c#的部分特性,了解如何使用unity预构体及其实例化方法,如何在unity导入音频,实现事件触发 |
4 | 300 | 450 | 25 | 40 | 学会unity跨脚本调用函数和参数方法,界面切换的实现的方法 |
三、心得
卢浩玮:合理使用工具减少工作量才是真程序员
汪鸿宇:分工一定要明确,不要拖延