2

ポイントアンドクリックアドベンチャーゲームで、キャラクターがパスの境界の外に出ずに特定のパス内を歩く必要がある機能を複製しようとしています。

例として: 私はこの JS Fiddle を持っています: http://jsfiddle.net/1ztzz6an/1/ポリゴンを描画します。私が欲しいのは、キャラクターの足(インポートされた画像の下部)だけがポリゴン内にとどまるようにすることです。コードは次のとおりです。

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");

var triangle = [{
    x: 71,
    y: 247
}, {
    x: 299,
    y: 313
}, {
    x: 520,
    y: 215
}, {
    x: 587,
    y: 49
}, {
    x: 468,
    y: 154
}, {
    x: 420,
    y: 36
}];



// define the polygon
function define(polygon) {
    ctx.beginPath();
    ctx.moveTo(polygon[0].x, polygon[0].y);
    for (var i = 1; i < polygon.length; i++) {
        ctx.lineTo(polygon[i].x, polygon[i].y);
    }
    ctx.closePath();
}
define(triangle);
ctx.fill();

タイルなどを使った例を見てきました。しかし、ポリゴン自体の中に入れたいです。あるいは、より簡単であれば、プレーヤーの足がポリゴンに触れない限り、ポリゴンの外を歩く方法として解決策を検討することさえできます. どちらが優れていて、どちらが簡単かはわかりません。

私を動かすための助けと例はありますか?ありがとうございました!

4

1 に答える 1

1

特定のポイント (プレーヤー) がポリゴンの内側にあるかどうかを確認するために使用できるアルゴリズムがいくつかあります: RaycastingWinding Number 。どちらもウィキペディアの記事で説明されています。

更新:キャンバス API にこれが実装されているようです。上記の markE のコメントを参照してください。

于 2015-08-19T12:11:29.270 に答える