我们把游戏的界面分成2个类型,一种是游戏里面的主角,怪物,建筑物这一类,我们称为精灵,另外一类是页面显示的按钮,弹出框,我们称为UI控件。
精灵和UI控件都可以组成游戏的界面
比如一些按钮:
ElevatedButton(
child: Text('攻击'),
onPressed: () {
},
),
我们知道再Flutter中,只有Widget才能显示到界面上,而我们引擎中定义的Sprite类仅仅是个和普通的类,并不能直接放到页面内,这就需要我们引擎中定义的一个很重要的类DFGameWidget。
DFGameWidget是个负责将精灵渲染成Widget的类,并且在它的内部是一个GameLoop,精灵的刷新也全靠它来实现。
所以你在场景文件中会看到下面这样的代码:
/// 将地图精灵添加到主界面
this._gameWidget!.addChild(mapSprite);
/// 将玩家精灵添加到主界面
this._gameWidget!.addChild(_playerSprite);
/// 将怪物精灵添加到主界面
this._gameWidget!.addChildren(_monsterSprites);
只有被添加到DFGameWidget实例中的精灵会被渲染到界面上。
本站内容来源于作者发布和网络转载,如有版权相关问题请及时与我们取得联系,我们将立即删除。