這就是差距啊。。。

2021-04-06 22:30:28 字數 1095 閱讀 1712

這段時間應一位同學的請求,做了個吃豆子遊戲。

關於吃豆子遊戲應該說是很簡單了吧?

儘管如此,我總是發現我做的遊戲為什麼就是不如先前那個叫clanlib中的吃豆子遊戲例子來得流暢。(不爽啊)

除了繪畫的api不相同以及不一樣之外,演算法基本上都是一樣的啊。

就連人物的移動速度都調節成一樣了,雖然對於任務來說是關係不大。但對於乙個真正的遊戲這是致命的啊。

幸好這有源**,於是我把clanlib開啟,經過比對分析,發現有個地方不一樣影響到呼叫的時機。

我照著原理加入我自已的**後就一樣流暢了!

**如下:

for (;m_starttime < dwcurrent;m_starttime += 50) //這是原本的**

if (m_starttime > dwcurrent )                   //這是在原本**後面加入的**

我原來也是初看之下認為都是間隔50ms呼叫一次所有物件的啟用。

最後想一下不對哦,比如現在的starttime 是 30ms,加上50ms. 等於80ms.而dwcurrent為40ms。

超出值,退出。下一次我的starttime還是80ms,這樣中間就至少少呼叫了一次移動函式,浪費了一幀,

當每幀出現大量這種情況,我呼叫的次數基本上少了一倍。於是速度看起來就慢了一倍。

而我移動的間隔大,並且每次就是移動相同的距離,這就造成了卡的情況出現。

通過這次經驗我又得出乙個簡單的道理,就是要在每幀都盡可能的顯視出資料的變化。就好象上面的1ms的變化,每幀都要清楚顯示。

唔,其實上面這段**這樣改了還是有問題(注1):當第一次starttime就小於current,但不足50ms,而下面的**的active則笨蛋似的還搞

個50ms的訊號送過去。

於是我又改,驚奇的放現改過後的**與clanlib中的**連形式都很相似了,不排除是看了他們**受到影響了呵

float ***iff = (float)(dwcurrent - m_starttime);

***iff  /= 1000; //ms轉換為秒

float tmactive;

for (dfftime > 0.05; dfftime -= 0.05)

啊!這就是組態軟體!

有好多朋友說 沒有多難,很簡單 這就愈發刺激的我,雖然我是工科出身但從業10餘年,就是沒有真正做過與工控相關的事,我認為那是很具有深度的一種工具,以定要做做。今年好了正好就和他打上交道了,什麼 組態 啊,狗屁,不曉得那個文盲翻譯了某個公司的技術文件,將 狀態監控 狀態配置 硬生生的翻譯成 組態 坑爹...

這就是「愛情」,這就是「婚姻!」

有一天,柏拉圖問老師蘇格拉底什麼是愛情?老師就讓他先到到麥田裡去,摘一棵全麥田裡最大最金黃的麥穗來,期間只能摘一次,並且只可向前走,不能回頭。柏拉圖於是按照老師說的去做了。結果他兩手空空的走出了田地。老師問他為什麼摘不到?他說 因為只能摘一次,又不能走回頭路,期間即使見到最大最金黃的,因為不知前面是...

這就是男人 (續)

調教好男人標準之一 成熟穩重。的確,成熟的男人勇於承擔責任,雖然有些過錯並非是他們造成的,過於計較是男人最不能原諒的錯誤,正好,女人們,平時撒嬌就有這個藉口了。好男人即使知道錯的並不是他,可他也會拿出男子的紳士風度讓你感覺你找到了安全的港灣。他會讓你體會到小女人的幸福,疼著你,寵著你。永遠讓你感覺生...