mirror of
https://github.com/flame-engine/flame.git
synced 2025-10-30 00:17:20 +08:00
Remove unnecessary super.render calls (#1084)
* Remove unnecessary super.render calls * Update tutorial and docs
This commit is contained in:
@ -83,7 +83,6 @@ class GameOverPanel extends PositionComponent with HasGameRef<MyGame> {
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
if (visible) {
|
||||
super.render(canvas);
|
||||
} // If not visible none of the children will be rendered
|
||||
}
|
||||
}
|
||||
@ -101,10 +100,6 @@ render from the top left corner (0.0). Your render method should not handle wher
|
||||
component should be rendered. To handle where and how your component should be rendered use the
|
||||
`position`, `angle` and `anchor` properties and flame will automatically handle the rest for you.
|
||||
|
||||
If you really want to handle the canvas translations yourself you can just omit the
|
||||
`super.render(canvas)` line and suppress the warning, but for most use cases this is not
|
||||
recommended.
|
||||
|
||||
If you want to know where on the screen the bounding box of the component is you can use the
|
||||
`toRect` method.
|
||||
|
||||
|
||||
@ -7,7 +7,7 @@ that extends from `Game`. Once applied you can access the current fps by using t
|
||||
like shown in the example below.
|
||||
|
||||
```dart
|
||||
class MyGame extends Game with FPSCounter {
|
||||
class MyGame extends FlameGame with FPSCounter {
|
||||
static final fpsTextConfig = TextConfig(color: BasicPalette.white.color);
|
||||
|
||||
@override
|
||||
|
||||
@ -57,7 +57,6 @@ class Background extends PositionComponent with HasGameRef {
|
||||
|
||||
@override
|
||||
void render(Canvas c) {
|
||||
super.render(c);
|
||||
c.drawRect(hugeRect, white);
|
||||
}
|
||||
}
|
||||
|
||||
@ -47,7 +47,6 @@ class MovableSquare extends SquareComponent
|
||||
|
||||
@override
|
||||
void render(Canvas c) {
|
||||
super.render(c);
|
||||
final text = '(${x.toInt()}, ${y.toInt()})';
|
||||
textRenderer.render(c, text, size / 2, anchor: Anchor.center);
|
||||
}
|
||||
@ -96,7 +95,6 @@ class Map extends Component {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
canvas.drawRect(bounds, _paintBg);
|
||||
canvas.drawRect(bounds, _paintBorder);
|
||||
}
|
||||
|
||||
@ -51,7 +51,6 @@ class MyCollidable extends PositionComponent
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
renderHitboxes(canvas);
|
||||
}
|
||||
|
||||
|
||||
@ -76,7 +76,6 @@ abstract class MyCollidable extends PositionComponent
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
renderHitboxes(canvas, paint: _activePaint);
|
||||
if (_isDragged) {
|
||||
final localCenter = (scaledSize / 2).toOffset();
|
||||
|
||||
@ -30,7 +30,6 @@ class Square extends PositionComponent with HasGameRef<Priority>, Tappable {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
canvas.drawRect(size.toRect(), paint);
|
||||
}
|
||||
}
|
||||
|
||||
@ -107,7 +107,6 @@ class Compass extends PositionComponent {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
canvas.drawCircle(Offset(_radius, _radius), _radius, _bgPaint);
|
||||
canvas.drawPath(_marksPath, _marksPaint);
|
||||
}
|
||||
@ -144,7 +143,6 @@ class CompassArrow extends PositionComponent {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
canvas.drawPath(_northPath, _northPaint);
|
||||
canvas.drawPath(_southPath, _southPaint);
|
||||
}
|
||||
@ -193,7 +191,6 @@ class CompassRim extends PositionComponent {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
canvas.drawCircle(Offset(_radius, _radius), _radius - _width / 2, _bgPaint);
|
||||
canvas.drawCircle(Offset(_radius, _radius), _radius - _width, _marksPaint);
|
||||
canvas.drawPath(_marksPath, _marksPaint);
|
||||
|
||||
@ -15,7 +15,6 @@ class HoverableSquare extends PositionComponent with Hoverable {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
canvas.drawRect(size.toRect(), isHovered ? _grey : _white);
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,7 +15,6 @@ class TappableSquare extends PositionComponent with Tappable {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
canvas.drawRect(size.toRect(), currentPaint);
|
||||
}
|
||||
|
||||
|
||||
@ -17,7 +17,6 @@ class TappableSquare extends PositionComponent with Tappable {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
canvas.drawRect(size.toRect(), _beenPressed ? _grey : _white);
|
||||
}
|
||||
|
||||
|
||||
@ -561,7 +561,6 @@ class TrafficLightComponent extends Component {
|
||||
|
||||
@override
|
||||
void render(Canvas c) {
|
||||
super.render(c);
|
||||
c.drawRect(rect, Paint()..color = currentColor);
|
||||
}
|
||||
|
||||
|
||||
@ -20,7 +20,6 @@ class RenderedTimeComponent extends TimerComponent {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
textPaint.render(
|
||||
canvas,
|
||||
'Elapsed time: ${timer.current.toStringAsFixed(3)}',
|
||||
|
||||
@ -20,6 +20,7 @@
|
||||
- `randomColor` method in the `Color` extension
|
||||
- Calling super-method in `.render()` is now optional
|
||||
- Components that manipulate canvas state are now responsible for saving/restoring that state
|
||||
- Remove `super.render` calls that are no longer needed
|
||||
- Fixed typo in error message
|
||||
|
||||
## [1.0.0-releasecandidate.16]
|
||||
|
||||
@ -26,8 +26,6 @@ class Square extends PositionComponent {
|
||||
|
||||
@override
|
||||
void render(Canvas c) {
|
||||
super.render(c);
|
||||
|
||||
c.drawRect(size.toRect(), white);
|
||||
c.drawRect(const Rect.fromLTWH(0, 0, 3, 3), red);
|
||||
c.drawRect(Rect.fromLTWH(width / 2, height / 2, 3, 3), blue);
|
||||
|
||||
@ -36,8 +36,6 @@ class CustomPainterComponent extends PositionComponent {
|
||||
@override
|
||||
@mustCallSuper
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
|
||||
painter?.paint(canvas, size.toSize());
|
||||
}
|
||||
}
|
||||
|
||||
@ -66,8 +66,6 @@ class IsometricTileMapComponent extends PositionComponent {
|
||||
|
||||
@override
|
||||
void render(Canvas c) {
|
||||
super.render(c);
|
||||
|
||||
final size = effectiveTileSize;
|
||||
for (var i = 0; i < matrix.length; i++) {
|
||||
for (var j = 0; j < matrix[i].length; j++) {
|
||||
|
||||
@ -36,7 +36,6 @@ class NineTileBoxComponent extends PositionComponent {
|
||||
@mustCallSuper
|
||||
@override
|
||||
void render(Canvas c) {
|
||||
super.render(c);
|
||||
nineTileBox.drawRect(c, size.toRect());
|
||||
}
|
||||
}
|
||||
|
||||
@ -116,7 +116,6 @@ class ParallaxComponent<T extends FlameGame> extends PositionComponent
|
||||
@mustCallSuper
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
parallax?.render(canvas);
|
||||
}
|
||||
|
||||
|
||||
@ -25,7 +25,6 @@ class ParticleComponent extends Component {
|
||||
/// [Particle] within this [Component].
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
particle.render(canvas);
|
||||
}
|
||||
|
||||
|
||||
@ -34,7 +34,6 @@ class ShapeComponent extends PositionComponent {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
shape.render(canvas, paint);
|
||||
}
|
||||
|
||||
|
||||
@ -91,7 +91,6 @@ class SpriteAnimationComponent extends PositionComponent with HasPaint {
|
||||
@mustCallSuper
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
animation?.getSprite().render(
|
||||
canvas,
|
||||
size: size,
|
||||
|
||||
@ -102,7 +102,6 @@ class SpriteAnimationGroupComponent<T> extends PositionComponent with HasPaint {
|
||||
@mustCallSuper
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
animation?.getSprite().render(
|
||||
canvas,
|
||||
size: size,
|
||||
|
||||
@ -21,7 +21,6 @@ class SpriteBatchComponent extends Component {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
spriteBatch?.render(
|
||||
canvas,
|
||||
blendMode: blendMode,
|
||||
|
||||
@ -71,7 +71,6 @@ class SpriteComponent extends PositionComponent with HasPaint {
|
||||
@mustCallSuper
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
sprite?.render(
|
||||
canvas,
|
||||
size: size,
|
||||
|
||||
@ -48,7 +48,6 @@ class SpriteGroupComponent<T> extends PositionComponent with HasPaint {
|
||||
@mustCallSuper
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
sprite?.render(
|
||||
canvas,
|
||||
size: size,
|
||||
|
||||
@ -187,7 +187,6 @@ class TextBoxComponent<T extends TextRenderer> extends PositionComponent {
|
||||
if (_cache == null) {
|
||||
return;
|
||||
}
|
||||
super.render(c);
|
||||
c.save();
|
||||
c.scale(1 / pixelRatio);
|
||||
c.drawImage(_cache!, Offset.zero, _imagePaint);
|
||||
|
||||
@ -57,7 +57,6 @@ class TextComponent<T extends TextRenderer> extends PositionComponent {
|
||||
@mustCallSuper
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
_textRenderer.render(canvas, text, Vector2.zero());
|
||||
}
|
||||
}
|
||||
|
||||
@ -33,7 +33,6 @@ class MyComponent extends PositionComponent with Tappable, HasGameRef {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
isRenderCalled = true;
|
||||
}
|
||||
|
||||
|
||||
@ -17,7 +17,6 @@ class TestComponent extends PositionComponent {
|
||||
|
||||
@override
|
||||
void render(Canvas c) {
|
||||
super.render(c);
|
||||
c.drawRect(size.toRect(), _paint);
|
||||
}
|
||||
}
|
||||
|
||||
@ -100,7 +100,6 @@ class BGComponent extends Component with HasGameRef {
|
||||
|
||||
@override
|
||||
void render(Canvas c) {
|
||||
super.render(c);
|
||||
c.drawRect(gameRef.size.toRect(), paint);
|
||||
}
|
||||
}
|
||||
|
||||
@ -20,13 +20,13 @@ class FlareActorComponent extends PositionComponent {
|
||||
}
|
||||
|
||||
@override
|
||||
@mustCallSuper
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
flareAnimation.render(canvas, size);
|
||||
}
|
||||
|
||||
@mustCallSuper
|
||||
@override
|
||||
@mustCallSuper
|
||||
void update(double dt) {
|
||||
super.update(dt);
|
||||
flareAnimation.advance(dt);
|
||||
|
||||
@ -5,7 +5,6 @@ import 'dart:ui' as ui;
|
||||
import 'package:flame/components.dart';
|
||||
import 'package:flutter/rendering.dart';
|
||||
import 'package:rive/rive.dart';
|
||||
|
||||
// ignore_for_file: implementation_imports
|
||||
import 'package:rive/src/rive_core/math/aabb.dart';
|
||||
import 'package:rive/src/rive_core/math/mat2d.dart';
|
||||
@ -47,7 +46,6 @@ class RiveComponent extends PositionComponent {
|
||||
|
||||
@override
|
||||
void render(ui.Canvas canvas) {
|
||||
super.render(canvas);
|
||||
_renderer.render(canvas, size.toSize());
|
||||
}
|
||||
|
||||
|
||||
@ -16,7 +16,6 @@ class SvgComponent extends PositionComponent {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
svg.render(canvas, size);
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,7 +15,6 @@ class TiledComponent extends Component {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
tileMap.render(canvas);
|
||||
}
|
||||
|
||||
|
||||
@ -7,7 +7,6 @@ class Player extends PositionComponent {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
canvas.drawRect(size.toRect(), _paint);
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,7 +45,6 @@ class Player extends PositionComponent {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
canvas.drawRect(size.toRect(), _paint);
|
||||
}
|
||||
}
|
||||
|
||||
@ -41,7 +41,6 @@ class Player extends PositionComponent {
|
||||
|
||||
@override
|
||||
void render(Canvas canvas) {
|
||||
super.render(canvas);
|
||||
canvas.drawRect(size.toRect(), _paint);
|
||||
}
|
||||
|
||||
@ -133,7 +132,7 @@ removed from the Flutter widget tree.
|
||||
|
||||
Before we close this step, there is one small improvement that we can do. Right now, we are loading
|
||||
the sprite and passing it to our component. For now, this may seen fine, but imagine a game with
|
||||
a lot of components; if the game is responsible for loading assets for all coponents, our code can
|
||||
a lot of components; if the game is responsible for loading assets for all components, our code can
|
||||
become a mess quite fast.
|
||||
|
||||
Just like `FlameGame`, components also have an `onLoad` method that can be overridden to do
|
||||
|
||||
Reference in New Issue
Block a user