一、用例
1. 标题:
任务详情与二维码扫描
2. 角色:
玩家
3. 主要成功场景:
(1)玩家登陆后在主界面,点击任务列表中想要解答的谜题,进入了玩家任务详情界面。在任务详情界面,玩家看到顶部是任务的,然后是线索第一条信息、线索的图片,下面是答案框和打开相机按钮、提交答案按钮。玩家通过分析解开了线索一的谜题,将答案输入到答案框里,点击提交按钮后,成功解决将进入线索二。
(2)玩家登陆后在主界面,点击任务列表中想要解答的谜题,进入玩家任务详情界面。在任务详情界面,看到线索一后,根据线索知道了需要在某处扫描外界二维码,才能获取进一步的线索,于是玩家点击相机按钮,在弹出窗口用户找到了要识别的二维码,扫描二维码成功后,在该页面上方显示了新的线索内容,解出答案后,点击返回按钮,回到任务详情界面,将答案输入到答案框中,点击提交按钮,显示答案正确,将进入线索二。
(3)玩家登陆后在主界面,点击任务列表中想要解答的谜题,进入玩家任务详情界面。在任务详情界面,阅读线索一文字和图片内容后,根据线索内容并没有任何思路,不能猜出答案和进一步线索。因此点击了界面上的“小灯泡”,想要获得提示。在弹出提示框中显示“确认要花费50积分获取本条提示么?”,点击确认按钮,花费了积分,获取了提示,解出谜题,将答案的输入了答案框,点击提交按钮,显示答案正确,成功解谜。
4. 扩展场景
(1)玩家在线索二中解答错误,系统会提示“请重新输入,您还有两次机会”,玩家再次输入新的答案,答案正确,则进入线索三。
(2)玩家在线索二中解答错误,系统会提示“请重新输入,您还有两次机会”,玩家再次输入新的答案,答案错误,则系统会提示“请重新输入,您还有一次机会”,玩家再次输入新的答案,答案正确,则进入线索三。
(3)玩家在线索二中解答错误,系统会提示“请重新输入,您还有两次机会”,玩家再次输入新的答案,答案错误,则系统会提示“请重新输入,您还有一次机会”,玩家再次输入新的答案,答案错误,则显示“任务失败!请点击返回按钮,回到主页面,重新认领任务”。
任务详情界面图:
扫描二维码界面图:
二、功能说明书
步骤一:玩家登陆后在主界面,点击任务列表中想要解答的谜题,进入了玩家任务详情界面。
步骤二:在任务详情界面,玩家通过分析解开了线索一的谜题,将答案输入到答案框里,点击提交按钮后,显示答案正确。
步骤三:玩家进入线索二。根据线索需要扫描外界二维码,才能获取进一步的线索,玩家点击相机按钮,在弹出窗口用户将摄像头对准要识别的二维码。
步骤四:扫描二维码成功后,在该页面上方显示了新的线索内容,解出答案后,点击返回按钮,回到任务详情界面,将答案输入到答案框中,点击提交按钮,显示答案正确。
步骤五:进入线索三。玩家根据线索内容并没有任何思路,不能猜出答案和进一步线索,因此点击了界面上的“小灯泡”,想要获得提示。
步骤六:在弹出提示框中显示“确认要花费50积分获取本条提示么?”,点击确认按钮,花费了积分,获取了提示。
步骤七:玩家解出谜题,将答案的输入了答案框,点击提交按钮,显示答案正确,成功解谜。
步骤八:玩家点击了左上角的返回按钮,回到游戏主界面。
三、技术说明书
1. 任务信息的文本部分由多行的TextBlock实现显示,图像部分由Image实现,Image设置光标悬浮或点击,弹出flyout显示大图,获取更多图像的Button的点击事件会弹出一个有全部图片的界面,所有文本及图片信息均根据任务id从相应的服务器端获取相应信息;
2. 二维码扫描部分,首先进行设备的设置,获取网络摄像头权限,而后利用DeviceInformation.FindAllAsync(DeviceClass.VideoCapture)函数进行摄像头的检测与初始化,相机界面中央设置一个正方形扫描框,四角均有标记框,中间设置上下滚动的扫描线,扫确保用户比较容易找到有效扫描位置。我们通过MediaCapture的CapturePhotoToStreamAsync()方法就可以拿到IRandomAccessStream流进行二维码解析,再传入后台,利用ZXing.NET提供的接口进行二维码解析,传回二维码内容,将内容以TextBlock形式显示在屏幕的左上角。