凡人修真3D(4)神裝

2021-07-24 17:15:21 字數 2660 閱讀 5962

1.for迴圈的iter如果不是之後特殊要求用到,千萬不要提出來,要養成習慣,

message::db::tables::seqtgodequip::const_iterator it = seqtgodequip.begin();

for ( ; it != seqtgodequip.end(); ++it )

2.自動購買其實並不需要真的購買,扣錢就行了。現在這樣先要加上物品,然後再刪除,操作麻煩,而且揹包滿了就不能用了。

int bagamount = normalitemamount + limiteitemamount;

if( bagamount < levelconfig->_consumeitemamount )

else

}

3.seqpairint的擴充套件性差很多,既然都用到兩個欄位了,可以考慮用map了。這個效率的問題有空得研究一下。不過100幾十個的插入應該不會很慢,可能有差別,都可以忽略。

不過說到這個。啟動程式,load配置的時候,那個效率一般是不那麼重要的。而且可以把一些經常用到的,對於配置的計算,放到gameconfigdata裡面。或者插入會慢點,但是load完之後,就不需要了,但是之後讀取seqpairint肯定是比map慢很多的。

typedef std::vector< std::pair< int, int > > seqpairint;

//星配置

struct sgodequipstar

: virtual public cdf::crefshared

int _exp; //本星經驗值

int _consumeitemcode; //培養每次消耗物品編碼

int _consumeitemamount; //培養每次消耗物品數量

dictintint _baseattribute; //本星基礎屬性

seqpairint _expattribute; //每次培養加成屬性

};

另外,對於長些常用的型別,已經累計了很多公共的函式,可以直接使用,而且都是優化過的。例如cutil裡面的。

4.都是整形的數相除,結果是整形,想要除不盡進1,是不可能的。

for ( seqpairint::const_iterator seqit = seqpair.begin(); seqit != seqpair.end(); ++seqit )

else

}

5.隨機函式,沒什麼特別操作就用cutil::myrand().裡面有一些檢測的東西。

for ( gameconfigdata::seqpairint::const_iterator seqit = levelconfig->_expfullconfig.begin();

seqit != levelconfig->_expfullconfig.end(); ++seqit )

break;

}}

6.對了,在拋錯的地方,記得加上中文注釋。

if ( gameconfigdata::cgodequipconfigmanager::instance()->checklevelmax( playergodequip.level ) )

7.凌晨5點更新,可以用公共的函式。

static const int hour5second = 5 * 3600;//5小時的秒數
bool common::cutil::sameday(const cdf::cdatetime& d1, const cdf::cdatetime& d2, int skewingsecond)

bool common::cutil::sameweekforsometime( const cdf::cdatetime& d1, const cdf::cdatetime& d2 , int skewingsecond /*= 0*/ )

int begin = day1 -( dayofweek - 1 );

int end = day1 + ( 7 - dayofweek );

if (d2temp.gettotalday() >= begin && d2temp.gettotalday() <= end)

else

}

把五小時的秒數傳進來就行了。不用寫那麼多檢測的。。。

例如這樣寫,不是同一天,就要更新了。

void cgodequiphelper::checkgodequipexpex( const cplayerptr& player )

}}

8.不要構建太多小結構,只有兩個字段的話,一般用dictintint就完全夠用了。這是才是最常用的結果,會有很多共用的函式。或者現在還不夠完善,但是慢慢會有更多的。

struct sgodequipspskin

{int skincode;

int refinelevel;

這個東西,完全沒必要嘛。可能以後要加欄位,到時再加也改不了多少東西。

9.有空還是弄個管理類吧,像神翼那樣。

不要為3d而3d

和以前的幾個朋友聊天,也有做game的。發現大家對3d技術都非常熱衷,但是這種熱衷顯得刻意的 為3d而3d,就有點捨本逐末。1 遊戲最重要的是策劃,需要具體的滿足人心底的某種需求,2 3d需要 好顯示卡的支援,這樣就將一部分使用者排斥在外面了。3 現在3d engine已經 很成熟了,通過這些上面的...

3D電視與3D眼鏡的工作原理

1 先說3d成像原理 在 3d 裡面的 d 是英文單詞dimension 線度 維 的首字母,3d指的就是三維空間。與普通2d畫面顯示相比,3d技術可以使畫面變得立體逼真,影象不再侷限於螢幕的平面上,彷彿能夠走出螢幕外面,讓觀眾有身臨其境的感覺。儘管3d顯示技術分類繁多,不過最基本的原理是相似的,就...

3d列印 路徑規劃 金屬3D列印系統

當前,3d列印在中國智造的規劃中占有非常重要的地位,金屬材料的3d列印裝置以其技術門檻高,應用範圍廣泛的特點而備受重視。多年來,大族雷射智慧型裝備集團堅持對3d列印工藝和功能部件開展系統而深入的研究,在實驗室狀態下進行了大量實踐,機械人 三維五軸無限旋轉雷射加工頭等技術不斷取得突破,實現了送粉式 鋪...