std::vector中的陷阱

自從上次經曆了sort的死迴圈之後,讓我覺得有必要重新審視一下STL的容器。vector是STL中最普通的一個容器,也是用的最多的一個容器。當我閱讀vector的源碼後,還是發現有很多陷阱,這些陷阱稍不留神也許就會讓你的程式死的很難看。 一.增加元素時的陷阱vector中常用的增加元素的方法是pushBack和insert。大家先看看這樣一段程式: int _tmain(int argc, _TCHAR* argv[]){ std::vector<int>

Torque引擎系列之學習資源

這篇文章可能是我關於Torque系列的最後一篇文章了。我寫這些文章主要是有兩個目的,一個是在工作和技術上做一個總結性的東西。二是給大家介紹一下Torque引擎,希望能給那些對遊戲開發感興趣的朋友一些協助,實際上TGE引擎遠比我寫的要複雜,包括它的渲染、網路、記憶體管理、物理碰撞等,這裡面的任何一樣都可以寫成一本書。我認為TGE引擎對於想進入遊戲開發領域的朋友來說是一個不錯的入門引擎,它的架構實際上是很棒的,另外指令碼也很靈活,非常易於上手。如果大家想更深入地學習TGE,有以下幾個方式:Torqu

Blog工具之代碼“小貼貼”

在blog上貼代碼是一件讓人煩心的事,如果有一個工具能夠自動將codes轉換為整潔美觀的HTML代碼,那該多好!下面這個工具相信能夠滿足你的“基本”要求,她為你提供:1、代碼編輯(刪除、粘貼、修改)、尋找;2、自動行號產生;3、針對{}的自動縮排;4、轉換為整潔美觀的HTML代碼;5、注釋、關鍵字著色;注意:請不要忘記在你編輯完每行後敲斷行符號來確定修改。本工具最主要的功能是“自動轉換”,你最好還是在功能強大的代碼編輯器中完成編輯後再將其粘貼到工具中,然後進行轉換,因此,該工具不提供儲存和開啟功

怎樣用Visual Build工具搭建自己的Daily Build環境

經過這幾天的研究,終於利用Visual Build軟體把我的Daily Build給搭建起來了。之前的想法利用這個工具都實現了,包括從ftp上更新遊戲資源,從svn伺服器上更新代碼以及自動編譯vc工程項目,最讓我感到意外的是Visual Build居然還支援聯合編譯器。準備先在自己機器上試運行幾天,如果效果不錯的話在給我們項目組推廣下。下面我就介紹下Visual Build這個工具吧。 一.下載與安裝 Visual

Torque引擎系列之Gui編輯器

一、Gui編輯器概述:1、進入遊戲後按F10快速鍵即進入Gui編輯器。其介面如所示:2、GUI Editor由4個部分組成:Content Editor(內容編輯器)、Control Tree(控制項樹)、Control Insepctor(控制項檢驗器)和Tool Bar(工具列)組成。Content Editor(內容編輯器)為中左上方較大的矩形地區,這是放置、移動、和變換控制項的地方。Control

平衡二叉樹與紅/黑樹狀結構

AVL樹的定義: 一棵AVL樹滿足以下的條件: 1>它的左子樹和右子樹都是AVL樹 2>左子樹和右子樹的高度差不能超過1 從條件1可能看出是個遞迴定義,如GNU一樣. 性質: 1>一棵n個結點的AVL樹的其高度保持在0(log2(n)),不會超過3/2log2(n+1) 2>一棵n個結點的AVL樹的平均搜尋長度保持在0(log2(n)). 3>一棵n個結點的AVL樹刪除一個結點做平衡化旋轉所需要的時間為0(log2(n)).  那麼如何讓產生的二叉樹是平衡二叉樹呢?

Torque引擎系列之指令碼入門

本人接觸TGE引擎已差不多有兩年時間,TGE是國外的一款相當不錯遊戲引擎。價格低廉(只需99

Gamebryo 引擎的總體架構

總體來說LightSpeed分為四個主要的子系統。1 Foundation subsystem :SDK平台相關的基礎子系統,可適用於任何平台,包括windows,WII,SP3。是所有的其它子系統依賴的基礎。主要包含記憶體管理,檔案資源管理,線程管理,網路通訊,訊息系統,日誌以及斷言等。2 Core Runtime subsystem: 核心子系統主要用於渲染、動畫、效果、情境管理、輸入輸出、碰撞檢測、粒子效果、地形系統、陰影系統以及其他許多重要的功能。3 Game Framework

Torque引擎系列之粒子編輯器

一、 概要介紹:粒子系統主要是用來類比遊戲情境中的固定變化的液體或氣體類實體,例如大雨、煙霧、薄霧、火焰等。粒子系統主要由三部分組成:1、粒子(Particle),指我們所看見的真實物體。2、粒子發射器(Particle Emitter),指使粒子成為存在實體的東西。3、粒子發射器節點(Particle Emitter

LUA 學習筆記 01

1. lua 關鍵字:and, break, do, else, elseif,end, false, for, function, if,in, local, nil, not, or,repeat, return, then, true, until, when2. 刪除變數: = nil;3. 變數類型:nil(not defined), boolean, number(a real number), string, userdata, function, thread, table4.

Gamebryo 引擎基礎層之efd::MemObject

我們都知道C++中的記憶體管理是一個很讓人頭疼的問題,記憶體流失,無效指標訪問崩潰,堆記憶體配置失敗,記憶體片段等等問題。為瞭解決這些問題,大部分的遊戲引擎都實現了自己的記憶體管理器。GB中的MemObject 類有點類似於OGRE中的AllocatedObject,所有要從堆記憶體中構造的對象都必須繼承與該類。這個類重載了new和delete操作符,通過自己的記憶體管理器進行記憶體的管理。MemObject

小析override & overload

一、overload,譯為重載,是C++提供的一種處理函數重名的機制。void f(float) { ... }void f(int) { ... }在C中上面代碼不能通過編譯,而在C++中卻可以。這是因為C++編譯器根據參數為每個重載函數產生不同的內部標識符,也就是說參數表是判斷函數相同與否的標誌。但是,我們會很自然地想到為什麼不用傳回值作為區分標誌呢?請看下面的例子:void f() { ... }int f() { ... }如果這樣調用:int a =

Torque引擎系列之情境編輯器

一、任務編輯器介紹Tge任務編輯器主要是用來建立遊戲中的情境、地形、設定路徑等。它主要包含了以下幾個子編輯器:World Editor(情境編輯器)、Terrain Editor(地形編輯器)、Terrain Terraform Editor(地形高度編輯器)、Terrain Texture Editor(地表紋理編輯器)、Mission Area Editor(工作區域編輯器)。二、World Editor使用方法World

Gamebryo 引擎的RITI機制

一 什麼是RITI      通過運行時類型識別(RTTI)(Run-Time Type

今年之閱讀計劃

在這兩年的工作學習中,雖然也看了不少技術方面的書。但老是覺得知識不夠用,往往是缺哪補哪,從來都沒有有計劃而又系統地進行閱讀和學習。所以制定一個系統而又長期的學習計劃是很有必要的。一、閱讀計劃之內功篇哪些方面是我們作為軟體開發人員所必須具備的內功?我認為大概有以下幾個方面:1、電腦體系,瞭解現代電腦的運行原理、組成結構。2、作業系統,我們所編寫的程式都依賴於某個特定的作業系統,作業系統是串連應用程式和電腦硬體的紐帶,只有在充分瞭解作業系統的基礎上,我們才能編寫出更好的軟體。3、資料結構和演算法,它

Gamebryo Engine 3.0 下載與安裝

下載:點擊該連結,這裡進行下載,慢慢掛著吧。我總共差不多用了2個禮拜。如果你覺得慢的話可以google一下,貌似很多地方都能下。 安裝:下載完畢後,先解壓。然後運行setUp.exe,首先會自動幫你安裝一些軟體,什麼Microsoft .NET Framework 3.5 ,還有vs2005和vs2008的補丁包,另外就是NVIDIA PhysX。安裝完畢後才真正開始SDK的安裝,最開始會提示你輸入license。當時我為了這個號頗費了一些周折,不過最後還是在朋友的協助下弄到了一個號:C7DB3

Gamebryo 引擎的Assert,log和debug

我們在遊戲中需要一個健壯的引擎,那怎樣才能保證引擎的健壯性呢?主要有兩個方面:一個是儘可能的減少bug,二是在bug發生後能儘早的發現並解決。GB引擎和大多數引擎一樣,有自己的一套保護機制。包括斷言,日誌模組和debug模組。 一

Gamebryo 引擎的編譯

Gamebryo

遊戲中的字串管理

在遊戲中,我們需要各種各樣的外部資源。包括字元,2D紋理,3D模型,動作,聲音等等。怎麼組織並管理好這些資源,關係到遊戲的高效和穩定性。下面我先介紹一下字串資源的管理方法。 遊戲中不可避免會用到很多文本字串,有些人是直接把字串寫在代碼裡面。這樣是一個很不好的方式,因為字串文本可能會根據項目的需要而頻繁的更改,如果你直接寫在代碼中,每次更改都需要重新編譯。另外發行多國版本的時候也會出現比較大的問題,因為你必須把所有的字串文本都改成相應的字串。比較好的做法是把字串統一放在一個設定檔中,用字串ID作為

std::sort函數中的陷阱

前幾天收到遊戲中一個很嚴重的bug,執行某項操作的時候會出現卡死的現象。最後調試的時候定位到std的sort函數,發現一進這個函數就出不來了,很可能在裡面出現了死迴圈。剛開始,我還是很詫異。大名鼎鼎,久經考驗的的STL演算法也會出現死迴圈?於是baidu了一下,果然在網上也發現不少人碰到過類似情況。出現死迴圈大多是由於在sort函數中的比較函數裡面相等元素返回了true。 std的sort函數用的是QuickSort演算法,採用分段遞迴排序。很可能是在遞迴的時候出現問題,導致無限遞迴迴圈。後來看

總頁數: 61357 1 .... 20526 20527 20528 20529 20530 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.