gpt4 book ai didi

javascript - 在 HTML5 和 Canvas 中制作动画图像

转载 作者:太空宇宙 更新时间:2023-11-04 13:33:11 25 4
gpt4 key购买 nike

我需要有关使用 HTML5 和 JavaScript 将图像 float 到 Canvas 上的帮助。我一直在谷歌搜索,但没有发现任何东西。我可以在屏幕上绘制形状,但我不知道如何为它们制作动画。我想要几个不同的图像从不同的方向漂浮在 Canvas 上。有人可以帮我吗?经过 4 小时的谷歌搜索,我所能做的就是这个

<script type = "Text/JavaScript">
function Animate(){
var canvas=document.getElementById("myCanvas");
var ctx=canvas.getContext("2d");

var img = new Image();

img.onload = function ()
{
ctx.drawImage(img,20,20,300,300);

};
img.src = "vb.png";
}
</script>
</head>
<body>
<canvas id="myCanvas" height="200" width="800"></canvas>
<br><button onclick="Animate();">Restart</button>

似乎有很多关于动画形状的教程,但我想加载我自己的图片并让它们飞到 Canvas 上。

最佳答案

试试这个非常的 Canvas 动画基本演示:

http://jsfiddle.net/bDQ6b/2/

window.addEventListener('load', function () {
var
img = new Image,
ctx = document.getElementById('myCanvas').getContext('2d');

img.src = 'http://www.gravatar.com/avatar/a1f80339c0cef95be6dc73e0ac510d5d?s=32&d=identicon&r=PG';
img.addEventListener('load', function () {

var interval = setInterval(function() {
var x = 0, y = 0;

return function () {
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
ctx.drawImage(img, x, y);

x += 1;
if (x > ctx.canvas.width) {
x = 0;
}
};
}(), 1000/40);
}, false);
}, false);

不过还有很多地方可以做得更好。例如:

  • 使用 requestAnimationFrame而不是间隔

  • 以更方便的方式预加载图像

  • 使用速度和时间差(从上一帧到当前帧)而不是固定增量

  • 还有更多

但是,由于所有这些会使示例变得过于复杂,我将保持原样并希望您在学习时阅读这些主题。

关于javascript - 在 HTML5 和 Canvas 中制作动画图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9791904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com