javascript - 如何使用箭头键将立方体平滑移动到threejs中的平面边缘
问题描述
我有以下小提琴:https ://jsfiddle.net/mauricederegt/swh2yrct/15/
您可以使用箭头键移动立方体:
function Keyboard() {
var speed = 1;
if( event.keyCode == 65 || event.keyCode == 37) { cube.translateX( -1 ) }// Left
else if( event.keyCode == 68 || event.keyCode == 39) { cube.position.x += speed }// Left } // Right d
else if( event.keyCode == 87 || event.keyCode == 38) { cube.position.y += speed } // Up w
else if( event.keyCode == 83 || event.keyCode == 40) { cube.position.y -= speed } // Down s
fixedCubeCoordinates.map( box => {
if (
box.x === cube.position.x &&
box.y === cube.position.y &&
box.z === cube.position.z
) {
cube.position.x = old.x;
cube.position.y = old.y;
cube.position.z = old.z;
}
});
}
如您所见,立方体移动不顺畅,它有点传送。它当时还“移动”了 1 个立方体大小。此示例中的平面(白色)可以具有不同的形状(取决于加载的坐标)。此时,您可以移动到飞机之外。
我想要的是让立方体在按下箭头键时平滑地移动/滑动到平面的边缘。因此,如果我按左键,立方体会向左移动并停在边缘。如果我向上推,它将停在中间的边缘(因为那里有一个洞)。
我是 three.js 的初学者,但我该如何完成呢?首先,立方体必须保持平稳移动,并在边缘停止。
解决方案
推荐阅读
- django - Django - 用户可以上传图片,但图片不显示 - HTML 问题?(初学者帮助)
- time-complexity - 给定输入大小 N**2 的 1 遍查找的时间复杂度
- swiftui - SwiftUI 2.0:关闭按钮不会关闭视图 - 如何让关闭按钮返回上一个视图?
- css - CSS Flexbox Wrap - 如何在大项目之前填充行
- visual-studio-code - 为什么自定义 VSCode 扩展可以在开发中工作,但在发布时却不行?
- php - 发生这种情况时,Laravel 事务不起作用
- python - Pycharm - ModuleNotFoundError
- python - 从 Pine 脚本到 Python 的递归函数
- sql - 在 Oracle 中从两个表中选择操作导致不完整的期望
- css - 如何将 css 添加到 Spring Boot 应用程序?