javascript - 如何将图像放在圆形对象上?

标签 javascript php html css canvas

这是我用于 Canvas 游戏的圆圈变量。我将如何在保持图像在 Canvas 上移动的同时在其上放置图像?

var img = new Image();
img.src = "img.png";   

var ball = {
    radius: 0
   ,position: { x: 0, y: 0 }
   ,velocity: { x: 0, y: 0 }
   ,acceleration: 0
   ,draw: 
     function() {
        context.fillStyle = "yellow";
        context.beginPath();
        context.arc(this.position.x, this.position.y, this.radius, 0, 2 * Math.PI); 
        context.fill();
      }  
}; 

最佳答案

最基本的方法是创建剪辑

   ,draw () {
        context.beginPath();
        context.arc(this.position.x, this.position.y, this.radius, 0, 2 * Math.PI); 
        context.save(); // save current state
        context.clip();
        context.drawImage(myImage,this.position.x-this.radius,this.position.y-this.radius,this.radius * 2,this.radius * 2);
        context.restore(); // removes the clip.
      } 

但这是一种缓慢的方法。最好是使用 globalCompositeOperation 创建一个 mask ,以便 mask 图像。此外,您应该在屏幕外 Canvas 上绘制蒙版图像,这样您只需进行一次蒙版,然后只需绘制屏幕外 Canvas 即可。

关于javascript - 如何将图像放在圆形对象上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41121413/

相关文章:

javascript - 在不同的 .env 文件中设置 PUBLIC_URL (create-react-app)

Javascript - 变量可以保留其值的深度有多深?

php - 在供应商 vscode 中找不到函数的定义

javascript - 自定义弹出消息呈现但按钮不起作用?

javascript - 调整文本区域的事件大小?

javascript - 如何在ReactJS中获取父组件内的事件目标

javascript - 获取两个 <a> 标签之间的字符串值

php - 高效设计和管理用户设置模块

php - 我只想使用 PHP 从文本文件中读取特定行

javascript - OWL Carousel 2 - 滑动超过 1 个带点的元素