just_game_engine 1.4.2 copy "just_game_engine: ^1.4.2" to clipboard
just_game_engine: ^1.4.2 copied to clipboard

A feature-rich 2D game engine for Flutter with ECS, physics, audio, tilemaps, particles, animation, and input systems for building cross-platform games.

example/example.dart

import 'package:flutter/material.dart';
import 'package:just_game_engine/just_game_engine.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  runApp(MaterialApp(home: MyGame()));
}

class MyGame extends StatefulWidget {
  const MyGame({super.key});

  @override
  State<MyGame> createState() => _MyGameState();
}

class _MyGameState extends State<MyGame> {
  late final Engine _engine;
  late final World _world;
  final GlobalKey _gameWidgetKey = GlobalKey();

  Size _readViewportSize() {
    final renderObject = _gameWidgetKey.currentContext?.findRenderObject();
    if (renderObject is RenderBox && renderObject.hasSize) {
      return renderObject.size;
    }
    return MediaQuery.sizeOf(context);
  }

  @override
  void initState() {
    super.initState();
    _engine = Engine();
    _init();
  }

  @override
  void dispose() {
    _engine.dispose();
    super.dispose();
  }

  Future<void> _init() async {
    await _engine.initialize();
    _world = _engine.world;

    // Add core ECS systems
    _world.addSystem(RenderSystem());

    // Create a player entity with ECS components
    _world.createEntityWithComponents([
      TransformComponent(
        position: Offset(
          _readViewportSize().width / 2,
          _readViewportSize().height / 2,
        ),
      ),
      VelocityComponent(velocity: const Offset(100, 0)),
      RenderableComponent(
        renderable: CircleRenderable(radius: 30, fillColor: Colors.blue),
      ),
    ], name: 'Player');

    _engine.start();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: GameWidget(key: _gameWidgetKey, engine: _engine),
    );
  }
}
6
likes
0
points
309
downloads

Publisher

verified publisherjustunknown.com

Weekly Downloads

A feature-rich 2D game engine for Flutter with ECS, physics, audio, tilemaps, particles, animation, and input systems for building cross-platform games.

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, flutter_soloud, just_database, just_signals, just_storage, just_tiled, meta, web

More

Packages that depend on just_game_engine