这个作业属于哪个课程 | 软件工程A |
---|---|
这个作业要求在哪里 | 团队作业–站立式会议+alpha冲刺 |
作业目标 | 记录alpha冲刺Day6 |
团队名称 | 橘色肥猫 |
团队置顶集合随笔链接 | Alpha冲刺笔记-置顶-橘色肥猫-CSDN博客 |
站立式会议照片
项目燃尽图
项目程序/模块的最新运行图片/gif/视频
解密小游戏展示
Holder.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Holder : Interactive
{
public BallName matchball;
private Ball currentBall;
public HashSet<Holder> linkHolders = new HashSet<Holder>();
// Start is called before the first frame update
public bool isEmpty;
public void CheckBall(Ball ball)
{
currentBall = ball;
if(ball.ballDetails.ballName == matchball)
{
currentBall.isMatch = true;
currentBall.SetRight();
}
else
{
currentBall.isMatch = false;
currentBall.SetWrong();
}
}
public override void EmptyClicked()
{
foreach(var holder in linkHolders)
{
if (holder.isEmpty)
{
currentBall.transform.position = holder.transform.position;
currentBall.transform.SetParent(holder.transform);
holder.CheckBall(currentBall);
this.currentBall = null;
this.isEmpty = true;
holder.isEmpty = false;
EventHandler.CallGameStateChangeEvent();
}
}
}
}
GameController.cs
using System.Collections;
using System.Collections.Generic;
using UnityEditorInternal.VersionControl;
using UnityEngine;
using UnityEngine.Events;
public class GameController : MonoBehaviour
{
public UnityEvent OnFinish;
[Header("游戏数据")]
public GameH2A_SO gameData;
public GameObject lineParent;
public LineRenderer linePrefab;
public Ball ballPrefab;
public Transform[] holderTransforms;
private void OnEnable()
{
EventHandler.CheckGameStateEvent += OnCheckGameStateEvent;
}
private void OnDisable()
{
EventHandler.CheckGameStateEvent -= OnCheckGameStateEvent;
}
private void Start()
{
DrawLine();
CreateBall();
}
private void OnCheckGameStateEvent()
{
foreach(var ball in FindObjectsOfType<Ball>()) {
if (!ball.isMatch) return;
}
Debug.Log("game over");
OnFinish?.Invoke();
}
public void DrawLine()
{
foreach(var connection in gameData.lineConnections)
{
var line = Instantiate(linePrefab,lineParent.transform);
line.SetPosition(0, holderTransforms[connection.from].position);
line.SetPosition(1, holderTransforms[connection.to].position);
holderTransforms[connection.from].GetComponent<Holder>().linkHolders.Add(holderTransforms[connection.to].GetComponent<Holder>());
holderTransforms[connection.to].GetComponent<Holder>().linkHolders.Add(holderTransforms[connection.from].GetComponent<Holder>());
}
}
public void CreateBall()
{
for(int i = 0;i<gameData.startBallOrder.Count;i++)
{
if (gameData.startBallOrder[i] == BallName.None)
{
holderTransforms[i].GetComponent<Holder>().isEmpty = true;
continue;
}
Ball ball = Instantiate(ballPrefab, holderTransforms[i]);
holderTransforms[i].GetComponent<Holder>().CheckBall(ball);
holderTransforms[i].GetComponent<Holder>().isEmpty = false;
ball.SetupBall(gameData.GetBallDetails(gameData.startBallOrder[i]));
}
}
}
成员描述
102101209 颜一虹
昨天站立式会议到现在的进展:完善了第五部分场景切换顺序
存在的问题/遇到的困难:无
今天到明天会议的安排:继续完成第二幕游戏场景的切换顺序
心得体会:今天根据游戏剧情进一步完成了第五部分游戏场景的切换顺序,进展顺利。
102101237 翁国平
心得:今天按照要求画了一幅简易地图,根据剧情尽情布局,但画的过程中,建筑物模型难设计,上网搜索查看了一些模型后才画出来
102101225 张鸿诚
昨天站立式会议到现在的进展:完善跳跃的连贯性,实现人物攻击
存在的问题/遇到的困难:人物攻击有延迟
今天到明天会议的安排:继续完成小游戏,让敌人进行简单的移动
心得体会:对unity的了解多了些。
112100237 辜智荣
昨天站立式会议到现在的进展:结束第三部分内容设计和图片
存在的问题/遇到的困难:无
今天到明天会议的安排:继续完成接下来情节的设计
心得体会:需要多利用网络资源查找资料。要多和队友沟通,了解彼此需求。
102101613 石贤炜
昨天站立式会议到现在主要在整理素材,今天会议上进展顺利基本没什么问题,工程越来越向好的预期去发展了。今天到明天依旧是剧情素材方面的工作。一件事情重复做也是一种严谨追求极致的过程,需要耐心和毅力,对能力有很大的锻炼。
102101209 涂欣雨
昨天站立式会议到现在的进展:完善了第五部分场景切换顺序
存在的问题/遇到的困难:无
今天到明天会议的安排:继续完成第二幕游戏场景的切换顺序
心得体会:今天根据游戏剧情进一步完成了第五部分游戏场景的切换顺序,进展顺利。
102101143 傅晗
昨天站立式会议到现在的进展:初步完成了解密小游戏的开发
存在的问题/遇到的困难:不知道随机连线是否一定有解
今天到明天会议的安排:将小游戏存档
心得体会:写解密小游戏提高了我的技术水平,还深入了解了游戏设计的各个方面。这个过程是具有挑战性和收获的