# free viewport Crafty.viewport.clampToEntities = false # attach viewport to an entity twice as big as a playmat Crafty.viewport.follow( Crafty.e('2D, Canvas') .attr { w: 1 * CONF.playmat.w h: 2 * CONF.playmat.h } .origin('center') ) # scale viewport automatically (show that new entity) Crafty.bind 'ViewportResize', -> sX = @viewport._width / (1 * CONF.playmat.w) sY = @viewport._height / (2 * CONF.playmat.h) @viewport.scale Math.min(sX, sY) return # force scale adjustment Crafty.trigger 'ViewportResize' # Testing playmat # custom playmats at https://imgur.com/a/VSosu#cwGQdAS Crafty.sprite 997, 582, '//i.imgur.com/cwGQdAS.png', playmat: [ 0 0 ] Crafty.e('playmat, 2D, Canvas') .attr { x: 0 y: 900 w: 1600 h: 900 } Crafty.e('playmat, 2D, Canvas') .attr { x: 0 y: 900 w: 1600 h: 900 } .origin('top middle') .attr { rotation: 180 } # Testing some entities Crafty.sprite 480, 670, '//www.fftcgmognet.com/images/cards/hd/1/1/107.jpg', shantotto: [ 0 0 ] card = Crafty.e('shantotto, AllyCard') .attr { x: 0 y: 0 } .bind 'DoubleClick', -> @destroy() return Crafty.e('shantotto, AllyCard') .place 300, 0 Crafty.e('shantotto, AllyCard') .place 600, 0 Crafty.e('shantotto, EnemyCard') .place 900, 0 # Crafty.e("shantotto, AllyCard") # .attr({ x: 0, y: 0, w: 1200, h: 1675 });