界面

我们把游戏的界面分成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实例中的精灵会被渲染到界面上。







版权所有,违者必究,欢迎转载请注明出处。