原创 Unity3D中Vector3.SmoothDamp原理,適用於CocosCreate、LayaBox等引擎

 寫在最前:本文已將Unity3D中的Vector3.SmoothDamp翻譯爲CocosCreate(TS語言)版本,並將三維向量更改爲二維,三維運算方式相同。 private _currentVelocity : cc.Vec2

原创 多邊形碰撞檢測(判斷點在多邊形內)

點與規則的矩形或者等邊、等腰三角形等的碰撞檢測很簡單,本文主要是介紹“點與多邊不規則圖形的碰撞檢測”。 如圖,這個多邊形已經相當複雜,包含凸和凹,該如何解決呢? 結論:使用交點數判斷。即從碰撞點發射出一條水平射線,計算這條射線和多邊形的交

原创 設計模式(十)工廠方法模式

前言 在此前的設計模式(四)簡單工廠模式中我們介紹了簡單工廠模式,在這篇文章中我們來介紹下工廠方法模式,它同樣是創建型設計模式,而且又有些類似,文章的末尾會介紹他們之間的不同。 1.工廠方法模式簡介 工廠方法模式定義 定義一個用於創建對象

原创 設計模式(七)裝飾模式

1.裝飾模式簡介 裝飾模式介紹 裝飾模式是結構型設計模式之一,不必改變類文件和使用繼承的情況下,動態地擴展一個對象的功能,是繼承的替代方案之一。它是通過創建一個包裝對象,也就是裝飾來包裹真實的對象。 定義 動態地給一個對象添加一些額外的職

原创 設計模式(一)設計六大原則

1. 單一職責原則(SRP) 定義:就一個類而言,應該僅有一個引起它變化的原因。  從這句定義我們很難理解它的含義,通俗講就是我們不要讓一個類承擔過多的職責。如果一個類承擔的職責過多,就等於把這些職責耦合在一起,一個職責的變化可能會

原创 設計模式(六)代理模式

1.代理模式簡介 代理模式介紹 代理模式也叫委託模式,是結構型設計模式的一種。在現實生活中我們用到類似代理模式的場景有很多,比如代購、代理上網、打官司等。 定義 爲其他對象提供一種代理以控制這個對象的訪問。 代理模式結構圖 Subjec

原创 設計模式(八)外觀模式

1.外觀模式簡介 外觀模式介紹 當我們開發Android的時候,無論是做SDK還是封裝API,我們大多都會用到外觀模式,它通過一個外觀類使得整個系統的結構只有一個統一的高層接口,這樣能降低用戶的使用成本。 外觀模式定義 爲系統中的一組接口

原创 設計模式(四)簡單工廠模式

1.簡單工廠模式簡介 定義 簡單工廠模式屬於創建型模式又叫做靜態工廠方法模式,是由一個工廠對象決定創建出哪一種產品類的實例。 簡單工廠模式結構圖 Factory:工廠類,簡單工廠模式的核心,它負責實現創建所有實例的內部邏輯。工廠類的創建

原创 真隨機數&&僞隨機數

大部分程序和語言中的隨機數(比如 C 中的,MATLAB 中的),確實都只是僞隨機。是由可確定的函數(常用線性同餘),通過一個種子(常用時鐘),產生的僞隨機數。這意味着:如果知道了種子,或者已經產生的隨機數,都可能獲得接下來隨機數序列的信

原创 設計模式(九)模版方法模式

1.模版方法模式簡介 模版方法模式介紹 在軟件開發中,有時會遇到類似的情況,某個方法的實現需要多個步驟,其中有些步驟是固定的,而有些步驟並不固定,存在可變性。爲了提高代碼的複用性和系統的靈活性,可以使用模板方法模式來應對這類情況。 模版方

原创 設計模式(二)單例模式的七種寫法

面試的時候,問到許多年輕的Android開發他所會的設計模式是什麼,基本上都會提到單例模式,但是對單例模式也是一知半解,在Android開發中我們經常會運用單例模式,所以我們還是要更瞭解單例模式纔對。 定義:保證一個類僅有一個實例,並提供

原创 設計模式(五)觀察者模式

1.觀察者模式模式簡介 定義 觀察者模式(又被稱爲發佈-訂閱(Publish/Subscribe)模式,屬於行爲型模式的一種,它定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態變化時,會通知所有的觀察

原创 Unity3D中Vector2向量計算原理

  public static Vector2 SmoothDamp(Vector2 current, Vector2 target, ref Vector2 currentVelocity, float smoothTime, flo

原创 Unity3D SmoothDamp函數實現原理

// current: 當前的位置 // target: 我們試圖接近的位置 // currentVelocity: 當前速度,這個值由你每次調用這個函數時被修改 // smoothTime: 到達目標的大約時間,較小的值將快速到達目標

原创 Lua熱更原理以及加載規則

要實現Lua的熱更新,首先要了解Lua的模塊加載機制,熱更新的核心就是替換package.loaded中的模塊。 加載規則: 包管理庫提供了從Lua中加載模塊的基礎庫。只有一個導出函數直接放在全局環境中:require。所有其他的部分都導