计算碰撞后的反射角度

时间:2018-03-28 03:13:45

标签: javascript

我正在制作游戏。我不希望球员离开边界。我为此写了一点。我还希望球员在与边界相撞时能够反射或反击。这是我尝试过的。它反射不起作用。

Blob.prototype.borderCheck = function() {
    var xStart = 0;
    var xEnd = this.server.config.width;
    var yStart = 0;
    var yEnd = this.server.config.width;

    if (this.isBoosting() && this.x <= xStart) {
        this.setBoost(-this.getBoostAngle());
    }
    if (this.isBoosting() && this.x >= xEnd) {
        this.setBoost(-this.getBoostAngle());
    }
    if (this.isBoosting() && this.y <= yStart) {
        this.setBoost(-this.getBoostAngle());
    }
    if (this.isBoosting() && this.y >= yEnd) {
        this.setBoost(-this.getBoostAngle());
    }

    this.x = Math.min(xEnd, Math.max(this.x, xStart));
    this.y = Math.min(yEnd, Math.max(this.y, yStart));
};

它应该更像是这个:https://cs.stanford.edu/people/eroberts/courses/soco/projects/1997-98/ray-tracing/images/reflection.gif

1 个答案:

答案 0 :(得分:0)

当我在过去编写类似程序时,我将速度向量存储为x和y分量。然后与垂直或水平壁碰撞就像否定正确的组件一样简单。