私は、ユーザーにいくつかの写真をドラッグアンドドロップさせることを含む、Raphaelを使用してjavascriptでボードゲームを構築しようとしています。Raphaelオブジェクトには、画像をドラッグできるメソッドdragがあることを知っています。
規則に従ってのみ、ユーザーに作品(写真で表される)を動かしてもらいたい。これを行うには、そのように移動するメソッドを記述できます(この例では、ピースは垂直方向に1マスしか移動できません)。
move = function (dx, dy) {
document.getElementById("xCoord").innerHTML = dx;
document.getElementById("yCoord").innerHTML = dy;
startSquareX = coordToSquare(this.ox);
startSquareY = coordToSquare(this.oy);
newSquareX = coordToSquare(this.ox+dx);
newSquareY = coordToSquare(this.oy+dy);
var deltaX = newSquareX - startSquareX;
var deltaY = newSquareY - startSquareY;
if((deltaX*deltaX + deltaY*deltaY)===1) {
this.attr({x: this.ox + dx, y: this.oy+dy});
} else {
this.attr({x: this.ox, y: this.oy});
}}
上記のコードを使用すると、ユーザーは、ルールで許可されているボード内の唯一の正方形にピースを移動できます。私はそれを別の見た目にしたいと思います:-ユーザーはボード上の好きな場所にピースをドラッグできます-ピースが正方形にドロップされたときに、ルールに従ってピースが移動された場合、そのピースはユーザーの場所に配置されます落とした。それ以外の場合は、最初の正方形に戻されます。
これは、ラファエルでイベント「ドロップ」を処理する方法がわからないため、私ができない2番目のポイントです。誰かが助けることができますか?