Unity Homework5

Unity第五次作业

一、编写一个简单的鼠标打飞碟的游戏

  • 游戏要求内容

    • 游戏有n个round,每个round都包括10次trial
    • 每个trial的飞碟的色彩、大小、发射位置、速度、角度、同时出现的个数都可以由round的ruler控制;
    • 每个trial的飞碟有随机性,总体难度随round上升;
    • 鼠标点中了得分,得分规则按照色彩,大小,速度不同计算,规则可以自由设定。
  • 游戏的要求

    • 使用带缓存的工厂模式管理不同飞碟的生产和回收,该工厂必须是场景单实例 的!
    • 尽可能使用前面MVC结构实现人机交互与游戏模型分离

项目地址:https://github.com/buzhanpeng/homework_5.git

1、界面及其运行

(1)开始界面,点击Start按钮即可开始游戏
在这里插入图片描述


(2)点击start后,进入到游戏界面,左上角记录的是分数,中间记录的是现在的游戏等级,每个飞碟对应一定的分数,目前的设置是:
红色飞碟 3分、绿色飞碟 2分、蓝色飞碟 1分

在这里插入图片描述
其中游戏难度和游戏等级相关,游戏等级越高,游戏难度也就越大,难度大体现在随机出现的飞碟数量更多,速度也更快

(3)当通关第五关后,便会弹出游戏结束的字样
在这里插入图片描述

2、代码及其解析

** 一共分为三个大类**
① Actions动作与动作管理器
② Controllers 控制器
③ Viewers 用户接口与用户GUI


让我们来挑具有代表性的进行讲解

(1)飞碟动作

在这里插入图片描述

在Update的这个函数里面有两个调用和控制机制。个是当检测到鼠标点击,飞碟就会销毁,还有就是当飞碟飞出屏幕之外也会被销毁。

(2)SSActionManager 动作管理类基类
新增了一个函数RemainActionCount(),用于判断每回合中剩余的动作数量(即飞碟数量),只有这个值为0才进入下一回合。
在这里插入图片描述
逻辑是,先将所有的飞碟对象加入到waitingADD的列表中,然后检测是否被销毁,销毁了就加入到waitingDelete的列表中。以此来控制难度等级是否要进阶。

(3) DiskFactory 飞碟生成器
用于生产飞碟。GetDisk(int round)被主控制器调用,round(回合数)会影响所生产的飞碟的速度、大小等属性。
有两个列表used和free,存放的是飞碟属性(包括分数、速度),可以循环使用,提高飞碟的产生效率。

飞碟初始位置随机,可能为屏幕的四个角落之一。
根据飞碟的分数和回合数设置飞碟的大小和速度。
在这里插入图片描述
同学们可以通过这个函数里面,来操作飞碟飞出的位置,速度,飞碟的颜色等等。

(4)UserGUI 用户界面
在这里插入图片描述
可以在这里设置自己喜欢的UI界面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是zp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值