遊戲框架和跨平台程式設計

2021-10-06 06:33:38 字數 1396 閱讀 9829

05/18/2020

05/23/2020 sdk 和 api 分別是什麼?

跨平台程式設計

game framework and cross-platform programming

holleywood principle: 「don』t call us, we will call us」

看一下接受或者釋放按鍵的例子:

lresult callback wndproc

(hwnd hwnd, uint message, wparam wparam, lparam lparam)

}

上面wndproc這個函式關於接受或釋放按鍵,當乙個鍵按下,自己需要填寫你自己需要的**。當實現完這個函式,你並不需要呼叫這個函式,這個函式是由windows作業系統來呼叫的,你只需要負責完成部分實現。這就是框架,類似於填空。

框架類似於填空,程式設計師自己來實現缺失函式,函式的呼叫由框架決定。庫是使用別人寫好的第三方庫加入到自己的**中,來實現某些功能,並自己呼叫它們。

class

object};

class

myentity

:public object}}

;

上述例子,當你繼承object,並重寫父類的postload方法之後,你並不需要自己呼叫這個函式,遊戲引擎會自動呼叫它們。

針對每乙個平台寫出不同的**,還是只寫乙份**針對所有平台。大多數百分之90來說針對所有平台只寫乙份**,剩下的少部分可以針對每一種不同的平台寫出它們自己的**。

輔助開發軟體的相關文件,範例,和工具的集合叫做sdk。要想理解sdk,首先需要理解api,作業系統留給應用程式的呼叫介面叫做api,這些介面有可能需要配上文件說明,如何使用這些介面的範例,和需要給定工具進行編譯,除錯等,這些輔助功能叫做sdk

api是一些預定好的函式,是軟體系統不同組成部分銜接的約定,在設計原則中提到過,針對介面程式設計,而不是針對介面實現程式設計。

更加複雜化的介面

sdk限制版本在使用者與平台之間

sdk提供向後相容

例子:c++有自己的容器,比如vector,遊戲引擎也有自己的容器,由於c++自帶的容器功能太多,大多數功能並不需要或者不理想,所以遊戲引擎會有自己的容器。

由於所有平台只寫乙份**,如何針對不同的平台呼叫自己的函式?

寫乙個錯誤樣本:

class

file

};

如果有過多的平台,將會產生過多的if-else,同時會讓人難以閱讀或者理解。所以如何拆分它們,用什麼設計模式或者原則需要仔細考量。

程式設計原理 跨平台

程式設計原理 所謂的跨平台是指程式可以不經處理就在不同平台上執行。而 平台 一詞有很多定義,在本 書中是指作業系統與硬體 處理器 的組合。用編譯型語言寫出來的程式,必須先編譯成機器碼。而機器碼是與底下的平台息息相關的,所 以 用編譯型語言寫出來的程式,無法跨平台 也就是說,無法在不同的平台上執行 解...

跨平台UDP程式設計

跟tcp一樣,網上這類的例子太多了,我這裡綜合了一下,寫成乙個通用型的,linux下跟windows下都能用。如果是查資料看到這裡,我再重講一遍udp,如果講得不好,請見諒。udp跟tcp相比,少了乙個建立連線的過程,所以在server服務中,只需socket,返回乙個socket控制代碼,然後bi...

跨平台開發框架 Lynx 初探

跨平台開發是目前開發較熱門的方向,react native 在這方面取得了很大的成功,同時 flutter 也獲得了非常多的關注。react native 採用 web 框架開發並使用 native ui 進行渲染,很大程度上降低了 native 開發的門檻並且提高迭代的效率,但是也不可避免地存在一...