無名殺代碼教程 00.6
好久不見啦,這篇教程的知識比較碎啊。
首先,還是強調下語法。最近給我提問的童鞋,很多都問"我這么寫為什么沒效果啊","我這么寫為什么會報錯啊"。這樣的問題都是語法沒有掌握,或者說,憑感覺創(chuàng)造語法(滑稽)
最常見到的,八卦陣
if(get.suit(card)=="heart"||get.suit(card)=="diamond")return 1;
有童鞋寫成這樣
if(get.suit(card)=="heart","diamond")return 1;
說明這塊還要講一下
//-------華麗的分割線-------//
下面講一下代碼中的語句
1.聲明變量語句
作用:記錄一個值(縮短代碼)
var a;//聲明一個變量a(命名規(guī)則同之前講的標識符)(這時候a的值為undefined)
//下面是和賦值語句連用的例子
var a=1;//聲明一個變量a,值為1
var a=1,b=2;//聲明變量a為1,變量b為2
var a=player.getDamagedHp();//聲明變量a為玩家已損失體力值
2.賦值語句
作用:修改變量的值,修改屬性的值
a=2;//將變量a的值改成2
a=a+1;//將變量a的值+1
a++;同上
a+=2;//將變量a的值+2
a=player.isDamaged();//將變量a的值改成"玩家是否受傷"
player.hp=1;//將玩家血量變成1
ps:若值為對象類型(數組也算),那么會記錄對象的地址,對a的操作會改變原對象的值
3.運行函數
player.draw();//執(zhí)行摸牌函數
[1,2,3].randomGet();//取1到3的隨機數
//和賦值語句連用
var a=[1,2,3].randomGet();//聲明變量a為1到3的隨機數
進階知識:
player.name
這里面的.可以翻譯成"的"
大部分數據類型可以加
注:
1.數字加的話,會認為是小數點(數字類用Math對象)
2.undefined null這些不能加,會報錯
cannot read property xxx of undefined
cannot read property xxx of null
各種數據類型,有對應的方法(函數)
Math是數字類型的對象,有很多實用的方法
Math.max(1,2,3);//找出這些數的最大值,參數個數不限
Math.floor(1.1);//向下取整
Math.ceil(1.1);//向上取整
Math.abs(-1);//取絕對值
Math.random();//取0-1之間的隨機數
數組可以直接加.
[1,2,3].contains(1);//數組是否包含
[1,2,3].push(4);//將4加入數組
字符串可以直接加.
"12345".indexOf(2);//找出2的位置,沒找到返回-1
注:字符串和數組一樣有l(wèi)ength,也有slice方法,但沒有contains方法
//最后,講下addTempSkill和removeSkill吧
addTempSkill(技能名,持續(xù)到的時機)
注:死亡會移除這個技能,第2個參數默認為當前回合結束
player.addTempSkill("zhiheng");//直到當前回合結束獲得制衡
player.addTempSkill("yingzi",{player:"phaseDrawAfter"});//直到其摸牌階段結束獲得技能英姿
注:其指獲得技能的角色,不能讓其他角色獲得臨時技能直到你的某個時機
player.addTempSkill("biyue",{player:"dieAfter"});
//這個例子有點特殊,因為死亡會移除技能,所以永遠等不到dieAfter時機,相當于加了個死亡才移除的臨時技能。一般用于長期獲得臨時技能,到時機手動移除技能。例如奪銳
player.removeSkill("yingzi");//移除技能英姿
注:可以移除臨時技能,會觸發(fā)onremove的內容
字數不少了,這篇專欄就到這吧