我开始用javascript构建非常简单的赛车游戏。服务器由node.js和客户端按画布提供支持。当我在测试想法时,我编写了汽车运动逻辑。我能够创建非常漂亮和流畅的移动逻辑(它首先加速直到它全速运行,然后当你不再按住键时减速):
car = {
x: 0,
y: 0,
velX: 0,
velY: 0,
thrust: 1.2
}
if(hold_up) {
car.velY += car.thrust;
}
if(hold_down) {
car.velY -= car.thrust;
}
if(hold_left) {
car.velX += car.thrust;
}
if(hold_right) {
car.velX -= car.thrust;
}
game_loop() {
car.velX *= 0.92;
car.velY *= 0.90;
car.x -= car.velX;
car.y -= car.velY;
draw_car();
request_next_frame();
}
现在我正在尝试将这个逻辑应用到游戏项目中,但我在理解客户端应该如何与汽车的移动方面进行通信时遇到一些问题。
Localy它的效果非常好requestAnimationFrame()
提供了稳定的60 fps,而众所周知,它在画布上绘制,与屏幕刷新率同步(每当屏幕准备就绪时)。
问题:
我是节点js服务器游戏开发的新手,我不知道正确的方法来做到这一点"正确"并保持这种逻辑的平滑视觉效果。
任何帮助appriciated:)