在 2D 空间中将点从 A 移动到 B
Move a point from A to B in 2D space
我正在写一个小型太空游戏,但我坚持在开放的2D空间中以很好的方式将我的飞船从A点移动到B点。
我对以下解决方案的第一个问题是我的船永远不会完全停止。它越来越近,但它永远在B点附近振动。我的第二个问题是,如果我在它靠近时将其捕捉到 B,突然停止看起来也很假和糟糕。
我想我希望船在B点停下来之前加速,行驶和减速,没有任何弹跳,但我不知道如何以好的方式实现这一目标。此外,如果在2D空间中有一些"正确"的方法来将船从A点移动到B点,而我没有考虑过,那么其他想法是非常受欢迎的。
if(player.x < destination.x) {
if(player.velocityX < player.speed) {
player.velocityX += 10;
}
} else {
if(player.velocityX > -player.speed) {
player.velocityX -= 10;
}
}
if(player.y < destination.y) {
if(player.velocityY < player.speed) {
player.velocityY += 10;
}
} else {
if(player.velocityY > -player.speed) {
player.velocityY -= 10;
}
}
// Friction.
player.velocityX *= 0.9;
player.velocityY *= 0.9;
player.x += player.velocityX;
player.y += player.velocityY;
请注意,此解决方案尚未对从 A 到 B 的直线路径使用三角函数,但这应该不会影响我认为的问题。
任何帮助将不胜感激!
我最终得到了一个解决方案,一旦玩家通过它的目的地点,我就会增加Friction
,使飞船最终减速到 0 而不捕捉到点 B
.
相关文章:
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 正在SharePoint 2013母版页中添加JQuery移动文件
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- FabricJs-限制主对象内添加对象的移动区域
- 如何从画布上的某个移动事件中获取X和Y
- 触摸移动时切换到新元素
- 每当您在选择器内移动鼠标时,悬停功能就会重复
- 停止jQuery UI滑块移动超过给定值
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- JQuery移动动态分区页面
- XMLHttpRequest在移动设备上的chrome上不起作用
- 如何使bxslider仅在移动视图中处于活动状态
- D3.js:缩放时,在2D图形中沿着直线移动圆
- 在 2D 空间中将点从 A 移动到 B
- 在2d画布JavaScript游戏中对角移动
- 2D HTML画布游戏-停止玩家移动通过墙壁
- 在2D Javascript中移动行和列
- 在2D矩阵数组中移动精灵-JavaScript