@@ -11784,10 +11784,9 @@ steps:
11784
11784
Ground(Vector2 position, Sprite sprite)
11785
11785
: super(
11786
11786
renderBody: false,
11787
- bodyDef:
11788
- BodyDef()
11789
- ..position = position
11790
- ..type = BodyType.static,
11787
+ bodyDef: BodyDef()
11788
+ ..position = position
11789
+ ..type = BodyType.static,
11791
11790
fixtureDefs: [
11792
11791
FixtureDef(
11793
11792
PolygonShape()..setAsBoxXY(groundSize / 2, groundSize / 2),
@@ -11970,30 +11969,30 @@ steps:
11970
11969
// Copyright 2024 The Flutter Authors. All rights reserved.
11971
11970
// Use of this source code is governed by a BSD-style license that can be
11972
11971
// found in the LICENSE file.
11973
-
11972
+
11974
11973
import 'dart:math';
11975
11974
import 'dart:ui' as ui;
11976
-
11975
+
11977
11976
import 'package:flame/components.dart';
11978
11977
import 'package:flame/extensions.dart';
11979
11978
import 'package:flame_forge2d/flame_forge2d.dart';
11980
-
11979
+
11981
11980
const brickScale = 0.5;
11982
-
11981
+
11983
11982
enum BrickType {
11984
11983
explosive(density: 1, friction: 0.5),
11985
11984
glass(density: 0.5, friction: 0.2),
11986
11985
metal(density: 1, friction: 0.4),
11987
11986
stone(density: 2, friction: 1),
11988
11987
wood(density: 0.25, friction: 0.6);
11989
-
11988
+
11990
11989
final double density;
11991
11990
final double friction;
11992
-
11991
+
11993
11992
const BrickType({required this.density, required this.friction});
11994
11993
static BrickType get randomType => values[Random().nextInt(values.length)];
11995
11994
}
11996
-
11995
+
11997
11996
enum BrickSize {
11998
11997
size70x70(ui.Size(70, 70)),
11999
11998
size140x70(ui.Size(140, 70)),
@@ -12003,16 +12002,16 @@ steps:
12003
12002
size220x140(ui.Size(220, 140)),
12004
12003
size140x220(ui.Size(140, 220)),
12005
12004
size70x220(ui.Size(70, 220));
12006
-
12005
+
12007
12006
final ui.Size size;
12008
-
12007
+
12009
12008
const BrickSize(this.size);
12010
-
12009
+
12011
12010
static BrickSize get randomSize => values[Random().nextInt(values.length)];
12012
12011
}
12013
-
12012
+
12014
12013
enum BrickDamage { none, some, lots }
12015
-
12014
+
12016
12015
Map<BrickDamage, String> brickFileNames(BrickType type, BrickSize size) {
12017
12016
return switch ((type, size)) {
12018
12017
(BrickType.explosive, BrickSize.size140x70) => {
@@ -12217,7 +12216,7 @@ steps:
12217
12216
},
12218
12217
};
12219
12218
}
12220
-
12219
+
12221
12220
class Brick extends BodyComponent {
12222
12221
Brick({
12223
12222
required this.type,
@@ -12229,10 +12228,9 @@ steps:
12229
12228
_sprites = sprites,
12230
12229
super(
12231
12230
renderBody: false,
12232
- bodyDef:
12233
- BodyDef()
12234
- ..position = position
12235
- ..type = BodyType.dynamic,
12231
+ bodyDef: BodyDef()
12232
+ ..position = position
12233
+ ..type = BodyType.dynamic,
12236
12234
fixtureDefs: [
12237
12235
FixtureDef(
12238
12236
PolygonShape()..setAsBoxXY(
@@ -12245,20 +12243,20 @@ steps:
12245
12243
..friction = type.friction,
12246
12244
],
12247
12245
);
12248
-
12246
+
12249
12247
late final SpriteComponent _spriteComponent;
12250
-
12248
+
12251
12249
final BrickType type;
12252
12250
final BrickSize size;
12253
12251
final Map<BrickDamage, Sprite> _sprites;
12254
-
12252
+
12255
12253
BrickDamage _damage;
12256
12254
BrickDamage get damage => _damage;
12257
12255
set damage(BrickDamage value) {
12258
12256
_damage = value;
12259
12257
_spriteComponent.sprite = _sprites[value];
12260
12258
}
12261
-
12259
+
12262
12260
@override
12263
12261
Future<void> onLoad() {
12264
12262
_spriteComponent = SpriteComponent(
@@ -12331,9 +12329,6 @@ steps:
12331
12329
+ }
12332
12330
+ }
12333
12331
}
12334
- - name: Format lib/components/game.dart
12335
- path: forge2d_game
12336
- dart: format lib/components/game.dart
12337
12332
- name: Build web app
12338
12333
path: forge2d_game
12339
12334
flutter: build web
@@ -12383,12 +12378,11 @@ steps:
12383
12378
: _sprite = sprite,
12384
12379
super(
12385
12380
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,
12392
12386
fixtureDefs: [
12393
12387
FixtureDef(CircleShape()..radius = playerSize / 2)
12394
12388
..restitution = 0.4
@@ -12683,10 +12677,9 @@ steps:
12683
12677
Enemy(Vector2 position, Sprite sprite)
12684
12678
: super(
12685
12679
renderBody: false,
12686
- bodyDef:
12687
- BodyDef()
12688
- ..position = position
12689
- ..type = BodyType.dynamic,
12680
+ bodyDef: BodyDef()
12681
+ ..position = position
12682
+ ..type = BodyType.dynamic,
12690
12683
fixtureDefs: [
12691
12684
FixtureDef(
12692
12685
PolygonShape()..setAsBoxXY(enemySize / 2, enemySize / 2),
0 commit comments