我一直在尝试自学一些游戏物理学,因此推荐了一本名为 Foundation ActionScript 3 的书。我认为数学原理也适用于其他技术,尤其是 html5 画布。因此,出于好奇,我开始将 ActionScript 转换为 JavaScript,并在此过程中进行一些心理比较。到目前为止,原则和语法与我的眼睛非常相似,但后来我想到了这个名为“Reparenting”的概念。我在 ActionScript 中有以下代码:
parent1 = new Sprite();
addChild(parent1);
parent1.graphics.lineStyle(1, 0);
parent1.graphics.drawRect(-50, -50, 100, 100);
parent1.x = 60;
parent1.y = 60;
parent2 = new Sprite();
addChild(parent2);
parent2.graphics.lineStyle(1, 0);
parent2.graphics.drawRect(-50, -50, 100, 100);
parent2.x = 170;
parent2.y = 60;
ball = new Sprite();
parent1.addChild(ball);
ball.graphics.beginFill(0xff0000);
ball.graphics.drawCircle(0, 0, 50);
ball.graphics.endFill();
ball.addEventListener(MouseEvent.CLICK, onBallClick);
private function onBallClick(event:MouseEvent):void
{
if (parent1.contains(ball)) {
parent2.addChild(ball);
}else if (parent2.contains(ball)) {
parent1.addChild(ball);
}
}
所以每次点击球时,它都会转移到另一个矩形,成为那个矩形的“子”。现在我想知道 JavaScript 是否有一个类似的概念,它可以让我以最小的努力获得类似的效果,就像 ActionScript 重设父项一样。