Smalltalk 将变形从点A移动到点B
您将如何在Pharo Smalltalk中实现Morph>#moveTo:inSteps:?假设步骤之间存在硬编码延迟。也不必担心世界的更新(比如说,它将在后台分叉)。我只关心算法 从那时起,我想到:Smalltalk 将变形从点A移动到点B,smalltalk,pharo,Smalltalk,Pharo,您将如何在Pharo Smalltalk中实现Morph>#moveTo:inSteps:?假设步骤之间存在硬编码延迟。也不必担心世界的更新(比如说,它将在后台分叉)。我只关心算法 从那时起,我想到: Morph>>#moveTo: pointB inSteps: anInteger | deltaX deltaY | deltaX := (pointB x - self center x) / anInteger. deltaY := (pointB y
Morph>>#moveTo: pointB inSteps: anInteger
| deltaX deltaY |
deltaX := (pointB x - self center x) / anInteger.
deltaY := (pointB y - self center y) / anInteger.
anInteger timesRepeat: [
self align: self center with: self center + (deltaX @ deltaY).
10 milliSeconds asDelay wait ].
但我想知道我是否在核心中遗漏了一些东西,并重新发明了轮子…你的算法有效吗?另外,当一个整数很大时,它会冻结UI吗?不,缺少一个$+,谢谢。它正在工作。此外,在这种情况下它确实冻结了UI,但请注意,我说过假设它将在后台运行。我的问题更多的是Pharo core是否包含关于沿线性路径移动的API。