【发布时间】:2019-09-28 22:29:20
【问题描述】:
我目前在 html5 画布中有一个旋转的弹跳球,我希望在球内插入一个 SVG 图像,该图像会随之移动和旋转 我有这段代码来自研究,但不确定这是否正确
var img = new Image();
img.onload = function() {
ctx.drawImage(img, 0, 0);
}
img.src = "";
有人对我如何实现这一目标有任何建议吗? 这是我的代码
<canvas id="myCanvas"></canvas>
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
var x = canvas.width / 2;
var y = canvas.height / 2;
// SPEED
var dx = 4;
var dy = -4;
var radius = 120;
function draw() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.beginPath();
ctx.arc(x, y, radius, 0, Math.PI * 2);
ctx.fillStyle = "#9370DB";
ctx.fill();
ctx.closePath();
if (x + dx > canvas.width - radius) {
dx = -dx;
}
if (x + dx < radius) {
dx = -dx;
}
if (y + dy > canvas.height - radius) {
dy = -dy;
}
if (y + dy < radius) {
dy = -dy;
}
x += dx;
y += dy;
}
window.addEventListener('resize', resizeCanvas, false);
function resizeCanvas() {
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
}
resizeCanvas();
x = canvas.width / 2;
y = canvas.height / 2;
setInterval(draw, 10);
【问题讨论】:
-
是的,它是正确的...除了您希望在 Image 的 onload 触发后启动整个动画,并且您希望在动画代码中包含
drawImage。
标签: javascript image svg html5-canvas