我希望将球在画布上来回弹跳转变为有重力并最终掉落。
我知道当球到达底部时需要改变速度,但我不知道应该如何处理和编码。
我是一个没有物理背景的全新JS学生,这会有多难?我很愿意学习。我尝试让球碰撞并以正确的角度弹开,但那似乎对我来说太复杂了。
var canvas,
ctx,
cx = 100,
cy = 150,
vx = 0,
vy = 5,
radius = 30;
function init() {
canvas = document.getElementById("gameCanvas");
ctx = canvas.getContext("2d");
circle();
}
function circle() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
requestAnimationFrame(circle);
if (cx + radius > canvas.width || cx - radius < 0)
vx = -vx;
if (cy + radius > canvas.height || cy - radius < 0)
vy = -vy;
cx += vx;
cy += vy;
}
我已经把cx运动移除了,只保留了上下动画和空间中的圆形绘制代码。接下来应该怎么做?
在碰撞时,我应该将当前速度乘以0.8这样的数字吗?在哪里/如何实现?
请原谅我的菜鸟水平和糟糕的代码 - 每个人都是从这里开始!
vx *= traction
与vx = vx * traction
相同,只是一种简写方式。 - Shomz