我尝试使用XCode的新PDF功能,基本上将图像缩放到1x,2x和3x.不幸的是我也在使用Spritekit,所以我宁愿使用SKTextureAtlases而不是资产目录.
我的问题是,pdf的栅格化版本看起来比Adobe Illustrator(或使用智能对象的Photoshop)的任何导出更好.
这是一个带有示例的Imgur专辑的链接.
具体来说,从Illustrator导出的图像有2个方形尺寸:60px和90px.Xcode中的图像都具有相同的名称,但有两个不同的地图集:atlas@2x.atlas和atlas@3x.atlas.PDF从Illustrator以30px的平方导出,然后Xcode将其缩放到2x和3x版本.
那么为什么Xcode版本看起来更清晰(特别是在圆角和平面之间的连接处)?
我有一个网页上运行,用画JavaScript客户端requestAnimationFrame到画布上,并通过沟通的WebSockets到我的NodeJS后端服务器(使用"WS"模块在服务器端).
使用Chrome DevTools进行分析,似乎每帧的脚本,渲染和绘制的总时间最多只有几毫秒.然而,仍有20至40毫秒的长时间帧.
时间线显示,在几乎所有这些情况下,都存在超过帧长度的"响应"和/或朝向末端发生的"复合层".
这基本上就是我使用requestAnimationFrame的方式:
function drawGame() {
// Drawing to gameCanvas from cacheCanvas
// cacheCanvas is updated whenever an update is received from the server
ctx.drawImage(cacheCanvas,
// source rectangle
0, 0,
gameCanvas.width*2, gameCanvas.height*2,
// destination
100, 100,
gameCanvas.width*2, gameCanvas.height*2
);
requestAnimationFrame(drawGame);
}
requestAnimationFrame(drawGame);
Run Code Online (Sandbox Code Playgroud)
服务器使用setInterval()以60hz发送更新.当从服务器收到消息时,客户端立即绘制它.我怀疑这个时间与requestAnimationFrame结合可能是不正确的,并且导致帧结尾处的复合层.
即使这样,我也很困惑为什么在每个帧的脚本和"复合层"之间有这么多空闲时间.所以...
有没有办法控制何时调用"复合层"?
我应该保存每个更新消息中的数据,只在下一个动画帧的开头绘制它吗?
什么是"回应"指的是什么?
谢谢!