У меня есть код, который моделирует псевдо гравитацию(притяжение к земле) и отскок шара от поверхности.
По идее шар не должен терять скорость по оси X и высоту по оси Y, но шар постоянно теряет, медленно, но теряет высоту, пока не застрянет.
Я не понимаю куда могут уходить значения высоты...
Вот код:
const canvas = document.getElementById("canvas");
const ctx = canvas.getContext("2d");
function world(){
var xp = 11;
var yp = 250;
var g = 0.05;
var sx = 3;
var sy = 0;
var sz = 0;
setInterval(function(){
if(xp >= 490) sx = -sx;
if(xp <= 10) sx = -sx;
if(yp >= 490) sy = -sy;
if(yp <= 10) sy = -sy;
sy += g;
xp += sx;
yp += sy;
draw(xp, yp);
}, 10)
}
function draw(x,y){
ctx.strokeStyle='#000';
ctx.fillStyle='#fff';
ctx.clearRect(0, 0, 500, 500);
ctx.beginPath();
ctx.arc(x, y, 10, 0, Math.PI * 2)
ctx.stroke();
ctx.fill();
}
world();