Pixi.js Retina显示画布的尺寸增加了一倍

时间:2015-03-19 10:38:58

标签: javascript retina-display pixi.js

我有一些问题让pixi.js 2. +与视网膜显示器一起工作。

scale = window.devicePixelRatio
width = 960
height = 500

renderer = new (PIXI.CanvasRenderer)(width, height,{resolution:scale})
stage = new PIXI.Stage(0xFFFFFF)    

if scale is 2
    bgImg = 'img@x2.png'
else
    bgImg = 'img.png'
background = PIXI.Sprite.fromImage bgImg
stage.addChild background

以上代码生成的画布和图像在非视网膜上都具有正确的比例。但是,当我在视网膜显示器上运行时,画布的大小是其两倍,图像大小是其4倍。我做错了什么?

2 个答案:

答案 0 :(得分:3)

@ 2x是正确的。它可以是文件夹名称,也可以附加到图像名称。

assets/@2x/image.png或assets/image@2x.png

关于画布调整大小问题,您可以运行它并查看是否存在相同的问题。 http://adireddy.github.io/demos/haxe-pixi/v3/retina.html

答案 1 :(得分:3)

感谢@Adi我得到了它的工作。也许我必须设置宽度&在附加之前画布上的高度。不太确定,但它有效

@scale = window.devicePixelRatio
width = 960
height = 556

@_canvas = window.document.createElement("canvas")
@_canvas.style.width = width + "px"
@_canvas.style.height = height + "px"
container = document.getElementById 'container'
container.appendChild(@_canvas)

renderingOptions = 
  view: @_canvas
  resolution: @scale

renderer = new PIXI.CanvasRenderer(width, height, renderingOptions)