原创 C++設計模式之裝飾者模式

英文叫Decorator Pattern,又叫裝飾者模式。裝飾模式是在不必改變原類文件和使用繼承的情況下,動態地擴展一個對象的功能。它是通過創建一個包裝對象,也就是裝飾來包裹真實的對象。(百度百科) 裝飾模式就是把要添加的附加功

原创 mfc學習之主框架窗口創建過程

在上一篇追蹤了mfc程序流程之後回到了自己所寫的初始化函數 BOOL CMyWinApp::InitInstance() { CMyFrameWnd * pFrame = new CMyFrameWnd(); pFrame->Crea

原创 cocos2d-x-3.0學習筆記之如何設置滾動菜單欄

除了做普通的菜單欄之外,同樣也可以利用TableView設計一個滾動的菜單欄,譬如是做關卡選擇或者是角色選擇的時候,需要一張稍大的圖片來展示額外的信息。此時利用滾動菜單就能很好的解決這個問題。 要實現上述功能,我們應當先了解這四

原创 mfc學習之分析mfc程序執行過程

     在前幾天學習自己動手創建了一個mfc程序之後,生出了一個疑問,作爲一個新手,在學習c++標準語法的時候,基本都是控制檯程序,而且衆所周知程序都會有一個入口點也就是main函數,而在mfc程序中,只是定義了一個全局對象theApp

原创 mfc學習筆記之如何修改mfc消息機制處理順序

學習mfc時知道了mfc的消息處理機制是有着順序的,首先是視圖類CView類先處理,如果視圖類不處理消息則會由文檔類CDocument處理,如果文檔類不處理消息則會由框架類CFrameWnd處理,加入框架類不處理則會由應用程序類C

原创 cocos2d-x-3.0學習筆記之如何添加菜單按鈕

在遊戲開發的過程中,一個非常常見的功能是我們應該給遊戲設計一些菜單選項,包括遊戲開始,遊戲結束等等一些的菜單按鈕。 cocos爲我們提供了一個類MenuItemImage專門用來實現這些功能,MenuItemImage類的構造函

原创 C++設計模式學習之策略模式

Strategy模式也叫策略模式是行爲模式之一,它對一系列的算法加以封裝,爲所有算法定義一個抽象的算法接口,並通過繼承該抽象算法接口對所有的算法加以封裝和實現,具體的算法選擇交由客戶端決定(策略) 簡單來說策略模式就是將算法封裝

原创 cocos2d-x-3.0學習筆記之瓦片地圖的使用

cocos3.0對cocos2.00做了很多的改變與優化,如果直接將cocos2.0裏的遊戲代碼移植到cocos3.0中會報很多的錯誤。例如在獲取瓦片地圖的屬性時更會如此。下面做個例子,首先我們將製作好的瓦片地圖加載到程序中 au

原创 C++學習之空類的大小

最近在學習C++時突發奇想,一個空類的大小是多少呢? 即 #include<iostream> using namespace std; class X { }; class Y : public virtual X{}; cl

原创 cocos2d-x-3.0學習筆記之如何搭建安卓開發環境

當我們在電腦上開發好一款遊戲之後,就要準備往手機上移植了,而比較複雜的就是搭建安卓開發環境,在cocos3.0之前搭建安卓開發環境還是比較複雜,但是到了3.0之後開發環境的搭建就變得相對比較容易。 現在就來總結一下cocos安卓

原创 mfc學習筆記之如何自己動手實現最簡單的mfc程序

    在剛開始學完c++基本語法之後,發現要用c++寫一個窗口應用程序必須與操作系統結合起來,於是自然而然的選擇了從mfc入手,但是通過新建的mfc程序發現太過於臃腫,不知道如何下手,因此從網上查閱資料發現可以自己動手使用mfc庫實現一

原创 MFC學習之菜單欄創建

在開始學習MFC創建菜單時,根據書上的例子先在資源文件裏建立好菜單,然後在代碼中將菜單加載出來,其代碼如下 `int CMyFrameWnd::OnCreate(LPCREATESTRUCT lpCreateSt

原创 C++設計模式之簡單工廠、工廠模式、抽象工廠

1.簡單工廠模式 簡單工廠模式屬於類的創建型模式,又叫做靜態工廠方法模式。通過專門定義一個類來負責創建其他類的實例,被創建的實例通常都具有共同的父類。 模式中包含的角色及其職責 1.工廠(Creator)角色 簡

原创 cocos2d-x-3.0學習筆記之如何實現地圖的捲動

在使用cocos2d-x編程時,常常會用到的一個功能便是如何實現地圖跟隨精靈(角色)的移動而捲動,特別是對於跑酷類遊戲來說,這樣就會讓精靈一直處於屏幕的可見範圍內。在這裏介紹兩種最基本的方法 1.第一種方法 第一種方法實現起來

原创 cocos2d-x-3.0學習筆記之如何創建開關菜單

開關菜單的菜單項類是MenuItemToggle,它是一種可以進行兩種狀態切換的的菜單項,其創建函數如下: static MenuItemToggle *createWithCallback( const ccMen