演示效果
Babylon.js 汉诺塔
核心代码
监听鼠标选中事件,记录圆盘对象和初始位置,方便在操作错误的情况下重置圆盘位置
scene.onPointerDown = function (evt, pickResult) {
if (
pickResult.pickedMesh &&
pickResult.pickedMesh.name.startsWith('disk')
) {
const newPositionX = pickResult.pickedMesh.position.x
const towerIndex = towers.findIndex(
(tower) => Math.abs(tower.tower.position.x - newPositionX) < 1
)
if (towerIndex != -1) {
const stack = diskStacks[towerInd