mirror of
https://github.com/flame-engine/flame.git
synced 2025-11-01 19:12:31 +08:00
Rename Hitbox mixin to HasHitboxes (#1060)
This commit is contained in:
@ -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);
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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', () {
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -36,7 +36,7 @@ class PlayerController extends Component
|
||||
class PlayerComponent extends SpriteAnimationComponent
|
||||
with
|
||||
HasGameRef<SpaceShooterGame>,
|
||||
Hitbox,
|
||||
HasHitboxes,
|
||||
Collidable,
|
||||
KeyboardHandler,
|
||||
BlocComponent<InventoryBloc, InventoryState> {
|
||||
|
||||
Reference in New Issue
Block a user