使用 Flutter 中的 "setByPostion" 组件居中递增数字
Center an incrementing number using the "setByPostion" component in Flutter
我正在开发一款新游戏,运行 遇到一个问题,当我的分数增加到 10 或另一个小数点时,它不会正确居中,因为数字中只有第一个小数点在屏幕中央。
import 'package:flame/components/text_component.dart';
import 'package:flame/game.dart';
import 'package:flame/position.dart';
import 'package:flame/text_config.dart';
import 'package:flutter/material.dart';
class Test extends BaseGame{
TextComponent _scoreText;
int score;
TextComponent _text;
Test() {
// SCORE TEXT
score = 0;
_scoreText = TextComponent(score.toString(),
config: TextConfig(
color: Colors.white, fontFamily: 'Audiowide', fontSize: 70));
add(_scoreText);
}
void resize(Size size) {
super.resize(size);
_scoreText.setByPosition(Position(
(size.width / 2) - (_scoreText.width / 2), (size.height / 10)));
}
}
我通过使用锚点小部件解决了这个问题,使其原点位于文本框的中心而不是左上角。
void resize(Size size) {
super.resize(size);
_scoreText.setByPosition(Position(
_scoreText.anchor = Anchor.center;
(size.width / 2), (size.height / 10)));
}
我正在开发一款新游戏,运行 遇到一个问题,当我的分数增加到 10 或另一个小数点时,它不会正确居中,因为数字中只有第一个小数点在屏幕中央。
import 'package:flame/components/text_component.dart';
import 'package:flame/game.dart';
import 'package:flame/position.dart';
import 'package:flame/text_config.dart';
import 'package:flutter/material.dart';
class Test extends BaseGame{
TextComponent _scoreText;
int score;
TextComponent _text;
Test() {
// SCORE TEXT
score = 0;
_scoreText = TextComponent(score.toString(),
config: TextConfig(
color: Colors.white, fontFamily: 'Audiowide', fontSize: 70));
add(_scoreText);
}
void resize(Size size) {
super.resize(size);
_scoreText.setByPosition(Position(
(size.width / 2) - (_scoreText.width / 2), (size.height / 10)));
}
}
我通过使用锚点小部件解决了这个问题,使其原点位于文本框的中心而不是左上角。
void resize(Size size) {
super.resize(size);
_scoreText.setByPosition(Position(
_scoreText.anchor = Anchor.center;
(size.width / 2), (size.height / 10)));
}