原创 併發性:互斥和同步、死鎖和飢餓

一、與併發相關的關鍵術語: 原子操作:要保證指令的序列作爲一個組來操作執行,要麼都不執行;要麼執行要直接執行到指令完畢,中間不能中斷 臨界區:是一段代碼,在這段代碼中進程將訪問共享資源,當有一個進程在這段代碼中運行時,其他進程不

原创 使用cout來進行格式化輸出

1.修改顯示時使用的計數系統 ostream類是從ios類派生來的,而後者是從ios_base派生來的。ios_base類存儲了描述格式狀態的信息。例如,一個類成員中某些位決定了使用的計數系統,而另一個成員則決定了字段寬度。通過使

原创 數據結構——圖

昨天晚上寫了樹的一些基本概念和樹的操作以及樹的一些應用。 今天來說一說圖! 基本術語: 圖—— 一個圖(G)定義爲一個偶對 (V,E) ,記爲 G=(V,E) 。其中: V是頂點(Vertex) 的非空有限集合,記爲V(G); E

原创 cocos2d-x小遊戲——飛機大戰

上週,我做了一個基於 cocos2d-x 的飛機大戰的遊戲,因爲我剛學cocos2d-x沒多久,所以這個飛機大戰很多都是看着別人的教程,再加上自己的一些想法,來做的。 下面我想說一說我的思路。 飛機大戰有三個場景: LayerGameS

原创 數據結構——樹

這幾天自己又重新看了一遍《數據結構》。 不看不知道,一看嚇一跳。以前學的知識有忘記得差不多了。所以,決定以寫博客的方式, 將我學到的東西記錄下來,就算後面又忘記了也能回來看看。 廢話不多說,我花了幾天將老師上課的課件和書本結合起來看

原创 cocos2d-x學習筆記——Csv文件讀取工具

在一個遊戲中,通常會有很多怪物,以及怪物的生命值,魔法值等屬性數據,這些數據不可能在代碼裏面寫死,一般都會用配置文件來保存,使用時再加載到內存。 我們常用的配置文件是CSV文件,即逗號分隔值(Comma-Separated Values

原创 cocos2d-x學習筆記——cocos2d-x3.0回調函數的變化

原文轉自Cocos2d-x 3.0 新特性體驗(2) 回調函數的變化 在cocos2d-x 2.x版本中的回調函數的用法想必大家都很是熟悉,例如在menu item,call back action中都需要大量的使用到回調

原创 Cocos2d-X小遊戲——別踩白塊

自己學了快兩個月的cocos2d-x了,前幾天自己看着教學視頻,跟着做了一個小遊戲——別踩白塊。 今天來說一說我自己是如何寫這個項目的。邏輯有點亂,不知道看不看得懂。。。。 首先,這個遊戲有兩個場景,一個是開始場景,一個是失敗場景。 開

原创 關於C++中的虛擬繼承的一些總結

原文轉自關於C++中虛擬繼承的一些總結 1.爲什麼要引入虛擬繼承 虛擬繼承是多重繼承中特有的概念。虛擬基類是爲解決多重繼承而出現的。如:類D繼承自類B1、B2,而類B1、B2都繼承自類A,因此在類D中兩次出現類A中的變量和函數。爲了

原创 cocos2d-x學習筆記——內存管理

Cocos2d-x中所有繼承自Ref的類,都可以使用Cocos2d-x的內存管理。 Cocos2d-x 提供引用計數管理內存。調用retain()方法,令其引用計數增1,表示獲取該對象的引用權;在引用結束的時候調用release()方法,

原创 如何使用指向類的成員函數的指針(詳解!)

本文轉自lishuhuakai的博客 我們首先複習一下”指向函數的指針”如何使用?   void print()   {   }   void (*pfun)(); //聲明一個指向函數的指針,函數的參數是 void,函數的返回值是 v

原创 數據結構——反轉單鏈表

最近看了《劍指offer》這本書,遇到了一個問題:反轉鏈表 題目:定義一個函數,輸入一個鏈表的頭結點,反轉該鏈表並輸出反轉後的鏈表的頭結點。 鏈表結點定義如下: struct ListNode { int _data;

原创 cocos2d-x學習筆記——EventDispatcher事件分發機制

EventDispatcher 事件分發機制先創建事件,註冊到事件管理中心 _eventDispatcher,通過發佈事件得到響應進行回調,完成事件流。_eventDispatcher是Node的屬性,通過它管理當前節點(場景、層、精靈等

原创 Visual Assist X(小番茄)快捷鍵

Alt + Shift + F:光標放到某個字符串上,按下此鍵,會找出所有引用了這個字符串的地方。 Alt + Shift + S:方便你尋找某個對象或變量等等。 Alt + O: 在.h與.cpp之間切換 Ctrl+Shift+V:

原创 雙向鏈表的插入及刪除圖解

雙向鏈表的插入 第一步:首先找到插入位置,節點 s 將插入到節點 p 之前 第二步:將節點 s 的前驅指向節點 p 的前驅,即 s->prior = p->prior; 第三步:將節點 p 的前驅的後繼指向節點 s 即 p->pri