颜色与调色板

调色板

在你的游戏中,你需要在许多的地方使用颜色。dart:ui提供了两个可用类:ColorPaint

Color类只是16进制颜色的包装。因此,创建Color对象只需要传入16进制的颜色色值。

比如:0xFF00FF00就是不透明的绿色。

package:flutter/material.dart包中,我们可以通过枚举轻松使用常见颜色:

import 'package:flutter/material.dart' as material;

Color color = material.Colors.black;

一些更复杂的函数可能需要Paint,Paint包含更多可定义的选项,比如笔触、颜色、滤镜、混合等等。有时我们甚至只需要一个仅定义了颜色的Paint。

你可以这样定义Paint:

Paint green = Paint()..color = const Color(0xFF00FF00);

为了使游戏的颜色和调色板一致,Flame添加了Palette类。你可以使用它轻松访问所需的Color和Paint,也可以将游戏中使用的颜色定义为常量,这样就不会弄混它们。

BasicPalette类是调色板外观的示例,并添加了黑和白两种颜色。因此若要使用黑色或者白色,可以直接从BasicPalette访问它们。比如使用color

TextConfig regular = TextConfig(color: BasicPalette.white.color);

或者使用paint:

canvas.drawRect(rect, BasicPalette.black.paint);

你可以参照BasicPalette创建自己的调色板,为你的游戏制定配色方案。然后,你将能够访问静态在组件和类中各个颜色,防止和RGB混淆。

这是游戏BGUG 的方案示例:

import 'dart:ui';

import 'package:flame/palette.dart';

class Palette {
  static PaletteEntry white = BasicPalette.white;

  static PaletteEntry toastBackground = PaletteEntry(Color(0xFFAC3232));
  static PaletteEntry toastText = PaletteEntry(Color(0xFFDA9A00));

  static PaletteEntry grey = PaletteEntry(Color(0xFF404040));
  static PaletteEntry green = PaletteEntry(Color(0xFF54a286));
}

PaletteEntry是一个const类,可以保存颜色信息,包含两个属性:

  • color:返回指定的颜色。
  • paint:用指定的颜色创建一个新的PaintPaint是一个非const类,因此,每次调用该属性时,它都会创建一个新的实例。级联突变是安全的。
Flame中文站 all right reserved,powered by Gitbook最后修改: 2020-08-23 20:27:25

results matching ""

    No results matching ""