原创 遊戲底層邏輯,運動&&尋路(一)

從今往後的項目,由於需要圖形化界面,所以建立在cocos2d 3.4引擎基礎之上。 說到運動,不得不復習一下平面向量的有關知識(忘完了,尷尬 ^_^;) 這裏我就不多做講解了,向量方面需要用到點乘,內積

原创 遊戲底層邏輯,運動&&尋路(三)

上篇文章我們解釋了幾種基本的控制力,今天我們會討論幾種較爲複雜的行爲,涉及了碰撞,以及輔助圖形進行運動控制。 7、Wander徘徊(巡邏) 徘徊(四處巡邏)是一種很常見的行爲,但是要得到smoothly平滑的轉向行爲,並不是特別容

原创 遊戲底層邏輯,MainLoop&&FSM&&MSG(四)

Entity–實體 今天我們把遊戲邏輯集成起來,看一下狀態機和消息分發具體的引用過程。 BaseEntity.h class BaseEntity { public: BaseEntity(int IDcount)

原创 cocos2d-x大型地圖實現(續)

上次向大家介紹了底層的地圖邏輯,這次來看看視覺層面,也就是地圖圖片的繪製。 大型地圖肯定不能一次繪製,我的方法是運用緩存然後繪製出“看得到”的地圖部分。 · 地圖分爲很多張屏幕大小的圖片,在我這裏是1000*500,每次只需要繪製

原创 cocos2d-x大型地圖的實現

所謂大型地圖,是指類似於pc端沙盒遊戲那樣的地圖。需要加載大量的圖片資源。而cocos並不是針對這樣的遊戲設計(現目前手機端很少有2d的類似遊戲)。 筆者最近再開發一款類似《饑荒》的生存類遊戲,所以涉及到大型地圖的實現,下面來和大

原创 遊戲底層邏輯,空間劃分

前言 不知道大家注意到之前有一個尋找相鄰個體的方法叫做getNeighbors沒有,該方法的實現如下: - 遍歷所有個體,計算距離是否小於一定範圍,確定鄰居 我們可以預知,該方法在個體總數較小的時候效率較高,一旦個體數突破

原创 遊戲AI--決策(1)

機器學習的引入 機器學習最近由於AlphaGo和數據挖掘的大熱而變得流行起來,然而我們可以讓它變得更加cool,在接下來的模塊中,我將講述我對遊戲中應用機器學習的理解以及我的現有成果。 應用機器學習的意義 遊戲進行中,尤其是網絡遊

原创 cocos場景替換順序(坑)

填坑 最近在寫一個投籃的遊戲,由於自己寫了一個簡單的物理模塊,實體內存管理沒有使用cocos的內存池,然後在場景替換時遇到了一些坑。 onEnter和onExit 1、cocos的onEnter是在init函數執行之後執行的,所以

原创 遊戲邏輯底層,MainLoop&&FSM&&MSG(三)

FSM–有限狀態機 今天我們來探討一下Finite State Machine,有限狀態機,簡稱FSM,有興趣的同學可以看一下《遊戲編程中的人工智能》這本書,寫得很經典(無論從代碼上來說還是思維上來說),此次的例子基本是在此書的思

原创 遊戲底層邏輯,運動&&尋路(二)

目標驅動產生控制力 我們知道一個合理的物理世界的運動不是自發的,也不能是突發的。我們不能突然的moveTo。我們首先知道,由牛頓定理可知,物體的變速需要力的作用,而在遊戲世界裏,力不是由其他物體施加的,而是由目標驅動的,這一原則將

原创 Cocos2dx解決VS無法加載pdb符號庫問題

首先禁用windows遠程符號服務器,工具->選項->調試->符號,吧Microsoft符號服務器的勾取消。 然後去下載windows開發者調試符號包:http://download.microsoft.com/download/0/A/

原创 cocos2dX 3.x獲取渲染Image

cocos2dx 3.x開始採用了異步渲染機制,以前在2.x版本採用重繪獲取圖片Image對象的放法會出現一點小bug,最近查找資料解決了這個問題,有一點思考: bool ControllerLayer::getNewImg(Sp

原创 遊戲邏輯底層,MainLoop&&FSM&&MSG(一)

MainLoop–遊戲主循環 簡單的程序主要分爲兩個線程,一個線程負責處理界面刷新(一般需要較高FPS),另一個線程負責處理程序邏輯(刷新頻率較低),此篇文章主要介紹遊戲的邏輯線程,我稱之爲GameMainLoop(以下簡稱ML)

原创 XLua-Unity框架初探

文章目錄前言應用場景XLua 常用 API框架實例搭建需求實現實例,實現一朵雲的運動其他 前言 Lua由於其簡單易用,方便熱更等性質,一直是遊戲行業的首推腳本語言。Unity引擎也誕生了很多款爲其適配的Lua虛擬機運行環境,主要有

原创 c++小工具,字符串 hash map

std::unordered_map 該容器在使用const char*作爲key時,會將char*作爲指針,將指針指向的地址作爲生成hashcode的值,所以對於每一個unordered_map<const char*>,只要不是相