• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            劍孤寒的小站

            人生的價(jià)值不是用時(shí)間,而是用深度去衡量的!
            posts - 75, comments - 290, trackbacks - 0, articles - 0

               最近依然很忙,項(xiàng)目太緊已經(jīng)很久沒(méi)寫東西了。今天難得得空,把以前寫的一個(gè)RPG代碼翻出來(lái)看了看,發(fā)現(xiàn)很多設(shè)計(jì)上的問(wèn)題,所以準(zhǔn)備重寫了。這個(gè)游戲本來(lái)已接近完成,只要整合完各個(gè)系統(tǒng)就是一個(gè)完整的游戲了,現(xiàn)在推掉重寫老實(shí)說(shuō)心里是很不愿意的,但我更不愿意把一個(gè)自己都不滿意的東西發(fā)出來(lái),所以前思后想還是決定重寫了,還好自己的東西沒(méi)有項(xiàng)目壓力,有時(shí)間就弄弄
               好了,閑話就不多說(shuō)了,我在看代碼時(shí)首先注意到的一個(gè)問(wèn)題是,Galaxy2D游戲引擎的GUI系統(tǒng)適用范圍太窄,以至于在這個(gè)RPG中又寫了一個(gè)GUI系統(tǒng),這是因?yàn)镚UI系統(tǒng)控件之間的聯(lián)系太“散”了,也沒(méi)有一個(gè)層的概念,所以在遇到比較復(fù)雜的需求時(shí)就沒(méi)法用了。Galaxy2D的GUI系統(tǒng)是參考HGE寫的,在HGE的GUI系統(tǒng)里,所有的控件都是平級(jí)的,所以當(dāng)要控制GUIManager里的所有控件的一個(gè)界面上的某些控件時(shí)就變得非常麻煩,雖然后來(lái)寫了一個(gè)Window控件來(lái)建立一個(gè)“層”的關(guān)系,但后來(lái)發(fā)現(xiàn)還是不好用,而且由于很多功能與GUIManager相似,導(dǎo)致產(chǎn)生了大量的冗余代碼。另外,由于以前的GUI沒(méi)有消息路由機(jī)制,所以當(dāng)一個(gè)消息傳到一個(gè)最末端的控件上時(shí)就“死”掉了,根本沒(méi)機(jī)會(huì)再通知其他可以處理它的控件,這也使一些像某個(gè)控件被點(diǎn)擊后將另一個(gè)控件高亮等操作要實(shí)行硬編碼了,如果那一天那個(gè)控件改了名字或ID,這邊的代碼也要跟著改。以上這兩點(diǎn)都違背了設(shè)計(jì)模式里的“開(kāi)放-封閉”原則,這樣的代碼是非常不好維護(hù)的,所以準(zhǔn)備做如下修改:
               首先,把GUIManager中控件List的管理移到Window控件里去,GUIManager只負(fù)責(zé)把各種事件消息傳到頂層Window控件,而不再管理和維護(hù)控件列表,Window控件上可掛其他控件或再掛個(gè)Window控件。這樣就把層的關(guān)系建立起來(lái)了,而且GUIManager和Window控件的職責(zé)也清楚了,不會(huì)再有代碼冗余,以后如果還要再添功能也只要改Window控件就行了,GUIManager不用做修改。
               其次,給Window控件添加消息路由機(jī)制,該機(jī)制分兩種模式:Send和Post。Send為立即模式,Post為緩存模式,消息將在下一幀中處理。消息傳遞路徑為:自身子控件->同級(jí)控件的子控件->同級(jí)控件->父控件。這樣如果一個(gè)控件被點(diǎn)擊了,要高亮另一控件,只要發(fā)送一個(gè)消息即可,響應(yīng)控件在接到消息后把自己高亮起來(lái)就可以了。

            久久精品国产亚洲av水果派| 国产福利电影一区二区三区久久老子无码午夜伦不 | 日韩久久无码免费毛片软件| 精品无码久久久久久国产| 无码人妻久久一区二区三区蜜桃| 久久久久久午夜精品| 精品无码久久久久国产动漫3d| 激情伊人五月天久久综合| 久久综合一区二区无码| 中文字幕精品无码久久久久久3D日动漫 | 久久久久亚洲精品日久生情 | 26uuu久久五月天| 久久精品亚洲中文字幕无码麻豆| 久久国产精品-国产精品| 伊色综合久久之综合久久| www.久久精品| 亚洲精品乱码久久久久久蜜桃图片 | 99久久精品国产综合一区| 少妇熟女久久综合网色欲| 久久精品国产91久久麻豆自制| 久久精品国产99国产精品亚洲 | 69国产成人综合久久精品| 一级a性色生活片久久无| 国产精品熟女福利久久AV| 久久国产精品一国产精品金尊| 日本高清无卡码一区二区久久 | 午夜精品久久久久久中宇| 欧美粉嫩小泬久久久久久久 | 久久久久久九九99精品| 性欧美大战久久久久久久| 国产精品伊人久久伊人电影| 国产欧美一区二区久久| 精品久久久久久国产潘金莲| 久久综合狠狠综合久久综合88 | 99精品久久久久久久婷婷| 看久久久久久a级毛片| 亚洲精品美女久久777777| 午夜精品久久久久久毛片| 欧美午夜精品久久久久免费视| 国产偷久久久精品专区| 亚洲av日韩精品久久久久久a |