雙人撲克-技術(shù)文檔(2)11.7-11.11.md

1. 使用canvas截取部分精靈圖特咆,并且轉(zhuǎn)成base64

原本使用drawImage()無法獲取單張撲克牌虚吟。發(fā)現(xiàn)錯誤原因:參數(shù)錯誤邀摆。
應(yīng)該采用如下參數(shù)表,才能實現(xiàn)截取圖像功能:

drawImage(image,sourceX,sourceY,sourceWidth,sourceHeight,destX,destY,destWidth, destHeight)

2.1 牌面取值問題

按順序賦值洁奈,用序號模13得到牌面值

2.2 對牌進(jìn)行排序

出現(xiàn)的問題:序號值模13之后间唉,A~Q的排列沒有問題,但是K的順序有誤利术,因為K模13之后得0呈野。
解決方法:對sort()中的function進(jìn)行改造

// 目標(biāo)順序: 大王小王在最左, A~K依次排列
function compare(value1, value2) {
 if((value2%13) == 0){
   return -1;
 } else if ((value1%13) == 0){
   return 1;
 } else if(value1 == 53 || value1 == 54){
   return -1;
 } else if(value2 == 53 || value2 == 54){
   return 1;
 } else if ((value1)%13 < (value2)%13 ) {
   return -1;
 } else if ((value1)%13 > (value2)%13) {
   return 1;
 } else {
   return 0;
 }
}

3. 遮罩層半透明,內(nèi)容不透明

問題:在編寫登錄遮罩層與等待遮罩層到時候氯哮,把兩個div容器的opacity設(shè)置為了0.3际跪,導(dǎo)致內(nèi)容也出現(xiàn)了半透明效果商佛。
解決方法:用div的background: rgba()屬性實現(xiàn)div的半透明效果喉钢。

4.flexbox的隱藏效果

問題:在使用逐級顯現(xiàn)的flexbox時,在類樣式中設(shè)置display:none無效良姆,錯誤原因為與display:flex相沖突肠虽,使得隱藏效果無法實現(xiàn)。
解決方法:給flexbox添加外層div用來實現(xiàn)display:none的效果玛追。

JS打亂數(shù)組最高效的方法

var arr=[];
for(var i=0;i<100;i++){
arr[i]=i;
}
arr.sort(function(){ return 0.5 - Math.random() })
var str=arr.join();
alert(str);

js數(shù)組的有序排列

升序排列

function compare(value1, value2) {

   if (value1 < value2) {

       return 1;

   } else if (value1 > value2) {

       return -1;

   } else {

       return 0;

   }

}

var values = [0, 1, 2, 5, 10, 15];

values.sort(compare);

alert(values);  //15,10,5,1,0

狀態(tài)機(jī)的邏輯封裝

對象設(shè)置一個變量 status税课,使用switch判別status的不同值,執(zhí)行不同狀態(tài)下的操作痊剖。

狀態(tài)機(jī)

把一個對象的行為分解成為易于處理的“塊”或狀態(tài)韩玩。
狀態(tài)機(jī)的實現(xiàn):
判斷當(dāng)前狀態(tài),執(zhí)行當(dāng)前點(diǎn)擊事件應(yīng)該發(fā)生的動作陆馁;判斷狀態(tài)更改條件是否符合找颓,修改狀態(tài)。
使用switch語句來表達(dá)狀態(tài)的代碼如下:

switch ($state) {
    case STATE_RUNAWAY : // 逃跑狀態(tài)
        // 躲避敵人
        // 若安全叮贩,進(jìn)入巡邏狀態(tài)
        break;
    case STATE_PATROL :  // 巡邏狀態(tài)
        // 巡邏
        // 若遇到比自己強(qiáng)的敵人击狮,進(jìn)入逃跑狀態(tài)
        // 若遇到比自己弱的敵人佛析,進(jìn)入攻擊狀態(tài)
        break;
    case STATE_ATTACK : // 攻擊狀態(tài)
        // 若攻擊比自己強(qiáng)的敵人,進(jìn)入逃跑狀態(tài)
        // 否則取其首級
        break;
    // etc...
}

狀態(tài)變換表

屏幕快照 2016-11-18 下午11.27.30.png

參考資料:有限狀態(tài)機(jī)的實現(xiàn)

點(diǎn)擊事件

e.target 是目標(biāo)對象彪蓬,e.event是目標(biāo)所發(fā)生的事件寸莫。
target屬性的返回值是Element類型,返回最初觸發(fā)事件的DOM元素档冬。
event.target.tagName 獲取元素標(biāo)簽

event.target.id 獲取元素id
event.target.attr('class') 獲取元素的類名(jquery方式)

event.target[0].className; 獲取元素類名(原生JavaScript方式)
這里調(diào)用this無效.
$(
this
).index() 或者
$('.a').index(this); 獲取當(dāng)前元素在當(dāng)前class下的次序

通過e.target來對文檔元素進(jìn)行操作

e.target返回的類型是一個對象膘茎,{},而不是一個文檔元素

可以直接調(diào)用該對象的屬性值酷誓,也可以直接修改對象的屬性值辽狈。

通過對屬性值賦值,可以實現(xiàn)對該對象的操作呛牲,間接改變這個文檔元素的css與js操作刮萌。這個對象沒有具體方法。


var tag = e.target ;

var cname =  tag.className;

cname += " chosen";

數(shù)組的深度拷貝

1娘扩、使用slice()
可使用slice()進(jìn)行復(fù)制着茸,因為slice()返回也是數(shù)組。


var array1 = new Array("1","2","3"); 
var array2; array2 = array1.slice(0); 
array1.length = 0; alert(array2); //返回1琐旁、2涮阔、3  

2、 使用concat()
注意concat()返回的并不是調(diào)用函數(shù)的Array灰殴,而是一個新的Array敬特,所以可以利用這一點(diǎn)進(jìn)行復(fù)制。

var array1 = new Array("1","2","3"); 
var array2; array2 = array1.concat(); 
array1.length = 0; alert(array2); //返回1牺陶、2伟阔、3
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市掰伸,隨后出現(xiàn)的幾起案子皱炉,更是在濱河造成了極大的恐慌,老刑警劉巖狮鸭,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件合搅,死亡現(xiàn)場離奇詭異,居然都是意外死亡歧蕉,警方通過查閱死者的電腦和手機(jī)灾部,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來惯退,“玉大人赌髓,你說我怎么就攤上這事。” “怎么了春弥?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵呛哟,是天一觀的道長。 經(jīng)常有香客問我匿沛,道長扫责,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任逃呼,我火速辦了婚禮鳖孤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抡笼。我一直安慰自己苏揣,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布推姻。 她就那樣靜靜地躺著平匈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪藏古。 梳的紋絲不亂的頭發(fā)上增炭,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天,我揣著相機(jī)與錄音拧晕,去河邊找鬼隙姿。 笑死,一個胖子當(dāng)著我的面吹牛厂捞,可吹牛的內(nèi)容都是我干的输玷。 我是一名探鬼主播,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼靡馁,長吁一口氣:“原來是場噩夢啊……” “哼欲鹏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起奈嘿,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤貌虾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后裙犹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡衔憨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年叶圃,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片践图。...
    茶點(diǎn)故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡掺冠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情德崭,我是刑警寧澤斥黑,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站眉厨,受9級特大地震影響锌奴,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜憾股,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一鹿蜀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧服球,春花似錦茴恰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粉渠,卻和暖如春婉商,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背渣叛。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工丈秩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人淳衙。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓蘑秽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親箫攀。 傳聞我的和親對象是個殘疾皇子肠牲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,762評論 1 92
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式靴跛。設(shè)計者無需花費(fèi)時間糾纏JS復(fù)雜的高級特性缀雳。 1....
    LaBaby_閱讀 1,350評論 0 2
  • <a name='html'>HTML</a> Doctype作用?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別? (1)梢睛、<...
    clark124閱讀 3,498評論 1 19
  • 1.JQuery 基礎(chǔ) 改變web開發(fā)人員創(chuàng)造搞交互性界面的方式肥印。設(shè)計者無需花費(fèi)時間糾纏JS復(fù)雜的高級特性。 1....
    LaBaby_閱讀 1,182評論 0 1
  • 如果五臟評選勞模…… 近日 君主之官心藏畅,頗為頭疼敷硅,因為明天就是五一“勞動節(jié)”了,可是究竟選誰當(dāng)“勞模”绞蹦,仍然舉棋不...
    常生灸舍閱讀 210評論 0 0