码迷,mamicode.com
首页 > 其他好文 > 详细

游戏主循环脚手架

时间:2019-09-08 21:52:58      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:ack   err   lam   渲染   run   应用程序   render   box   关键字   

在开头,我们知道在一个游戏应用中,游戏是在游戏主循环里面运行的。Flame插件已经提供了可以直接使用的游戏主循环脚手架,要使用这个脚手架,就要用到Flame的游戏(Game)抽象类。

创建一个名称为box-game.dart的新文件,然后开始编写BoxGame类,。

import ‘dart:ui‘;

import ‘package:flame/game.dart‘;

class BoxGame extends Game {
void render(Canvas canvas) {
// TODO: 实现渲染
}

void update(double t) {
// TODO: 实现更新
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
上面的代码中,导入dart:ui库,这样的话,等一下我们就可以使用画布(Canvas)类和大小(Size)类。然后导入package:flame/game.dart库,这个库里面包括我们现在使用的游戏(Game)抽象类,这个类有两个方法:更新(update)和渲染(render),我们直接用同名方法覆盖了它们。

在Dart 2.x版本中,@override注释和new关键字是可选的,所以在这里也不需要写。

接下来,我们在main.dart文件中创建BoxGame类的实例,并将其widget属性传递给runApp函数。同时,引用我们刚才创建的package:hello_flame/box-game.dart,让BoxGame类可以在main.dart中使用。

...
import ‘package:hello_flame/box-game.dart‘;

void main() async {
...
BoxGame game = BoxGame();
runApp(game.widget);
1
2
3
4
5
6
7
到这里为止,我们的main.dart里面应该有以下代码。

import ‘package:flutter/material.dart‘;

import ‘package:flame/util.dart‘;
import ‘package:flutter/services.dart‘;

import ‘package:hello_flame/box-game.dart‘;

void main() async {
Util flameUtil = Util();
await flameUtil.fullScreen();
await flameUtil.setOrientation(DeviceOrientation.portraitUp);

BoxGame game = BoxGame();
runApp(game.widget);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
现在我们的应用程序可以被称为游戏了,运行游戏,会显示一个空白的黑屏,因为我们还没有在屏幕上绘制具体的内容。

 

游戏主循环脚手架

标签:ack   err   lam   渲染   run   应用程序   render   box   关键字   

原文地址:https://www.cnblogs.com/ly570/p/11488499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!