第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一個拖動拼圖游戲的代碼小問題想不通

一個拖動拼圖游戲的代碼小問題想不通

繁華開滿天機 2019-04-18 18:15:39
html代碼:<!doctype html>Sliding Puzzle<br> .picture {<br> border: 1px solid black;<br> }<br> Sliding PuzzleEasy Hard js代碼:var context = document.getElementById('puzzle').getContext('2d');var img = new Image();img.src = './img/dimetrodon.jpg';img.addEventListener('load', drawTiles, false);var boardSize = document.getElementById('puzzle').width;var tileCount = document.getElementById('scale').value;var tileSize = boardSize / tileCount;var clickLoc = new Object;clickLoc.x = 0;clickLoc.y = 0;var emptyLoc = new Object;emptyLoc.x = 0;emptyLoc.y = 0;var solved = false;var boardParts = new Object;setBoard();document.getElementById('scale').onchange = function() {tileCount = this.value;tileSize = boardSize / tileCount;setBoard();drawTiles();};document.getElementById('puzzle').onmousemove = function(e) {clickLoc.x = Math.floor((e.pageX - this.offsetLeft) / tileSize);clickLoc.y = Math.floor((e.pageY - this.offsetTop) / tileSize);};document.getElementById('puzzle').onclick = function() {if (distance(clickLoc.x, clickLoc.y, emptyLoc.x, emptyLoc.y) == 1) {slideTile(emptyLoc, clickLoc);drawTiles();}if (solved) {setTimeout(function() {alert("You solved it!");}, 500);}};function setBoard() {boardParts = new Array(tileCount);for (var i = 0; i < tileCount; ++i) {boardParts[i] = new Array(tileCount);for (var j = 0; j < tileCount; ++j) {boardParts[i][j] = new Object;boardParts[i][j].x = (tileCount - 1) - i;boardParts[i][j].y = (tileCount - 1) - j;}}emptyLoc.x = boardParts[tileCount - 1][tileCount - 1].x;emptyLoc.y = boardParts[tileCount - 1][tileCount - 1].y;solved = false;}請問為什么js中的emptyLoc的x和y不需要更新,或者他的x和y是怎么更新的,他代碼里面emptyLoc.x和emptyLoc.y的值貌似都是2,沒有變化,不更新的話沒辦法繼續(xù)判斷距離distance==1啊,為什么它程序可以正確運行,還是我理解錯了?
查看完整描述

2 回答

?
蝴蝶刀刀

TA貢獻1801條經(jīng)驗 獲得超8個贊

slideTile(emptyLoc, clickLoc);在這里傳入的清空位置和點擊位置

而 clickLoc 在你鼠標移動到某個puzzle上面,就根據(jù)它的位置確定了。
document.getElementById('puzzle').onmousemove = function(e) {
clickLoc.x = Math.floor((e.pageX - this.offsetLeft) / tileSize);
clickLoc.y = Math.floor((e.pageY - this.offsetTop) / tileSize);
};


查看完整回答
反對 回復(fù) 2019-05-13
?
偶然的你

TA貢獻1841條經(jīng)驗 獲得超3個贊

// var a = toLoc.x;
// var b = toLoc.y;
toLoc.x = fromLoc.x;
toLoc.y = fromLoc.y;
// fromLoc.x = a;
// fromLoc.y = b;//這邊為什么不用給emptyLoc改變坐標?
他這邊只是給toLoc.x = fromLoc.x;
toLoc.y = fromLoc.y;,這樣更新,而沒有給fromLoc也就是emptyLoc的x,y更新位置信息,emptyLoc的位置信息好像一直都是emptyLoc.x=0,emptyLoc.y=0,
請問您他的信息是在哪兒更新的?

查看完整回答
反對 回復(fù) 2019-05-13
  • 2 回答
  • 0 關(guān)注
  • 684 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號