stagexl_interactive_chessboard 1.1.0 copy "stagexl_interactive_chessboard: ^1.1.0" to clipboard
stagexl_interactive_chessboard: ^1.1.0 copied to clipboard

An interactive chessboard written for StageXL which allows players to move pieces.

example/main.dart

import 'dart:async';
import 'dart:html' as html;
import 'package:stagexl/stagexl.dart';
import 'package:stagexl_interactive_chessboard/stagexl_interactive_chessboard.dart';
import 'dart:math';
import 'package:chess/chess.dart' as Chess;

Stage stage;

Future<Null> main() async {
  StageOptions options = StageOptions()
    ..backgroundColor = Color.White
    ..stageScaleMode =StageScaleMode.NO_SCALE
    ..stageAlign =StageAlign.TOP_LEFT
    ..renderEngine = RenderEngine.WebGL;

  var canvas = html.querySelector('#stage');
  stage = Stage(canvas, width: 1280, height: 800, options: options);

  var renderLoop = RenderLoop();
  renderLoop.addStage(stage);

  Chessboard board = Chessboard();
  stage.addChild(board);
  board.blackAtTop = false;
  num size = min(stage.stageWidth, stage.stageHeight);
  size -= 20;
  board.setSize(size, size);

  board.x = (stage.stageWidth - board.width) / 2;
  board.y = (stage.stageHeight - board.height) / 2;
  
  Chess.Chess chess = Chess.Chess()
    ..move("e3")
    ..move("e5")
    ..move("Qe2")
    ..move("d5");
  board.loadFromChessObject(chess);

  board.onSquareClicked.listen((ChessEvent event) {
    board.resetAllSquareColors();
    board.setSquareBackgroundColor(event.squareName, 0xaa27b243);

    List<Chess.Move> moves = chess.generate_moves({"square": event.squareName});
    for (Chess.Move move in moves) {
      board.setSquareBackgroundColor(move.to, 0xaaffffb2);
    }
  });
}
0
likes
40
pub points
0%
popularity

Publisher

unverified uploader

An interactive chessboard written for StageXL which allows players to move pieces.

Repository (GitHub)
View/report issues

License

GPL-3.0 (LICENSE)

Dependencies

chess, stagexl, stagexl_chess_pieces

More

Packages that depend on stagexl_interactive_chessboard