Rename Hitbox mixin to HasHitboxes (#1060)

This commit is contained in:
Lukas Klingsbo
2021-11-02 12:44:21 +01:00
committed by GitHub
parent d9984c7bda
commit 3a8abe139b
13 changed files with 21 additions and 20 deletions

View File

@ -13,7 +13,7 @@ final R = Random();
class MovableSquare extends SquareComponent
with
Hitbox,
HasHitboxes,
Collidable,
HasGameRef<CameraAndViewportGame>,
KeyboardHandler {
@ -106,7 +106,7 @@ class Map extends Component {
}
}
class Rock extends SquareComponent with Hitbox, Collidable, Tappable {
class Rock extends SquareComponent with HasHitboxes, Collidable, Tappable {
static final unpressedPaint = Paint()..color = const Color(0xFF2222FF);
static final pressedPaint = Paint()..color = const Color(0xFF414175);

View File

@ -14,7 +14,7 @@ circle both of them will change color.
''';
class MyCollidable extends PositionComponent
with HasGameRef<Circles>, Hitbox, Collidable {
with HasGameRef<Circles>, HasHitboxes, Collidable {
late Vector2 velocity;
final _collisionColor = Colors.amber;
final _defaultColor = Colors.cyan;

View File

@ -25,7 +25,7 @@ direction.
enum Shapes { circle, rectangle, polygon }
abstract class MyCollidable extends PositionComponent
with Draggable, Hitbox, Collidable {
with Draggable, HasHitboxes, Collidable {
double rotationSpeed = 0.0;
final Vector2 velocity;
final delta = Vector2.zero();

View File

@ -4,6 +4,7 @@
- Added `StandardEffectController` class
- Refactored `Effect` class to use `EffectController`, added `Transform2DEffect` class
- Clarified `TimerComponent` example
- Rename `Hitbox` mixin to `HasHitboxes`
- Added `RemoveEffect` and `SimpleEffectController`
## [1.0.0-releasecandidate.16]

View File

@ -16,7 +16,7 @@ enum CollidableType {
inactive,
}
mixin Collidable on Hitbox {
mixin Collidable on HasHitboxes {
CollidableType collidableType = CollidableType.active;
void onCollision(Set<Vector2> intersectionPoints, Collidable other) {}
@ -48,7 +48,7 @@ mixin Collidable on Hitbox {
}
class ScreenCollidable<T extends FlameGame> extends PositionComponent
with Hitbox, Collidable, HasGameRef<T> {
with HasHitboxes, Collidable, HasGameRef<T> {
@override
CollidableType collidableType = CollidableType.passive;

View File

@ -5,7 +5,7 @@ import '../../../extensions.dart';
import '../../geometry/shape.dart';
import '../position_component.dart';
mixin Hitbox on PositionComponent {
mixin HasHitboxes on PositionComponent {
final List<HitboxShape> _hitboxes = <HitboxShape>[];
UnmodifiableListView<HitboxShape> get hitboxes {
@ -42,7 +42,7 @@ mixin Hitbox on PositionComponent {
/// Since this is a cheaper calculation than checking towards all shapes, this
/// check can be done first to see if it even is possible that the shapes can
/// overlap, since the shapes have to be within the size of the component.
bool possiblyOverlapping(Hitbox other) {
bool possiblyOverlapping(HasHitboxes other) {
final maxDistance = other.scaledSize.length + scaledSize.length;
return other.absoluteCenter.distanceToSquared(absoluteCenter) <=
maxDistance * maxDistance;

View File

@ -11,7 +11,7 @@ class TestGame extends FlameGame with HasCollidables {
}
}
class TestBlock extends PositionComponent with Hitbox, Collidable {
class TestBlock extends PositionComponent with HasHitboxes, Collidable {
final List<Collidable> collisions = List.empty(growable: true);
TestBlock(Vector2 position, Vector2 size, CollidableType type)

View File

@ -28,7 +28,7 @@ class TestHitbox extends HitboxRectangle {
}
}
class TestBlock extends PositionComponent with Hitbox, Collidable {
class TestBlock extends PositionComponent with HasHitboxes, Collidable {
final Set<Collidable> collisions = {};
final hitbox = TestHitbox();
int endCounter = 0;

View File

@ -3,7 +3,7 @@ import 'package:flame/game.dart';
import 'package:flame_test/flame_test.dart';
import 'package:flutter_test/flutter_test.dart';
class MyCollidable extends PositionComponent with Hitbox, Collidable {}
class MyCollidable extends PositionComponent with HasHitboxes, Collidable {}
void main() {
group('HasCollidables', () {

View File

@ -9,7 +9,7 @@ import 'package:flame/geometry.dart';
import 'package:flame_test/flame_test.dart';
import 'package:test/test.dart';
class MyHitboxComponent extends PositionComponent with Hitbox {}
class MyHitboxComponent extends PositionComponent with HasHitboxes {}
class MyDebugComponent extends PositionComponent {
int? precision = 0;
@ -101,7 +101,7 @@ void main() {
});
test('component with hitbox contains point', () {
final Hitbox component = MyHitboxComponent();
final HasHitboxes component = MyHitboxComponent();
component.position.setValues(1.0, 1.0);
component.anchor = Anchor.topLeft;
component.size.setValues(2.0, 2.0);
@ -118,7 +118,7 @@ void main() {
});
test('component with anchor topLeft contains point on edge', () {
final Hitbox component = MyHitboxComponent();
final HasHitboxes component = MyHitboxComponent();
component.position.setValues(-1, -1);
component.anchor = Anchor.topLeft;
component.size.setValues(2.0, 2.0);
@ -132,7 +132,7 @@ void main() {
});
test('component with anchor bottomRight contains point on edge', () {
final Hitbox component = MyHitboxComponent();
final HasHitboxes component = MyHitboxComponent();
component.position.setValues(1, 1);
component.anchor = Anchor.bottomRight;
component.size.setValues(2.0, 2.0);
@ -146,7 +146,7 @@ void main() {
});
test('component with anchor topRight does not contain close points', () {
final Hitbox component = MyHitboxComponent();
final HasHitboxes component = MyHitboxComponent();
component.position.setValues(1, 1);
component.anchor = Anchor.topLeft;
component.size.setValues(2.0, 2.0);
@ -160,7 +160,7 @@ void main() {
});
test('component with hitbox does not contains point', () {
final Hitbox component = MyHitboxComponent();
final HasHitboxes component = MyHitboxComponent();
component.position.setValues(1.0, 1.0);
component.anchor = Anchor.topLeft;
component.size.setValues(2.0, 2.0);

View File

@ -6,7 +6,7 @@ import '../game.dart';
import 'enemy.dart';
class BulletComponent extends SpriteAnimationComponent
with HasGameRef<SpaceShooterGame>, Hitbox, Collidable {
with HasGameRef<SpaceShooterGame>, HasHitboxes, Collidable {
static const bulletSpeed = -500;
bool destroyed = false;

View File

@ -5,7 +5,7 @@ import './explosion.dart';
import '../game.dart';
class EnemyComponent extends SpriteAnimationComponent
with HasGameRef<SpaceShooterGame>, Hitbox, Collidable {
with HasGameRef<SpaceShooterGame>, HasHitboxes, Collidable {
static const enemySpeed = 50;
bool destroyed = false;

View File

@ -36,7 +36,7 @@ class PlayerController extends Component
class PlayerComponent extends SpriteAnimationComponent
with
HasGameRef<SpaceShooterGame>,
Hitbox,
HasHitboxes,
Collidable,
KeyboardHandler,
BlocComponent<InventoryBloc, InventoryState> {