@@ -11784,10 +11784,9 @@ steps:
1178411784 Ground(Vector2 position, Sprite sprite)
1178511785 : super(
1178611786 renderBody: false,
11787- bodyDef:
11788- BodyDef()
11789- ..position = position
11790- ..type = BodyType.static,
11787+ bodyDef: BodyDef()
11788+ ..position = position
11789+ ..type = BodyType.static,
1179111790 fixtureDefs: [
1179211791 FixtureDef(
1179311792 PolygonShape()..setAsBoxXY(groundSize / 2, groundSize / 2),
@@ -11970,30 +11969,30 @@ steps:
1197011969 // Copyright 2024 The Flutter Authors. All rights reserved.
1197111970 // Use of this source code is governed by a BSD-style license that can be
1197211971 // found in the LICENSE file.
11973-
11972+
1197411973 import 'dart:math';
1197511974 import 'dart:ui' as ui;
11976-
11975+
1197711976 import 'package:flame/components.dart';
1197811977 import 'package:flame/extensions.dart';
1197911978 import 'package:flame_forge2d/flame_forge2d.dart';
11980-
11979+
1198111980 const brickScale = 0.5;
11982-
11981+
1198311982 enum BrickType {
1198411983 explosive(density: 1, friction: 0.5),
1198511984 glass(density: 0.5, friction: 0.2),
1198611985 metal(density: 1, friction: 0.4),
1198711986 stone(density: 2, friction: 1),
1198811987 wood(density: 0.25, friction: 0.6);
11989-
11988+
1199011989 final double density;
1199111990 final double friction;
11992-
11991+
1199311992 const BrickType({required this.density, required this.friction});
1199411993 static BrickType get randomType => values[Random().nextInt(values.length)];
1199511994 }
11996-
11995+
1199711996 enum BrickSize {
1199811997 size70x70(ui.Size(70, 70)),
1199911998 size140x70(ui.Size(140, 70)),
@@ -12003,16 +12002,16 @@ steps:
1200312002 size220x140(ui.Size(220, 140)),
1200412003 size140x220(ui.Size(140, 220)),
1200512004 size70x220(ui.Size(70, 220));
12006-
12005+
1200712006 final ui.Size size;
12008-
12007+
1200912008 const BrickSize(this.size);
12010-
12009+
1201112010 static BrickSize get randomSize => values[Random().nextInt(values.length)];
1201212011 }
12013-
12012+
1201412013 enum BrickDamage { none, some, lots }
12015-
12014+
1201612015 Map<BrickDamage, String> brickFileNames(BrickType type, BrickSize size) {
1201712016 return switch ((type, size)) {
1201812017 (BrickType.explosive, BrickSize.size140x70) => {
@@ -12217,7 +12216,7 @@ steps:
1221712216 },
1221812217 };
1221912218 }
12220-
12219+
1222112220 class Brick extends BodyComponent {
1222212221 Brick({
1222312222 required this.type,
@@ -12229,10 +12228,9 @@ steps:
1222912228 _sprites = sprites,
1223012229 super(
1223112230 renderBody: false,
12232- bodyDef:
12233- BodyDef()
12234- ..position = position
12235- ..type = BodyType.dynamic,
12231+ bodyDef: BodyDef()
12232+ ..position = position
12233+ ..type = BodyType.dynamic,
1223612234 fixtureDefs: [
1223712235 FixtureDef(
1223812236 PolygonShape()..setAsBoxXY(
@@ -12245,20 +12243,20 @@ steps:
1224512243 ..friction = type.friction,
1224612244 ],
1224712245 );
12248-
12246+
1224912247 late final SpriteComponent _spriteComponent;
12250-
12248+
1225112249 final BrickType type;
1225212250 final BrickSize size;
1225312251 final Map<BrickDamage, Sprite> _sprites;
12254-
12252+
1225512253 BrickDamage _damage;
1225612254 BrickDamage get damage => _damage;
1225712255 set damage(BrickDamage value) {
1225812256 _damage = value;
1225912257 _spriteComponent.sprite = _sprites[value];
1226012258 }
12261-
12259+
1226212260 @override
1226312261 Future<void> onLoad() {
1226412262 _spriteComponent = SpriteComponent(
@@ -12331,9 +12329,6 @@ steps:
1233112329 + }
1233212330 + }
1233312331 }
12334- - name: Format lib/components/game.dart
12335- path: forge2d_game
12336- dart: format lib/components/game.dart
1233712332 - name: Build web app
1233812333 path: forge2d_game
1233912334 flutter: build web
@@ -12383,12 +12378,11 @@ steps:
1238312378 : _sprite = sprite,
1238412379 super(
1238512380 renderBody: false,
12386- bodyDef:
12387- BodyDef()
12388- ..position = position
12389- ..type = BodyType.static
12390- ..angularDamping = 0.1
12391- ..linearDamping = 0.1,
12381+ bodyDef: BodyDef()
12382+ ..position = position
12383+ ..type = BodyType.static
12384+ ..angularDamping = 0.1
12385+ ..linearDamping = 0.1,
1239212386 fixtureDefs: [
1239312387 FixtureDef(CircleShape()..radius = playerSize / 2)
1239412388 ..restitution = 0.4
@@ -12683,10 +12677,9 @@ steps:
1268312677 Enemy(Vector2 position, Sprite sprite)
1268412678 : super(
1268512679 renderBody: false,
12686- bodyDef:
12687- BodyDef()
12688- ..position = position
12689- ..type = BodyType.dynamic,
12680+ bodyDef: BodyDef()
12681+ ..position = position
12682+ ..type = BodyType.dynamic,
1269012683 fixtureDefs: [
1269112684 FixtureDef(
1269212685 PolygonShape()..setAsBoxXY(enemySize / 2, enemySize / 2),
0 commit comments