mirror of
https://github.com/flame-engine/flame.git
synced 2025-10-28 23:46:52 +08:00
This PR implements raytracing and raycasting for the built-in hitboxes. If you pass in your own collision detection system to the HasCollisionDetection mixin you have to change the signature of that to: CollisionDetection<ShapeHitbox>instead of CollisionDetection<Hitbox>.
51 lines
1.9 KiB
Dart
51 lines
1.9 KiB
Dart
import 'package:dashbook/dashbook.dart';
|
|
import 'package:examples/commons/commons.dart';
|
|
import 'package:examples/stories/collision_detection/circles_example.dart';
|
|
import 'package:examples/stories/collision_detection/collidable_animation_example.dart';
|
|
import 'package:examples/stories/collision_detection/multiple_shapes_example.dart';
|
|
import 'package:examples/stories/collision_detection/raycast_example.dart';
|
|
import 'package:examples/stories/collision_detection/raycast_light_example.dart';
|
|
import 'package:examples/stories/collision_detection/raytrace_example.dart';
|
|
import 'package:flame/game.dart';
|
|
|
|
void addCollisionDetectionStories(Dashbook dashbook) {
|
|
dashbook.storiesOf('Collision Detection')
|
|
..add(
|
|
'Collidable AnimationComponent',
|
|
(_) => GameWidget(game: CollidableAnimationExample()),
|
|
codeLink:
|
|
baseLink('collision_detection/collidable_animation_example.dart'),
|
|
info: CollidableAnimationExample.description,
|
|
)
|
|
..add(
|
|
'Circles',
|
|
(_) => GameWidget(game: CirclesExample()),
|
|
codeLink: baseLink('collision_detection/circles_example.dart'),
|
|
info: CirclesExample.description,
|
|
)
|
|
..add(
|
|
'Multiple shapes',
|
|
(_) => GameWidget(game: MultipleShapesExample()),
|
|
codeLink: baseLink('collision_detection/multiple_shapes_example.dart'),
|
|
info: MultipleShapesExample.description,
|
|
)
|
|
..add(
|
|
'Raycasting (light)',
|
|
(_) => GameWidget(game: RaycastLightExample()),
|
|
codeLink: baseLink('collision_detection/raycast_light_example.dart'),
|
|
info: RaycastLightExample.description,
|
|
)
|
|
..add(
|
|
'Raycasting',
|
|
(_) => GameWidget(game: RaycastExample()),
|
|
codeLink: baseLink('collision_detection/raycast_example.dart'),
|
|
info: RaycastExample.description,
|
|
)
|
|
..add(
|
|
'Raytracing',
|
|
(_) => GameWidget(game: RaytraceExample()),
|
|
codeLink: baseLink('collision_detection/raytrace.dart'),
|
|
info: RaytraceExample.description,
|
|
);
|
|
}
|