JavaScript:HTML5 和在页面上滑动球
当谈到 HTML5 和臭名昭著的 Canvas 元素时,我是一个新手。目前,我在网页上绘制了一个蓝色球,单击画布元素后,球会滑动到我传递给 drawCircle 函数的位置 (Y)。我想要将球向上滑动到 Y 位置,而不是让球跳跃到 Y 位置。
到目前为止,这是我的代码:
var context, canvas;
var x = 100;
var y = 200;
var dx = 5;
var dy = .02;
function drawCircle(move) {
if(move) {
x = move.x
y = move.y
}
canvas = document.getElementById('myCanvas');
context = canvas.getContext('2d')
context.clearRect(0,0,canvas.width, canvas.height);
context.beginPath()
context.fillStyle = "#0000ff";
context.arc(x, y, 20, 0, Math.PI*2, true);
context.closePath();
context.fill();
// if(x < 0 || x > canvas.width) dx=-dx;
// if(y < 0 || y > canvas.height) dy =- dy;
if(move) {
y+=dy
}
// x+=dx
// y+=dy
}
window.onload = function(e){
// setInterval(drawCircle, 10)
drawCircle()
canvas.onclick = function(){
var move = {
x: 100,
y: 100
}
drawCircle(move)
}
}
JSFiddle: http://jsfiddle.net/Uam8z/1/
I am a newb when it comes to HTML5 and the infamous Canvas element. Currently, I have a blue ball drawn on my webpage and on click of the canvas element, the ball slides up to a position (Y) that I pass to a drawCircle function. I am wanting to slideUp the ball to the Y location, vs the ball jumping to the Y location.
Here is my code thus far:
var context, canvas;
var x = 100;
var y = 200;
var dx = 5;
var dy = .02;
function drawCircle(move) {
if(move) {
x = move.x
y = move.y
}
canvas = document.getElementById('myCanvas');
context = canvas.getContext('2d')
context.clearRect(0,0,canvas.width, canvas.height);
context.beginPath()
context.fillStyle = "#0000ff";
context.arc(x, y, 20, 0, Math.PI*2, true);
context.closePath();
context.fill();
// if(x < 0 || x > canvas.width) dx=-dx;
// if(y < 0 || y > canvas.height) dy =- dy;
if(move) {
y+=dy
}
// x+=dx
// y+=dy
}
window.onload = function(e){
// setInterval(drawCircle, 10)
drawCircle()
canvas.onclick = function(){
var move = {
x: 100,
y: 100
}
drawCircle(move)
}
}
JSFiddle: http://jsfiddle.net/Uam8z/1/
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您无需继续定义画布并设置上下文。这处理向上滑动:
You don't need to keep defining the canvas and setting the context. This handles sliding up:
您可以像您的代码所建议的那样使用
setInterval
函数,这就是我的做法。代码设置了一个
end_position
,球应该在该位置结束。然后,它设置一个间隔,在每次迭代中将其移动相同的距离,当它接近所需位置时,它通过将位置设置为所需位置来确保间隔终止。You can use the
setInterval
function like your code suggested, this is how I did it..The code sets up an
end_position
where he ball should end up. It then sets up an interval to move it the same distance on each iteration, when it gets close to the desired position, it ensures that the interval terminates by setting the position to be the desired one.