草庐IT

canvas2d

全部标签

javascript - 如何在 Canvas 中旋转一个图像?

我正在制作一个HTML5canvas游戏,我希望旋转其中一个图像。varlink=newImage();link.src='img/link.png';link.onload=function(){ctx.drawImage(link,x,y,20,20);//drawsachainlinkordagger}我想旋转这张图片。旋转图像的标准方法是在Canvas上下文对象上设置旋转。但是,这会旋转整个游戏!我不想那样做,只想旋转这个Sprite。我该怎么做? 最佳答案 使用.save()和.restore()(moreinformat

JavaScript Canvas - 改变图像的不透明度

我正在尝试在Canvas中创建平台游戏。我有主Angular和一些敌人。当玩家接触到敌人时,他会损失一些生命值,并在大约3秒内无法接触。现在我有一个问题。失去HP后,我想将Angular色图像的不透明度设置为0.5(以显示不可触摸的东西)。varmainchar=newImage();mainchar.src='mainch.png';我不想使用ctx.globalCompositeOperation="lighter"或ctx.globalAlpha=0.5因为它们都会改变所有元素的不透明度(它是全局的).有什么办法可以改变图像的不透明度吗?例如'mainchar.changeopa

javascript - Three.js - 在 THREE.Points 上用于透明 Canvas 纹理贴图的 depthWrite 与 depthTest

问题depthWrite:false和depthTest:false之间有显着差异吗?使用depthTest是否提供性能优势?选择一个或另一个会牺牲功能吗?原始问题我想渲染一个THREE.Points对象,每个点都有半透明的圆圈。我使用了从canvas元素加载的THREE.Texture并将其传递给THREE.PointsMaterial上的map属性>.透明度没有完全起作用,一些圆圈很好地重叠,但其他圆圈表现得好像它们是实心的。我在了解了THREE.PointsMaterial上的depthWrite:false和depthTest:false后修复了它。我在哪里我有一个代码示例(嵌

javascript - Chrome 中的 Canvas 错误

我似乎在Chrome的Canvas实现中偶然发现了一个错误。如果您创建一个宽度较大的Canvas元素(例如17000),则在Canvas下方一定距离后绘制到该Canvas的任何路径都将绘制为只有一两个像素的宽度。此外,宽度不能是整个像素,否则根本不会绘制。这是一个说明问题的例子。这两个矩形的宽度应该相同,但实际上不是。http://jsbin.com/ehuvew/2/edit有人遇到过吗?有人知道解决方法吗? 最佳答案 我在chromeVersão19.0.1084.52(Ubuntu)上检查并确认了上述行为还检查了它出现的限制及

javascript - Facebook Canvas,无法在移动设备上从 Facebook 登录

我有一个canvasfacebook应用程序,它有一个网页和一个指定的移动页面。该网页运行良好,并且在使用控制台将浏览器模拟到移动设备时一切正常。但是,当我尝试从Facebook移动应用程序运行该应用程序时,Canvas应用程序会加载(这是正确的),但它不会登录。我正在使用FB.login函数。login:function(){vardeferred=$q.defer();FB.login(function(response){if(!response||response.error){deferred.reject('Erroroccured');}else{deferred.res

javascript - 浏览器之间的 filltext() Canvas 文本位置差异

从问题底部的屏幕截图中可以看出,或者通过directlytothegame.文本的放置方式因浏览器而异(firefox15.0.1的呈现方式与IE9.9和Chrome21不同)。调用绘制函数:context.fillText(this.wlines[i],this.xcoord,this.ycoord+y+(t)*this.sizey);对象的构造函数:functiontextItem(text,xcoord,ycoord,sizex,sizey,style,context){this.wlines=[];this.text=text;this.xcoord=xcoord;this.y

javascript - 更好的 Canvas 运动模糊

已经askedbefore,但公认的解决方案对我不起作用(从字面上看,链接的演示中对我来说没有任何模糊之处),而且涉及两个Canvas元素有点困惑。我目前正在使用“穷人的”运动模糊技术,它基本上涉及将源图像一遍又一遍地传输到Canvas,并在每次迭代后在顶部放置一个与背景颜色相同的半透明矩形。这是一个演示:http://jsfiddle.net/YmABP/如您所见,它对图像的边缘效果很好,但图像的内部部分根本不会模糊,而且对于具有部分透明度的图像来说看起来很糟糕。是否有更好的运动模糊技术?理想情况下,我希望能够执行类似context.drawImage的操作并传入不透明度参数,但AF

javascript - HTML5 Canvas 中的一百个上下文与一个上下文?

我正在创建一个使用CanvasAPI的简单物理引擎。性能方面的最佳实践是什么?是为Canvas中的每个对象(例如每个球、盒子等)创建一个单独的上下文,还是只使用一个上下文?后者涉及为每个要重绘的对象定义上下文中的路径,以及设置颜色等。当对象数量接近一百时使用多个上下文是个坏主意吗?我之所以问,是因为我不想在一百个工作小时后得到惊喜,因为我采用了错误的方法。 最佳答案 多Canvas的性能提升来自了解您使用多Canvas的原因。除非有用,否则不要使用多个Canvas:Canvas是适度昂贵的元素。在移动设备上,Canvas仍然很慢——

javascript - Angular.js 和 Fabric.js : Fabric canvas changes behavior once code is moved to a Angular Directive

我有一个简单的AngularJS/FabricJs应用程序,目的是允许在上传之前移动/重新调整图像大小。基本上有四个步骤:1)Ipresentaformwithacanvas,andarectangleinsideofformtorepresentacliparea2)browseforalocalfile3)addittothecanvas4)andhaveabuttontocapturetheclipareainsideofthecanvas当我将代码从直接嵌入的形式移动到位于AngularDirective(指令)后面时,就会出现问题。一旦我将表单移动到指令中,就会弹出一个问题,

javascript - Canvas :矩形——对齐网格/对齐对象

我设法通过以下方式操作Fabric.js以向网格功能添加捕捉和缩放:vargrid=100;//SnaptoGridcanvas.on('object:moving',function(options){options.target.set({left:Math.round(options.target.left/grid)*grid,top:Math.round(options.target.top/grid)*grid});});canvas.on('object:scaling',function(options){options.target.set({left:Math.ro