简单打飞碟小游戏
游戏规则与要求
-
规则: 鼠标点击飞碟,即可获得分数,难度不同飞碟颜色不同,不同飞碟分数不一样,飞碟的初始位置与飞行速度随机,随着分数增加,游戏难度增加。初始时每个玩家都有6条生命,漏打飞碟扣除一条生命,直到生命为0游戏结束。
-
要求:使用工厂模式管理不同飞碟的生产与回收,实现Singleton 模板类
来可能使用前面 MVC 结构实现人机交互与游戏模型分离
实现:
本次作业用了MVC架构,也只是简单的MVC,并没有SSDirector类了,当然,还有这周要求的工厂模式也是有的。
这次作业学会了使用两个新的对象,gameObject和GetComponen,这两个对象极大的方便我对其他对象的行为进行封装,在使用之前也看了许多相关的博客,这里引用以下其说明:
GetComponent:GetComponent"这个方法的返回值是一个泛型,由<>内的类型决定。比如Button btn = GetComponent();,获取当前GameObject上的Button组件并赋值给btn这个变量。我们创建每个游戏对象都是用GameObject的了,但不同对象有不同的方法和属性,所以就可以自己写脚本挂到物体上,让它实现你想要的方法。当然,通过这个方法也可以添加其它组件比如Rigibody 。
gameObject:gameobject是一个对象, 就跟java里面的this一样, 指的是这个脚本所附着的游戏物件这是GameObject的实例,但它只读,它有什么用呢,当你把一个组件(这里重点指的是脚本),怎么获得该脚本挂的物体呢,其实是有记录的,gameObject就是脚本当前挂的物体。
下面讲下本实验的过程:
模块1 : 实现GameModel类,实现disk的属性以及方法
模块2:实现DiskFactory类,对disk进行回收和生产
模块3:实现类scoreRecorder,用来计分
模块4:实现SceneController类:实现发出飞碟,回收飞碟,以及控制游戏状态,获取游戏状态
模块5:实现UI类,对游戏的各对象的位置,显示等进行设定。
成品图:
总结:这个制作的比较简陋,但学到的东西有很多