Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(400)

Unified Diff: samples/pop_pop_win/lib/src/canvas/game_root.dart

Issue 242443008: samples/pop_pop_win: now based on StageXL (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: tiny nit Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: samples/pop_pop_win/lib/src/canvas/game_root.dart
diff --git a/samples/pop_pop_win/lib/src/canvas/game_root.dart b/samples/pop_pop_win/lib/src/canvas/game_root.dart
deleted file mode 100644
index fdd719059d85ec4fec72f522ab5bf611a1bf3961..0000000000000000000000000000000000000000
--- a/samples/pop_pop_win/lib/src/canvas/game_root.dart
+++ /dev/null
@@ -1,148 +0,0 @@
-part of pop_pop_win.canvas;
-
-class GameRoot extends GameManager {
- final Stage _stage;
- final CanvasElement _canvas;
- final GameElement _gameElement;
- final AffineTransform _gameElementTx;
-
- bool _frameRequested = false;
-
- factory GameRoot(int width, int height, int bombCount,
- CanvasElement canvasElement, TextureData textureData) {
-
- final rootElement = new GameElement(textureData);
- final stage = new Stage(canvasElement, rootElement);
- new MouseManager(stage);
-
- return new GameRoot._internal(width, height, bombCount,
- canvasElement, stage, rootElement);
- }
-
- GameRoot._internal(int width, int height, int bombCount,
- this._canvas, this._stage, GameElement gameElement) :
- this._gameElement = gameElement,
- _gameElementTx = gameElement.addTransform(),
- super(width, height, bombCount) {
-
- _gameElement.setGameManager(this);
- _stage.invalidated.listen(_stageInvalidated);
-
- _gameElement.newGameClick.listen((args) => newGame());
-
- MouseManager.getMouseMoveStream(_gameElement).listen(_mouseMoveHandler);
- MouseManager.getMouseOutStream(_stage).listen(_mouseOutHandler);
-
- window.onResize.listen((args) => _updateCanvasSize());
- _updateCanvasSize();
- }
-
- void newGame() {
- super.newGame();
- _gameElement.game = super.game;
- _requestFrame();
- }
-
- bool get canRevealTarget => _gameElement.canRevealTarget;
-
- bool get canFlagTarget => _gameElement.canFlagTarget;
-
- void revealTarget() => _gameElement.revealTarget();
-
- void toggleTargetFlag() => _gameElement.toggleTargetFlag();
-
- Stream get targetChanged => _gameElement.targetChanged;
-
- void onGameStateChanged(GameState newState) {
- switch (newState) {
- case GameState.won:
- GameAudio.win();
- break;
- }
- }
-
- void _updateCanvasSize() {
- final windowSize = new Size(window.innerWidth, window.innerHeight);
-
- _canvas.width = min(windowSize.width, _gameElement.width).toInt();
- _canvas.height = min(windowSize.height, _gameElement.height).toInt();
-
- // now move it!
- final delta = new Vector(windowSize.width - _canvas.width,
- windowSize.height - _canvas.height).scale(0.5);
-
- _canvas.style.left = "${delta.x.toInt()}px";
-
- // add a little padding at the top (up to 20) if there's room
- // but don't try to vertically center
- final topDelta = min(delta.y, 20).toInt();
- _canvas.style.top = "${topDelta}px";
-
- _requestFrame();
- }
-
- void _requestFrame() {
- if (!_frameRequested) {
- _frameRequested = true;
- window.requestAnimationFrame(_onFrame);
- }
- }
-
- void _onFrame(double time) {
- final boardInnerBox = _gameElement._scaledInnerBox;
- final xScale = _stage.size.width / boardInnerBox.width;
- final yScale = _stage.size.height / boardInnerBox.height;
-
- final prettyScale = min(1, min(xScale, yScale));
-
- final newDimensions = _gameElement.size * prettyScale;
-
- final delta = new Vector(_stage.size.width - newDimensions.width,
- min(40, _stage.size.height - newDimensions.height))
- .scale(0.5)
- .scale(1/prettyScale);
-
- _gameElementTx.setToScale(prettyScale, prettyScale);
- _gameElementTx.translate(delta.x, delta.y);
-
- var updated = _stage.draw();
- _frameRequested = false;
- if (updated) {
- _requestFrame();
- }
- }
-
- void updateClock() {
- _requestFrame();
- super.updateClock();
- }
-
- void gameUpdated(args) {
- _requestFrame();
- }
-
- void _stageInvalidated(args) {
- _requestFrame();
- }
-
- void _mouseMoveHandler(ThingMouseEventArgs args) {
- bool showPointer = false;
- if (!game.gameEnded && args.thing is SquareElement) {
- final SquareElement se = args.thing;
- showPointer = game.canReveal(se.x, se.y);
- } else if (args.thing is NewGameElement) {
- showPointer = true;
- } else if (args.thing is GameTitleElement) {
- showPointer = true;
- }
- _updateCursor(showPointer);
- }
-
- void _mouseOutHandler(args) {
- _updateCursor(false);
- }
-
- void _updateCursor(bool showFinger) {
- _canvas.style.cursor = showFinger ? 'pointer' : 'inherit';
- }
-}
« no previous file with comments | « samples/pop_pop_win/lib/src/canvas/game_element.dart ('k') | samples/pop_pop_win/lib/src/canvas/new_game_element.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698