这个作业属于哪个课程 | 软件工程A |
---|---|
这个作业要求在哪里 | 团队作业–站立式会议+alpha冲刺 |
作业目标 | 记录alpha冲刺Day9 |
团队名称 | 橘色肥猫 |
团队置顶集合随笔链接 | Alpha冲刺笔记-置顶-橘色肥猫-CSDN博客 |
站立式会议照片
燃尽图
成员描述
辜智荣
昨天站立式会议到现在的进展:完成了剧情图片的修正和处理
存在的问题/遇到的困难:无
今天到明天会议的安排:新的章节模型建立。
心得体会:需要多利用网络资源查找资料。要多动手实践,提高技术质量。
组员:102101209涂欣雨
昨天站立式会议到现在的进展:完善了第八部分场景切换顺序
存在的问题/遇到的困难:无
今天到明天会议的安排:继续完成第二幕游戏场景的切换顺序
心得体会:今天根据游戏剧情进一步完成了第八部分游戏场景的切换顺序。
组员:102101225张鸿诚
昨天站立式会议到现在的进展:显示人物血条
存在的问题/遇到的困难:人物掉血太快
今天到明天会议的安排:继续完善
心得体会:控制游戏难度是一个敏感的平衡问题,需要不断尝试和调整。
102101613 石贤炜
昨天站立式会议结束到现在,对初步完成的剧情进行了优化润色。今天大家在食堂召开最后阶段的冲刺会议,场面融洽无困难,明天继续完成上次剩下的一些细枝末节。最近又学会了很多东西,受益匪浅。
组员:102101209颜一虹
昨天站立式会议到现在的进展:修改了第六部分场景切换流程
存在的问题/遇到的困难:无
今天到明天会议的安排:继续完成第二幕游戏场景的切换流程
心得体会:今天根据游戏剧情进一步完成了第六部分游戏场景的切换流程,进展顺利。
102101143 傅晗
昨天站立式会议到现在的进展:随机化小游戏的生成,保证绝大部分时候有解
存在的问题/遇到的困难:死循环导致unity死机,可能产生无解情况
今天到明天会议的安排:开发新的解密游戏,使人物与ai博弈
心得体会:保持代码的清晰结构,使用面向对象的设计原则,以便易于扩展和维护。
项目程序/模块的最新运行图片/gif/视频
使用了 Fisher-Yates 洗牌算法,经典的随机排序算法
public void Shuffle(List<Vector3> list)
{
int n = list.Count;
while (n > 1)
{
n--;
int k = UnityEngine.Random.Range(0, n + 1);
Vector3 value = list[k];
list[k] = list[n];
list[n] = value;
}
}
public void DrawLine()
{
Dictionary<Vector3, Transform> positionToTransformMap = new Dictionary<Vector3, Transform>();
foreach (var connection in gameData.lineConnections)
{
Vector3 fromPosition = holderTransforms[connection.from].position;
Vector3 toPosition = holderTransforms[connection.to].position;
positionToTransformMap[fromPosition] = holderTransforms[connection.from];
positionToTransformMap[toPosition] = holderTransforms[connection.to];
}
List<Vector3> positions = new List<Vector3>(positionToTransformMap.Keys);
Shuffle(positions);
for (int i = 0; i < 7; i++)
{
int j = UnityEngine.Random.Range(0, i);
// 获取连接点的坐标
Vector3 fromPosition = positions[i];
Vector3 toPosition = positions[j];
// 实例化线并连接两个端点
var line = Instantiate(linePrefab, lineParent.transform);
line.SetPosition(0, fromPosition);
line.SetPosition(1, toPosition);
// 添加连接关系
positionToTransformMap[fromPosition].GetComponent<Holder>().linkHolders.Add(positionToTransformMap[toPosition].GetComponent<Holder>());
positionToTransformMap[toPosition].GetComponent<Holder>().linkHolders.Add(positionToTransformMap[fromPosition].GetComponent<Holder>());
Tuple<Vector3, Vector3> edge = new Tuple<Vector3, Vector3>(fromPosition, toPosition);
// 记录已连接的边
connectedEdges.Add(edge);
}
int n = positions.Count();
//Debug.Log(n);
for(int i=0;i<7;i++)
{
int x = UnityEngine.Random.Range(0, n);
Vector3 fromPosition = positions[x];
Vector3 toPosition = positions[i];
Tuple<Vector3, Vector3> edge = new Tuple<Vector3, Vector3>(fromPosition, toPosition);
while (x == i|| connectedEdges.Contains(edge))
{
x = UnityEngine.Random.Range(0, n);
fromPosition = positions[x];
edge= new Tuple<Vector3, Vector3>(fromPosition, toPosition);
}
//Debug.Log(x);
// Debug.Log(y);
// 记录已连接的边
connectedEdges.Add(edge);
// 实例化线并连接两个端点
var line = Instantiate(linePrefab, lineParent.transform);
line.SetPosition(0, fromPosition);
line.SetPosition(1, toPosition);
// 添加连接关系
positionToTransformMap[fromPosition].GetComponent<Holder>().linkHolders.Add(positionToTransformMap[toPosition].GetComponent<Holder>());
positionToTransformMap[toPosition].GetComponent<Holder>().linkHolders.Add(positionToTransformMap[fromPosition].GetComponent<Holder>());
}
Debug.Log("ok");
}
玩家与电脑