【2D平台跳跃游戏 - 03】场景
场景基类
思路
场景基类有五个方法:
on_enter()
:处理进入场景时的逻辑on_exit()
:处理退出场景时的逻辑on_input()
:处理场景接收输入时的逻辑on_update()
:处理场景更新的逻辑on_draw()
:处理场景绘制时的逻辑
场景基类中的方法都定义为了虚函数,后续的具体子类场景都需要重写自己的方法
使用继承的方法实现场景是为了使用指针配合虚函数实现跳转场景
每个子类具体场景中实现自己的逻辑
具体实现
场景管理器
思路
场景管理器持有所有场景的引用(指针)
场景管理器中使用指针维护着当前是哪个场景;
并使用虚函数继承的方式,切换指针指向来跳转场景
在场景管理器中的跳转场景方法中,使用了枚举类用于屏蔽具体的指针
场景跳转方法中:
- 调用当前场景的退出方法
- 根据传递的参数修改当前场景指针的指向
- 调用当前场景的进入方法
场景管理器中同样有输入、绘图和更新三个方法,每个方法中都调用了当前场景对应的方法;
这样可以使主函数中只需要调用场景管理器的对应方法,不需要关注当前场景;
具体方法调用由场景管理器维护
评论区