gpt4 book ai didi

javascript - HTML5 Canvas 随机方向

转载 作者:行者123 更新时间:2023-11-28 13:30:56 25 4
gpt4 key购买 nike

使用 HTML5 Canvas ,这是开始以随机轨迹移动我的 3 个球(沿着平滑的线,没有跳跃)的最佳位置,当它们互相撞击时弹开,然后走另一条路径,直到它们再次撞击彼此然后再次弹开。

到目前为止,我已经在 jsfiddle 上设置了一个简单的示例每个球都会遵循自己的路径(尽管它们确实会从屏幕上消失)。

目前轨迹很简单

function animate(){

// Yellow Circle
circles[0].x+=1;
circles[0].y+=-1.5;

// Blue Cirlce
circles[1].x+=-1;
circles[1].y+=-1.5;

// Red Circle
circles[2].x+=1;
circles[2].y+=-1;
draw();

}

我很想看一个例子,但也想知道我应该看什么方法和计算。

最佳答案

此代码由 Adam Brookes 于 2013 年 6 月 10 日为 adambrookesprojects.co.uk 创建。

移动球

    function updateBallPos(deltaTime, ballArray) {
for (var i = 0; i < ballArray.length; i++) {
ballArray[i].lastGoodPosition = ballArray[i].position; // save the balls last good position.
ballArray[i].position = ballArray[i].position.add((ballArray[i].velocity.multiply(deltaTime/10))); // add the balls (velocity * deltaTime) to position.
}
}

检测球碰撞

function checkBallCollision(ball1, ball2) {
var xDistance = (ball2.getX() - ball1.getX());
var yDistance = (ball2.getY() - ball1.getY());
var distanceBetween = Math.sqrt((xDistance * xDistance) + (yDistance *yDistance));

var sumOfRadius = ((ball1.getRadius()) + (ball2.getRadius())); // add the balls radius together

if (distanceBetween < sumOfRadius) {
return true;
}
else {
return false;
}
}

SEE DEMO HERE

所有代码他都解释清楚了HERE

RELATED QUESTION HERE

关于javascript - HTML5 Canvas 随机方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24969315/

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