1. 程式人生 > >2017年9月24筆記

2017年9月24筆記

前言

我發現我的筆記經常會丟失,所以打算將每天的筆記彙總在一起,一是來可以複習今天學習到的內容,二是方便以後的查詢,等等要實踐下手速訓練,將今天的程式碼重新再過一遍,第一次的程式碼可以短點,或者時間短點。

開發2DRoguelike筆記

  1. Food應該放在GameManage中,而不是在player類中,因為放在player中,容易造成player過於臃腫,不過有些情況應該也是可以。例如血條,這裡主要是因為Food不僅是血條,也是環境中的東西。

  2. 只有一個方法使用到static,該方法呼叫的所有的方法都必須使用static

  3. 檢測碰撞時,需要關閉自身的collider,要不會檢測到自己的物體先。
    程式碼

collider.enabled = false;
RaycastHit2D hitObj = Physics2D.Lineast(Vector2.lerp(targetPosition,targetPosition + new Vector2(h,v));

123
4. 在Unity中,如果使用了public int i;在類內部設定的值的優先度沒有在Inspector的介面高。//
經常犯錯

5.[HideInInspector] 隱藏public變數,不顯示在Inspector上

6.動畫,animator.setTrigger(“name”) ,應該在動畫狀態機中設定trigger而不是設定trigger

7.C#方法中沒有靜態變數

小idea

我可以將之前很酷的分形新增到我之前女主拯救男主角的遊戲

快排理解

1.一路快排

當程式進行到一部分的時候的時候,一圖勝萬言
這裡寫圖片描述
上圖一個錯誤,應該是a[left+1…j]為了讓我印象更加深刻我就不改了。
當a[i] >= v 時, i++。
當a[j]

2.二路快排

比一路快排的優點,因為當陣列有很多重複的數字的時候,一路快排將陣列分成的部分不是均勻的兩部分部分,這時通過該過程可以將陣列分成兩個陣列數量差不多。
當程式進行到一部分的時候,一圖勝萬言
這裡寫圖片描述
程式從左開始找到第一個不滿足小於v的數,如果滿足i++,找到即為a[i]
程式從右邊開始找到第一個不滿足大於v的數,如果滿足rj–,找到即為a[rj]
然後判斷程式是否結束(i

3.三路過程

因為二路時,重複的v肯定應該排中間,這樣就不需要重新排中間的數,直接將v的數字放到合適的位置,剩下的部分在做快排即可
當程式進行到一部分的時候,一圖勝萬言。
這裡寫圖片描述
當a[i] == v , i++
當a[i]>v,swap(a[i],a[rj]);i不變,rj–
當a[i]小於v,swap(a[lj+1],a[i])
最後
swap(a[left],a[lj]);