無名殺代碼教程 01.1 請睜眼
前言
這篇專欄是講編程的方法,大佬也可以看看。本篇專欄不涉及代碼內(nèi)容,萌新也可以放心觀看。
現(xiàn)象
我發(fā)現(xiàn)萌新寫代碼會有這幾個問題:
1.為什么我引用的技能不能發(fā)動?我抄過來一個字都沒改
2.為什么用event.player而不是player,player和event.player有什么區(qū)別?
3.target為什么不存在,我不是加了filterTarget嗎?
我認為,產(chǎn)生以上問題的原因,是他們并不了解他們寫的東西會有什么影響,他們只是在不明真相的情況下搬運、歸納。
實際上,代碼是非常符合邏輯的,例如你定義了一個變量是1,后面都沒有對其進行過操作,那么它的值一定還是1。
如果能睜著眼睛編程,看到此時這個變量的值和變化,就不會犯如此淺顯的錯誤。初學(xué)者可能不太適應(yīng),可以多加些注釋,等能力培養(yǎng)上來就可以擺脫注釋了。
正文
一
.具象化代碼
任何事物都有非常豐富的細節(jié),不可能完全描述其外貌、物理特性 代碼如果想表示一個事物,只能列舉一個事物的主要特征。 比如 蘋果:{ 顏色:紅, 特征:削皮后放一段時間會變黑 } 如果你看到了這串代碼,你應(yīng)該想象出一個紅蘋果。因為作者想表達的就是這個,也希望你能想到這個。 從網(wǎng)頁角度了解無名殺,這就是在頁面上創(chuàng)建了很多"紙片人",還有一些卡片。"紙片人"抖一下代表受傷了,勾玉消失了代表扣血了。 如果想象成真正的戰(zhàn)場,就能更好地體會作者想表達的畫面。 再回頭看那3個問題 1.為什么我引用的技能不能發(fā)動?我抄過來一個字都沒改 這其實很好理解,把一個技能想象成一把寶刀,有的寶刀和主人簽訂了契約。你把它拿過來,寶刀看到不是自己的主人,就罷工了。 2.為什么用event.player而不是player,player和event.player有什么區(qū)別? player是指的你,event.player指的是當(dāng)事人。很多事情你都是當(dāng)事人,也有些事,你只是湊熱鬧的。比如看到別人受傷就哭(指某無名小卒) 3.target為什么不存在,我不是加了filterTarget嗎? 問這個問題的,一般是在觸發(fā)技里加了filterTarget。主動技的filterTarget表示在發(fā)動前選目標,但觸發(fā)技是發(fā)動后再選目標,這倆是不能共用的。 另外,不是所有事件都有target。舉個例子:傷害事件是沒有target的,只有傷害來源和受傷角色 有target的,都是主動進行選擇的事件。比如使用牌,對你的下家出殺,就是有目標的。還有發(fā)動技能,對你的下家發(fā)動強襲突襲急襲,也是有目標的。就舉這兩個例子,其實還有沒講到的,大家可以思考下。
二
.合理推測
Q:如果我寫了個技能,和官方技能重名會怎樣? A:后到的會覆蓋先到的,相當(dāng)于你用涂改帶抹去了原來的文字,那么顯示的就是你現(xiàn)在寫的文字。所以技能名字要加前綴,防止重名。
三.
多思考
學(xué)習(xí)需要花時間積累,慢慢形成自己的知識網(wǎng)絡(luò)。不要以為看了一篇文章,就能吸收所有的知識。不要把自己想得太厲害,可以短時間就學(xué)會,也不要太小瞧自己,認為自己學(xué)不會。
學(xué)習(xí)是自己的事,而不是為了誰而學(xué)習(xí)。當(dāng)你學(xué)到知識了,成為大佬了,你應(yīng)該去解答他們的問題?,F(xiàn)在的你,可以勝任這份工作嗎?
結(jié)語
這篇專欄其實我是不太滿意的,后面寫著寫著就不知道怎么和"睜眼"扯上關(guān)系。我想表達的就是,在編程時要把抽象的對象,想象成真實的物品,并時刻"看"到這個物品的屬性。這樣可以有更多角度來思考問題,而不會簡單地陷入死胡同,然后懷疑是無名殺的問題。