原创 遊戲引擎架構隨筆(一)異步加載

淺談遊戲Assets加載 現代遊戲往往需要加載大量的資源,而遊戲資源的加載往往是阻塞的行爲,一般來說有兩種方案,分幀加載和異步加載,分幀加載對於每種遊戲甚至每個不同的場景都有不同的解決方案,不在本文的討論範圍。對於第二鍾加載方案,下

原创 圖論,導航圖基礎(c#版)

前言 圖論基礎 1儲存方式 算法提要 應用 無向稀疏連通圖的實現 通用性的考慮 索引節點 圖的頂點 圖的邊 稀疏圖類 To be continued 前言 依然在公司實習,但是待在一個比較成熟的項目組(戰地風

原创 複合類型的混合使用--右左法則和替換規則

複合類型的混合使用 c++的基本複合類型主要有三種:數組,引用和指針。 由於語法上的自由性,導致這三者嵌套的情況下變得十分複雜,雖然我們可以用更加簡便,易於閱讀的方案替換一些複雜聲明,但是我們還是有必要掌握複雜程序的閱讀能力。 舉個栗子:

原创 深入分析const關鍵字模型

前言 const和define 宏 const const是編譯期的行爲 const聲明佔用內存 const是僞常量 const和複合類型 頂層const和底層const 概念 拷貝操作 const和其他關鍵字 conste

原创 GeoHash補充

最近在逛cocoa的時候發現有一些小細節可以優化的 - 我們在設定二分精度時可以設置精度爲個體的影響範圍爲精度,這樣我們在搜索的時候可以直接用“==”而非“like” - 我們可以不用進行base32編碼,直接將其轉化爲unsinge

原创 導航圖尋路(二)--Dijkstra

前言 之前的幾篇文章我們描述了圖作爲一種容器的基本屬性和作爲樹形結構的基本算法。 在探討Dijkstra算法之前,請準備好筆和紙,我們一起來畫一畫該算法的解決過程,否則你將很難理解該算法。 先行知識 問題: 求一個帶權無向圖兩個頂點b

原创 導航圖尋路(一)

通用算法 我們先來講基礎的算法,樹形結構基本都能使用的算法。 輔助函數 輔助函數和類,爲了書寫方便,path使用了類似c++迭代器的設計。 int nextEdge(VertexBase v, List<bool> visited)

原创 導航圖,無向稀疏連通圖

前言 數據成員 從xml加載 保存 添加和刪除頂點 添加和刪除邊 清空 根據id獲取頂點 To be continued 前言 我們上一篇描述了需求,這一篇詳細地實現圖類。 數據成員 public class Spar

原创 導航圖尋路(三)--Dijkstra代碼實現

前言 前一篇我們描述了Dijkstra的算法,這篇文章中我們會將它變成c#代碼。 糾正幾個錯誤 之前我們的文章中,存放邊界頂點用的數組,應該是棧,這樣便於代碼描述,但是如果想優化速度,可以使用數組,我們將在下面說明如何優化。 之前我們在

原创 Qiuck_Cocos基礎(一)

前言 最近學校和觸控科技合作,組織了一次qiuck_cocos的教學(非常感謝觸控科技的小強老師,筆者暫時不知道他的博客,以後會告知大家),筆者有幸參與其中,領略了腳本語言lua的實用性和cocos引擎的便捷開發流程,在此把一些感悟想和大

原创 Unity中的trigger

前言 最近在一家公司實習,公司用unity做項目,所以開始拋棄cocos,步入unity的深坑,筆主在研究unity時,發現網上很少有人會去分析引擎內部的實現,更加偏向於“是什麼”而不是“爲什麼”,筆主接下來的一段時間可能都會寫一些關於u

原创 Qiuck_Cocos實戰(一)

我們之前說了要做飛機大戰的項目,就從這篇開始吧。 Bullet類 子彈類是這樣一種類,它由飛機發出,直線運動,撞到物體後消失,超出地圖後也會消失。 -- Bullet -- 構造函數裏面有很多參數,根據這些參數,我們可以實現不同樣式的

原创 Qiuck_Cocos基礎(二)

前言 上一篇文章我們講了一點無聊的東西,今天我們來講easy的東西,關於cocos的常用類,爲了配合這一點,我們講一個實際項目:飛機大戰 此項目已經在github上開源https://github.com/YoungForLong/WX

原创 c++小工具,運用於遊戲中的多叉樹

多叉樹的用途 在遊戲中我們常常會使用樹形結構,而且由於遊戲數據的複雜性,常常使用多叉樹甚至圖。比如類型樹,狀態樹(狀態樹多用二叉樹,但是我覺得很多時候二叉樹並不能解決問題),決策樹etc. 爲了滿足一些特定的用途,特意寫了一個小的樹形容

原创 Quick_Cocos基礎(三)

前言 這個系列的前面幾篇我不準備系統地講,我們先寫一寫小例子,然後再從體系結構上來分析cocos lua 自動滾動地圖 我們新建一個場景,把它作爲遊戲的主場景。 local MainScene = class("MainScene", f