當前位置:首頁 » 編程軟體 » 表面編譯器

表面編譯器

發布時間: 2023-07-26 04:00:32

1. 求高手教我安裝 CS地圖製作軟體 Valve Hammer Editor 3.5 主要是不會設置,新建不了!

能說清楚點嗎 一、系統要求 操作系統:Windows 98/Me/2000/XP (推薦Win2000/XP) CPU:500 MHz (推薦1.7G以上) 顯卡:支持OpenGL (推薦GeFore2MX400以上) 內存:128MB (推薦256MB以上) 二、工具准備 -> Valve Hammer Editor 簡稱 Hammer (必備) -> Half-Life Level Compilation Controller 簡稱 HLCC -> Zoner's Halflife Tools 簡稱 ZHLT -> 其它相關工具:Wally、GenSurf、HLC、SprView、SprWiz、WinBSPC、PhotoShop、ACDSee…… CS地圖製作工具包我網盤里有 三、Hammer設置 打開Hammer,選擇菜單【工具】-【選項】打開【配置】對話框(第一次運行時會自動彈出)。 選擇【2D視圖】選項卡並鉤選【使用方向鍵控制已選擇的對象/頂點】方便以後進行精細操作。 選擇【3D視圖】選項卡,把【後備剪切緩存】拖至最大. 選擇【貼圖】選項卡,單擊【添加】按鈕選擇CS安裝目錄下「Valve」子目錄下的「halflife.wad」文件。同樣的辦法選擇CS安裝目錄下「cstrike」子目錄下的「cstrike.wad」文件。如果你還有其它貼圖文件請依次加入(提示:除這兩個文件外如果不是十分需要最好不要添加,因為必須保證貼圖文件的同步發行)選擇【游戲配置】選項卡,單擊配置【編輯】,在彈出的【編輯游戲配置】對話框中單擊【添加】輸入「CStrike」依次【確定】【關閉】。返回【游戲配置】選擇卡,單擊游戲數據文件【添加】,選擇Hammer安裝目錄下「FDG\Counter-Strike」子目錄下的「halflife-cs(中文).fgd」文件。這時再單擊游戲執行目錄【瀏覽】選擇CS的安裝目錄,單擊Mod目錄【瀏覽】選擇CS安裝目錄下的「cstrike」子目錄,單擊游戲目錄【瀏覽】選擇CS安裝目錄下的「valve」子目錄,單擊RMF目錄【瀏覽】選擇存放保存文檔的目錄(比如「C:\My documents\RMF」)。 選擇【編譯程序】選擇卡,配置選擇「CStrike」,單擊Game執行程序【瀏覽】選擇CS安裝目錄下的「HL.exe」(MOD版)或「CStrike.exe」(零售版),單擊CSG編譯程序【瀏覽】選擇ZHLT安裝目錄下的「hlcsg.exe」,單擊BSP編譯程序【瀏覽】選擇ZHLT安裝目錄下的「hlbsp.exe」,單擊VIS編譯程序【瀏覽】選擇ZHLT安裝目錄下的「hlvis.exe」,單擊RAD編譯程序【瀏覽】選擇ZHLT安裝目錄下的「hlrad.exe」,單擊最後一個【瀏覽】按鈕選擇一個編譯程序的臨時工作目錄即可。 工具說明 1、選擇工具 在四個視圖中選擇固體或實體,第一次選擇對象時必須按對象邊框選擇或中心句柄選擇,第一次選擇時,可以移動對象,更改對象大小,當第二次選擇時可以旋轉對象,按住Shift鍵將按標准角度15,30,45,60,75,90旋轉,當第三次選擇時可以對選擇進行變形處理。 按Ctrl鍵不放可以進行多選,按Shift鍵並拖動滑鼠可以進行復制。 2、縮放工具 在頂、前、側三個視圖中單擊左鍵放大視圖,單擊右鍵縮小視圖。如果有3D滑鼠那麼使用滾輪會有相同的效果。 3、攝像機工具 在攝像機視圖中進行多角度觀察。左鍵+拖動=原地旋轉,右鍵+拖動=上下左右平移,左鍵+右鍵+拖動=前後左右平移。 4、實體工具 建立地圖中的實體,可以在新建欄選擇類型或使用菜單【編輯】【屬性】進行修改。總之非常有用,比如添加光源,出生點,人質點,等。更多參考請見 WorldCraft 3.x 中文幫助。 5、塊工具 建立固體的工具,固體是所有地圖元件的基礎。 6、表面貼圖工具 對固體各個表面進行分別處理,使之擁有不同的材質。使用此工具將彈出【表面貼圖】對話框,其中的位移,縮放,旋轉將影響貼圖的效果(提示:最好使用【工具】【固定貼圖】命令將貼圖鎖定以免移動固體貼圖發生位移) 7、應用當前貼圖 將貼圖屬性欄中選則的貼圖付給視圖中選擇的固體 8、平面貼圖工具 製作類似埋雷點標志那樣效果的工具 9、切削工具 對一個固體進行切削,比如可以把四邊形切割為三角形或五邊形。(我個人認為完全可以用10代替) 10、頂點控制工具 對固體進行頂點編輯,功能強大,可以使物體變化出非常奇特的形狀,單也非常危險,由於編譯器不認負角,所以我們製作固體時必須保證沒有凹陷,這非常重要,往往很多的錯誤都是由於頂點編輯引起的。當使用頂點控制工具時選擇兩個對應中點(相鄰的兩個黃點)再按Ctrl+F即可添加一條邊。 11、路徑工具 製作活動路徑時使用。 最簡單的地圖應包含一個封閉的空間,至少一個出生點。現在我們開始製作一個地圖,它包含一個盒狀空間,天空,全局光源,警方出生點,匪方出生點。由此可以大概了解地圖的製作環境和過程。 打開Hammer,執行【文件】【新建】選擇【塊工具】在頂視圖拖拉出一個矩形,按回車鍵創建固體。 使用【選擇工具】選擇固體並在其它三個視圖中調整固體的大小(提示:當固體被選中時再次使用【選擇工具】單擊則可進行旋轉處理,不過請注意三個視圖的關系:-)) 在貼圖屬性欄上單擊【瀏覽】選擇一個合適的貼圖,按回車確認(提示:不要單擊【選擇】按鈕,在過濾文本框中可以輸入名稱用以搜索貼圖),用【選擇工具】選擇固體,按【應用當前貼圖】按鈕可以給固體更換貼圖。(單個表面貼圖的設置將在後面討論) 選擇菜單【工具】【挖空】可以將固體按一定厚度挖空。 選擇菜單【工具】【分解】使被組合的固體分解為單個固體。這時使用【攝像機工具】在攝像機視圖中拖拉滑鼠就可以從各個角度觀察場景(提示:左鍵=原地旋轉,右鍵=上下左右平移,左鍵+右鍵=前後左右平移)。使用【選擇工具】選擇這個「盒子」的頂蓋,然後用上面提到的方法付給名稱為「SKY」的貼圖。 選擇【實體工具】在新建欄上選擇種類為「light_environment」,然後在頂視圖中的「盒子」內部單擊並回車,創建了一個太陽實體,用【選擇工具】選擇太陽並保持滑鼠在某一個視圖中按鍵盤上的方向鍵進行位置調整。最後保證太陽在盒子內部。 用同樣的方法創建「info_player_start」(警方出生點)「info_player_deathmatch」(匪方出生點),保證位置不能太高(否則會跌死),不能接觸地面(否則出生後會無法移動)。 選擇菜單【地圖】【檢查問題】,如果沒有問題,就可以編譯了。如果出現錯誤,請檢查上面的步驟是否正確,並再次編譯。 選擇菜單【文件】【運行】,在【運行地圖】對話框中選中【不運行游戲】按【確定】,大約等待幾分鍾後,即可完成編譯過程。 退出Hammer,運行CS,選擇【區域網游戲】【建立游戲】選擇剛才已編譯好的地圖,進行測試。當然這個地圖沒有任何功能,但的確是自己親手製作的地圖啊。 表面貼圖 相對於整個固體的貼圖,我們還可以給固體的不同表面貼上不同的材質。使用【表面貼圖工具】或菜單【工具】【表面貼圖】命令打開表面貼圖對話框,這時可以使用【攝像機工具】移動攝像機,使用【選擇工具】選擇將要處理的表面(提示:按住Ctrl鍵可以進行多選)。單擊【瀏覽】選擇一個中意的貼圖,單擊【應用】即可看到效果(提示:單擊【隱藏掩模】可以去掉紅色的掩模,以便觀察實際效果)。如果你對默認的效果不滿意,則可以設置「縮放」「位移」「旋轉」等參數,也可以單擊【左】【中】【適】等按鈕進行快速匹配。 替換貼圖 當我們的地圖做了一段時間後,才發現某一個貼圖使用的不是很恰當,這時我們可以使用替換貼圖功能。單擊貼圖屬性工具欄上的【替換】彈出替換貼圖對話框,單擊目標下的【瀏覽】按鈕選擇將要被替換的貼圖(提示:鉤選選擇貼圖對話框左下角的「僅顯示使用過的貼圖」復選框,可以縮小瀏覽范圍),然後單擊替換為下的【瀏覽】選擇將要使用的貼圖,【確定】 顯示、隱藏 有時我們需要暫時隱藏一些物體,可以單擊【隱藏所選】按鈕,單擊【顯示所有】按鈕將恢復隱藏的物體。我們還可以將幾個物體進行組合,這樣便可以同時顯示或隱藏。 頂點編輯 選擇【頂點編輯】工具,選擇白色的控制點可以編輯頂點,選擇黃色的控制點可以編輯邊框,選擇一個白點並拖動到另一個點上可以刪除一個點,選擇對應的兩個黃點按「Ctrl+F」可以添加一條邊。參照其它說明 雕刻 有時我們需要用一個物體打穿另一個物體,這時我們選擇用來雕刻的物體,移動到被雕刻的物體上,選擇【工具】【雕刻】即可。注意的是一般用來雕刻的物體要比被雕刻的物體在縱深上要大,執行雕刻時推薦將不必要的物體隱藏,以免受到影響。 製作燈光 沒有燈光,進入游戲後就會一片黑暗,我們前面名為「light_environment」的實體代表太陽,它的作用就是一個全局光源,所有可以看到「SKY」貼圖的地方都可以得到光線。但有些地方比如地道就須要輔助光源了,我們有兩種方法添加光源:一、使用【實體工具】在需要的地方添加名為「Light」或「Light_spot」的實體,然後使用【編輯】【屬性】對光源進行設置;二、使用特定的發光貼圖。製作一個代表燈的固體並貼上材質,記下材質的名稱,使用「RADEditor」新建一個文件,單擊【添加】輸入剛才記下的名稱,對光源屬性進行設置(提示:亮度一般在10000左右,范圍較大時可以使用30000以上),保存文件到地圖*.rmf文件的目錄。在Hammer中,選擇菜單【文件】【運行】【專家模式】在「編譯/運行命令」下選擇「$light_exe」在右邊的參數尾部添加「 -lights $path\剛才保存的RAD文件名」即可。使用HLCC編譯時,請參照其它說明。 製作鏤空 有些東西如鐵絲網、柵欄、梯子扶手等都是此類物體,他們有部分空間是鏤空的。我們可以對這些物體賦予以「{」打頭名稱的貼圖,它們的藍色部分將會透明。然後選擇這些物體,選擇菜單【工具】【轉換為實體】,「類」選擇「func_wall」「渲染的模式」選擇「固體」,「透明度」輸入「255」。 製作梯子 使用梯子我們可以進行攀登。首先按製作鏤空的方法製作一個梯子模型,然後再製作一個比梯子模型稍大的固體並賦予「AAATRIGGER」材質,選擇剛才製作的「AAATRIGGER」固體,轉換為實體,「類」選擇「func_ladder」。 製作草 與鏤空不同的地方是「類」選擇「func_illusionary」。 製作可損壞物體 選擇欲轉換的固體,轉換為實體,類選擇「func_breakable」,「耐久度」輸入一個數字,數字越大,越堅固。「材料」可以選擇相應的類型。其它屬性可以按喜好設置。如果是玻璃,我們可以設置「透明度」為一個較小的值。 製作門 拉門:製作一個門的模型,轉換為「func_door」類型的實體即可。你可以修改其中的一些屬性,以便達到不同的效果。 轉門:轉門相對拉門要復雜一些。製作一個門的模型,再製作一個虛擬門軸的模型(提示:運行時看不見,可以繪制的比較粗略,但必須保證門軸模型的中心位於門軸的位置),然後賦予門軸「ORIGIN」名稱的貼圖,同時選擇門和門軸,轉換為「func_door_rotating」類型的實體,再對其它屬性進行設置即可。 製作水 選擇要轉換的固體,賦予以「!」打頭的貼圖,轉換為「func_water」實體即可。 地圖屬性 【地圖】【地圖屬性】中可以設置地圖的相關屬性,其中重要的有「地圖標題」「天空背景圖」(提示:背景圖由6張不同的貼圖組成,分別為*lf.tga、*rt.tga、*ft.tga、*bk.tga、*up.tga、*dn.tga,存放於CS安裝目錄下「cstrike\gfx\env」子目錄。「天空背景圖」取其文件名的共同部分*,比如「green」、「city1」等) ------------------------------------ 製作不同類型的地圖 解救人質 場景中必須包含「hostage_entity」(人質出生點)和「info_hostage_rescue」(人質安全區)類型的點狀實體(可配合「func_hostage_rescue」類型的固體實體使用)。 拆除炸彈 場景中必須包含「info_bomb_target」(埋炸彈點)類型的點狀實體(可配合「func_bomb_target」類型的固體實體使用)。 保護VIP 場景中必須包含「info_vip_start」(VIP出生點)類型的點狀實體,以及「func_vip_safetyzone」(VIP安全區)類型的固體實體。 它們所特有的實體不能同時出現在一個場景中! 可共用實體 「func_buyzone」(購買武器的范圍)類型的固體實體、其它實體。 使用HLCC編譯地圖 在Hammer中選擇【文件】【導出為MAP文件】導出一個MAP格式的文件。打開HLCC,其中【MAP目錄】指向剛才導出文件的目錄,【BSP目錄】指向CS安裝目錄的「cstrike\bsp」子目錄,【工具目錄】指向ZHLT的安裝目錄【半條命目錄】指向CS的安裝目錄。鉤選【選項】中的【支持ZHLT編譯工具】。選擇【參數B】中的【光源RAD文件】可以自定義光源材質的發光設置。單擊【文件】中的【編譯】即可進行編譯。一般來說,相對較大的地圖花費的時間也較長,我這里的一張地圖全部採取默認參數,就使用了近4個小時才編譯完,汗。(賽揚1.2,320MB RAM) 使用自定義貼圖 使用另一個工具Wally創建一個貼圖包(*.WAD)文件,裡麵包含了將要使用到的圖像文件,至於圖像的編輯,可以用PhotoShop等圖像處理軟體製作再復制到Wally。這里要注意的是,每一個貼圖都有一個名稱,此名稱決定了貼圖的類型和效果。打開Hammer中的【工具】【選項】【貼圖】選項卡,然後添加此貼圖包,即可在地圖中使用自定義貼圖。 反編譯地圖 使用WinBSPC打開一個地圖文件*.BSP然後在【轉換設置】里選擇【MAP】,選擇輸出路徑,其它保持默認,【確定】。用Hammer導入MAP文件即可。(提示:為了保證貼圖正確,請將原地圖的貼圖包文件*.WAD文件復制到CS安裝目錄的「cstrike」子目錄,然後添加到Hammer的貼圖集合) 注意的問題 製作地圖時應該注意,設計的原則是「棄繁從簡」,能簡化的物體就盡量簡化,能省略的就盡量省略;地圖不宜過大,過大時可以對其進行分隔,使其空間相對獨立,彼此之間可以用通道連接(請參照原帶地圖cs_st);站在一個位置,所看到的其它物體越少越好。這樣才能使地圖編譯地更快,出錯的機會更少,游戲運行的FPS才會越高,總之好處多多。 發布地圖 地圖製作好了當然要發布出去,保證地圖的正常運行需要將如下文件打包:製作好的地圖文件(*.BSP)、地圖貼圖文件(*.WAD)。如果使用了其它資源也必須一同打包:圖形組件(*.SPR)、聲音(*.WAV)、模型(*.MDL)、背景(*.TGA)、地圖說明(*.TXT)。如果還製作了機器人路點文件當然也要打包:(*.PWF)( *.PXP)。最後寫一個安裝說明。 一、系統要求 操作系統:Windows 98/Me/2000/XP (推薦Win2000/XP) CPU:500 MHz (推薦1.7G以上) 顯卡:支持OpenGL (推薦GeFore2MX400以上) 內存:128MB (推薦256MB以上) 二、工具准備 -> Valve Hammer Editor 簡稱 Hammer (必備) -> Half-Life Level Compilation Controller 簡稱 HLCC -> Zoner's Halflife Tools 簡稱 ZHLT -> 其它相關工具:Wally、GenSurf、HLC、SprView、SprWiz、WinBSPC、PhotoShop、ACDSee…… CS地圖製作工具包我網盤里有 三、Hammer設置 打開Hammer,選擇菜單【工具】-【選項】打開【配置】對話框(第一次運行時會自動彈出)。 選擇【2D視圖】選項卡並鉤選【使用方向鍵控制已選擇的對象/頂點】方便以後進行精細操作。 選擇【3D視圖】選項卡,把【後備剪切緩存】拖至最大. 選擇【貼圖】選項卡,單擊【添加】按鈕選擇CS安裝目錄下「Valve」子目錄下的「halflife.wad」文件。同樣的辦法選擇CS安裝目錄下「cstrike」子目錄下的「cstrike.wad」文件。如果你還有其它貼圖文件請依次加入(提示:除這兩個文件外如果不是十分需要最好不要添加,因為必須保證貼圖文件的同步發行)選擇【游戲配置】選項卡,單擊配置【編輯】,在彈出的【編輯游戲配置】對話框中單擊【添加】輸入「CStrike」依次【確定】【關閉】。返回【游戲配置】選擇卡,單擊游戲數據文件【添加】,選擇Hammer安裝目錄下「FDG\Counter-Strike」子目錄下的「halflife-cs(中文).fgd」文件。這時再單擊游戲執行目錄【瀏覽】選擇CS的安裝目錄,單擊Mod目錄【瀏覽】選擇CS安裝目錄下的「cstrike」子目錄,單擊游戲目錄【瀏覽】選擇CS安裝目錄下的「valve」子目錄,單擊RMF目錄【瀏覽】選擇存放保存文檔的目錄(比如「C:\My documents\RMF」)。 選擇【編譯程序】選擇卡,配置選擇「CStrike」,單擊Game執行程序【瀏覽】選擇CS安裝目錄下的「HL.exe」(MOD版)或「CStrike.exe」(零售版),單擊CSG編譯程序【瀏覽】選擇ZHLT安裝目錄下的「hlcsg.exe」,單擊BSP編譯程序【瀏覽】選擇ZHLT安裝目錄下的「hlbsp.exe」,單擊VIS編譯程序【瀏覽】選擇ZHLT安裝目錄下的「hlvis.exe」,單擊RAD編譯程序【瀏覽】選擇ZHLT安裝目錄下的「hlrad.exe」,單擊最後一個【瀏覽】按鈕選擇一個編譯程序的臨時工作目錄即可。 工具說明 1、選擇工具 在四個視圖中選擇固體或實體,第一次選擇對象時必須按對象邊框選擇或中心句柄選擇,第一次選擇時,可以移動對象,更改對象大小,當第二次選擇時可以旋轉對象,按住Shift鍵將按標准角度15,30,45,60,75,90旋轉,當第三次選擇時可以對選擇進行變形處理。 按Ctrl鍵不放可以進行多選,按Shift鍵並拖動滑鼠可以進行復制。 2、縮放工具 在頂、前、側三個視圖中單擊左鍵放大視圖,單擊右鍵縮小視圖。如果有3D滑鼠那麼使用滾輪會有相同的效果。 3、攝像機工具 在攝像機視圖中進行多角度觀察。左鍵+拖動=原地旋轉,右鍵+拖動=上下左右平移,左鍵+右鍵+拖動=前後左右平移。 4、實體工具 建立地圖中的實體,可以在新建欄選擇類型或使用菜單【編輯】【屬性】進行修改。總之非常有用,比如添加光源,出生點,人質點,等。更多參考請見 WorldCraft 3.x 中文幫助。 5、塊工具 建立固體的工具,固體是所有地圖元件的基礎。 6、表面貼圖工具 對固體各個表面進行分別處理,使之擁有不同的材質。使用此工具將彈出【表面貼圖】對話框,其中的位移,縮放,旋轉將影響貼圖的效果(提示:最好使用【工具】【固定貼圖】命令將貼圖鎖定以免移動固體貼圖發生位移) 7、應用當前貼圖 將貼圖屬性欄中選則的貼圖付給視圖中選擇的固體 8、平面貼圖工具 製作類似埋雷點標志那樣效果的工具 9、切削工具 對一個固體進行切削,比如可以把四邊形切割為三角形或五邊形。(我個人認為完全可以用10代替) 10、頂點控制工具 對固體進行頂點編輯,功能強大,可以使物體變化出非常奇特的形狀,單也非常危險,由於編譯器不認負角,所以我們製作固體時必須保證沒有凹陷,這非常重要,往往很多的錯誤都是由於頂點編輯引起的。當使用頂點控制工具時選擇兩個對應中點(相鄰的兩個黃點)再按Ctrl+F即可添加一條邊。 11、路徑工具 製作活動路徑時使用。 最簡單的地圖應包含一個封閉的空間,至少一個出生點。現在我們開始製作一個地圖,它包含一個盒狀空間,天空,全局光源,警方出生點,匪方出生點。由此可以大概了解地圖的製作環境和過程。 打開Hammer,執行【文件】【新建】選擇【塊工具】在頂視圖拖拉出一個矩形,按回車鍵創建固體。 使用【選擇工具】選擇固體並在其它三個視圖中調整固體的大小(提示:當固體被選中時再次使用【選擇工具】單擊則可進行旋轉處理,不過請注意三個視圖的關系:-)) 在貼圖屬性欄上單擊【瀏覽】選擇一個合適的貼圖,按回車確認(提示:不要單擊【選擇】按鈕,在過濾文本框中可以輸入名稱用以搜索貼圖),用【選擇工具】選擇固體,按【應用當前貼圖】按鈕可以給固體更換貼圖。(單個表面貼圖的設置將在後面討論) 選擇菜單【工具】【挖空】可以將固體按一定厚度挖空。 選擇菜單【工具】【分解】使被組合的固體分解為單個固體。這時使用【攝像機工具】在攝像機視圖中拖拉滑鼠就可以從各個角度觀察場景(提示:左鍵=原地旋轉,右鍵=上下左右平移,左鍵+右鍵=前後左右平移)。使用【選擇工具】選擇這個「盒子」的頂蓋,然後用上面提到的方法付給名稱為「SKY」的貼圖。 選擇【實體工具】在新建欄上選擇種類為「light_environment」,然後在頂視圖中的「盒子」內部單擊並回車,創建了一個太陽實體,用【選擇工具】選擇太陽並保持滑鼠在某一個視圖中按鍵盤上的方向鍵進行位置調整。最後保證太陽在盒子內部。 用同樣的方法創建「info_player_start」(警方出生點)「info_player_deathmatch」(匪方出生點),保證位置不能太高(否則會跌死),不能接觸地面(否則出生後會無法移動)。 選擇菜單【地圖】【檢查問題】,如果沒有問題,就可以編譯了。如果出現錯誤,請檢查上面的步驟是否正確,並再次編譯。 選擇菜單【文件】【運行】,在【運行地圖】對話框中選中【不運行游戲】按【確定】,大約等待幾分鍾後,即可完成編譯過程。 退出Hammer,運行CS,選擇【區域網游戲】【建立游戲】選擇剛才已編譯好的地圖,進行測試。當然這個地圖沒有任何功能,但的確是自己親手製作的地圖啊。 表面貼圖 相對於整個固體的貼圖,我們還可以給固體的不同表面貼上不同的材質。使用【表面貼圖工具】或菜單【工具】【表面貼圖】命令打開表面貼圖對話框,這時可以使用【攝像機工具】移動攝像機,使用【選擇工具】選擇將要處理的表面(提示:按住Ctrl鍵可以進行多選)。單擊【瀏覽】選擇一個中意的貼圖,單擊【應用】即可看到效果(提示:單擊【隱藏掩模】可以去掉紅色的掩模,以便觀察實際效果)。如果你對默認的效果不滿意,則可以設置「縮放」「位移」「旋轉」等參數,也可以單擊【左】【中】【適】等按鈕進行快速匹配。 替換貼圖 當我們的地圖做了一段時間後,才發現某一個貼圖使用的不是很恰當,這時我們可以使用替換貼圖功能。單擊貼圖屬性工具欄上的【替換】彈出替換貼圖對話框,單擊目標下的【瀏覽】按鈕選擇將要被替換的貼圖(提示:鉤選選擇貼圖對話框左下角的「僅顯示使用過的貼圖」復選框,可以縮小瀏覽范圍),然後單擊替換為下的【瀏覽】選擇將要使用的貼圖,【確定】 顯示、隱藏 有時我們需要暫時隱藏一些物體,可以單擊【隱藏所選】按鈕,單擊【顯示所有】按鈕將恢復隱藏的物體。我們還可以將幾個物體進行組合,這樣便可以同時顯示或隱藏。 頂點編輯 選擇【頂點編輯】工具,選擇白色的控制點可以編輯頂點,選擇黃色的控制點可以編輯邊框,選擇一個白點並拖動到另一個點上可以刪除一個點,選擇對應的兩個黃點按「Ctrl+F」可以添加一條邊。參照其它說明 雕刻 有時我們需要用一個物體打穿另一個物體,這時我們選擇用來雕刻的物體,移動到被雕刻的物體上,選擇【工具】【雕刻】即可。注意的是一般用來雕刻的物體要比被雕刻的物體在縱深上要大,執行雕刻時推薦將不必要的物體隱藏,以免受到影響。 製作燈光 沒有燈光,進入游戲後就會一片黑暗,我們前面名為「light_environment」的實體代表太陽,它的作用就是一個全局光源,所有可以看到「SKY」貼圖的地方都可以得到光線。但有些地方比如地道就須要輔助光源了,我們有兩種方法添加光源:一、使用【實體工具】在需要的地方添加名為「Light」或「Light_spot」的實體,然後使用【編輯】【屬性】對光源進行設置;二、使用特定的發光貼圖。製作一個代表燈的固體並貼上材質,記下材質的名稱,使用「RADEditor」新建一個文件,單擊【添加】輸入剛才記下的名稱,對光源屬性進行設置(提示:亮度一般在10000左右,范圍較大時可以使用30000以上),保存文件到地圖*.rmf文件的目錄。在Hammer中,選擇菜單【文件】【運行】【專家模式】在「編譯/運行命令」下選擇「$light_exe」在右邊的參數尾部添加「 -lights $path\剛才保存的RAD文件名」即可。使用HLCC編譯時,請參照其它說明。 製作鏤空 有些東西如鐵絲網、柵欄、梯子扶手等都是此類物體,他們有部分空間是鏤空的。我們可以對這些物體賦予以「{」打頭名稱的貼圖,它們的藍色部分將會透明。然後選擇這些物體,選擇菜單【工具】【轉換為實體】,「類」選擇「func_wall」「渲染的模式」選擇「固體」,「透明度」輸入「255」。 製作梯子 使用梯子我們可以進行攀登。首先按製作鏤空的方法製作一個梯子模型,然後再製作一個比梯子模型稍大的固體並賦予「AAATRIGGER」材質,選擇剛才製作的「AAATRIGGER」固體,轉換為實體,「類」選擇「func_ladder」。 製作草 與鏤空不同的地方是「類」選擇「func_illusionary」。 製作可損壞物體 選擇欲轉換的固體,轉換為實體,類選擇「func_breakable」,「耐久度」輸入一個數字,數字越大,越堅固。「材料」可以選擇相應的類型。其它屬性可以按喜好設置。如果是玻璃,我們可以設置「透明度」為一個較小的值。 製作門 拉門:製作一個門的模型,轉換為「func_door」類型的實體即可。你可以修改其中的一些屬性,以便達到不同的效果。 轉門:轉門相對拉門要復雜一些。製作一個門的模型,再製作一個虛擬門軸的模型(提示:運行時看不見,可以繪制的比較粗略,但必須保證門軸模型的中心位於門軸的位置),然後賦予門軸「ORIGIN」名稱的貼圖,同時選擇門和門軸,轉換為「func_door_rotating」類型的實體,再對其它屬性進行設置即可。 製作水 選擇要轉換的固體,賦予以「!」打頭的貼圖,轉換為「func_water」實體即可。 地圖屬性 【地圖】【地圖屬性】中可以設置地圖的相關屬性,其中重要的有「地圖標題」「天空背景圖」(提示:背景圖由6張不同的貼圖組成,分別為*lf.tga、*rt.tga、*ft.tga、*bk.tga、*up.tga、*dn.tga,存放於CS安裝目錄下「cstrike\gfx\env」子目錄。「天空背景圖」取其文件名的共同部分*,比如「green」、「city1」等) ------------------------------------ 製作不同類型的

2. 新手如何學習編程

熟悉以下關鍵東西,可以邊學邊做,定期訓練,經常思考,長期積累:

1、語法。

2、基礎理論(數學、數據結構、演算法等)。

3、設計方法(編程原則、設計模式、框架設計等)。

4、庫(核心、基礎、UI、擴展、游戲引擎等)。

5、計算機相關(操作系統、網路、圖形學等)。

6、領域知識(游戲設計、網站設計等)。

7、開發工具(編輯器、IDE、自動部署等)。

8、項目管理(進度管理、分工協作、Bug管理、版本控制等)。

最普遍也是最重要的能力:創造力。努力分析並理解好做什麼以及怎麼做。要知道上面那些東西一開始都是不存在的。

具體方法包括:

1、快速閱讀入門教程和書籍,適合學習語言和基礎庫。比如我學Java讀的《Java編程思想》,練習題做過一點,然後學ActionScript就沒讀過書,只讀過Adobe官方文檔《ActionScript 3.0編程》。

2、閱讀庫的文檔、實例、源碼。比如Flash、Flex開發,熟悉官方API很重要,很多細節要具體使用時才注意到,這時候最好做個筆記,雖然我從沒看過我的筆記。

3、做一個自己感興趣或熟悉的小項目,比如我就以黑白棋游戲作為多個語言的試水項目,一樣的邏輯,便於把關注點放在語言特點上。

4、自己動手豐衣足食。廚師有菜譜,程序員可沒菜譜。比如我做游戲,最關鍵的游戲編程知識全部是動手學出來的,很少有專門針對某個業務領域(如游戲)的編程書籍,要麼是入門書,要麼是模式書(如演算法)、理論書(圖形學),很少有書籍教你如何開發一個45度角地圖系統加編輯器的,全靠自己思考,以及看前人的代碼,需要時找些網路資料。關鍵是,可以培養最重要的創造力。

對於演算法和設計模式,可以研讀下,但是關鍵還是靠平時如何使用了。新手勉強不來的。

項目管理方面的,就得靠工作經驗了,多思考多提意見不要只走流程。

3. 為什麼要學習編譯原理

大學課程為什麼要開設編譯原理呢?這門課程關注的是編譯器方面的產生原理和技術問題,似乎和計算機的基礎領域不沾邊,可是編譯原理卻一直作為大學本科的必修課程,同時也成為了研究生入學考試的必考內容。編譯原理及技術從本質上來講就是一個演算法問題而已,當然由於這個問題十分復雜,其解決演算法也相對復雜。我們學的數據結構與演算法分析也是講演算法的,不過講的基礎演算法,換句話說講的是演算法導論,而編譯原理這門課程講的就是比較專註解決一種的演算法了。在20世紀50年代,編譯器的編寫一直被認為是十分困難的事情,第一Fortran的編譯器據說花了18年的時間才完成。在人們嘗試編寫編譯器的同時,誕生了許多跟編譯相關的理論和技術,而這些理論和技術比一個實際的編譯器本身價值更大。就猶如數學家們在解決著名的哥德巴赫猜想一樣,雖然沒有最終解決問題,但是其間誕生不少名著的相關數論。
推薦參考書
雖然編譯理論發展到今天,已經有了比較成熟的部分,但是作為一個大學生來說,要自己寫出一個像TurbocC,Java那樣的編譯器來說還是太難了。不僅寫編譯器困難,學習編譯原理這門課程也比較困難。
第一本書的原名叫《CompilersPrinciples,Techniques,andTools》,另外一個響亮的名字就是龍書。原因是這本書的封面上有條紅色的龍,也因為獗臼樵詒嘁朐?砘?嘴域確實?忻?所以很多國外的學者都直接取名為龍書。最近機械工業出版社已經出版了此書的中文版,名字就叫《編譯原理》。該書出的比較早,大概是在85或86年編寫完成的,作者之一還是著名的貝爾實驗室的科學家。裡面講解的核心編譯原理至今都沒有變過,所以一直到今天,它的價值都非凡。這本書最大的特點就是一開始就通過一個實際的小例子,把編譯原理的大致內容羅列出來,讓很多編譯原理的初學者很快心裡有了個底,也知道為什麼會有這些理論,怎麼運用這些理論。而這一點是我感覺國內的教材缺乏的東西,所以國內的教材都不是寫給願意自學的讀者,總之讓人看了半天,卻不知道裡面的東西有什麼用。
第二本書的原名叫《ModernCompilerDesign》,中文名字叫做《現代編譯程序設計》。該書由人民郵電出版社所出。此書比較關注的是編譯原理的實踐,書中給出了不少的實際程序代碼,還有很多實際的編譯技術問題等等。此書另外一個特點就是其現代而字。在傳統的編譯原理教材中,你是不可能看到如同Java中的垃圾回收等演算法的。因為Java這樣的解釋執行語言是在近幾年才流行起來的東西。如果你想深入學習編譯原理的理論知識,那麼你肯定得看前面那本龍書,如果你想自己動手做一個先進的編譯器,那麼你得看這本《現代編譯程序設計》。
第三本書就是很多國內的編譯原理學者都推薦的那本《編譯原理及實踐》。或許是這本書引入國內比較早吧,我記得我是在高中就買了這本書,不過也是在前段時間才把整本書看完。此書作為入門教程也的確是個不錯的選擇。書中給出的編譯原理講解也相當細致,雖然不如前面的龍書那麼深入,但是很多地方都是點到為止,作為大學本科教學已經是十分深入了。該書的特點就是注重實踐,不過感覺還不如前面那本《現代編譯程序設計》的實踐味道更重。此書的重點還是在原理上的實踐,而非前面那本那樣的技術實踐。《編譯原理及實踐》在講解編譯原理的各個部分的同時,也在逐步實踐一個現代的編譯器TinyC.等你把整本書看完,差不多自己也可以寫一個TinyC了。作者還對Lex和Yacc這兩個常用的編譯相關的工具進行了很詳細的說明,這一點也是很難在國內的教材中看到的。
推薦了這三本教材,都有英文版和中文版的。很多英文好的同學只喜歡看原版的書,不我的感覺是這三本書的翻譯都很不錯,沒有必要特別去買英文版的。理解理論的實質比理解表面的文字更為重要。
編譯原理的實質
幾乎每本編譯原理的教材都是分成詞法分析,語法分析(LL演算法,遞歸下降演算法,LR演算法),語義分析,運行時環境,中間代碼,代碼生成,代碼優化這些部分。其實現在很多編譯原理的教材都是按照85,86出版的那本龍書來安排教學內容的,所以那本龍書的內容格式幾乎成了現在編譯原理教材的定式,包括國內的教材也是如此。一般來說,大學裡面的本科教學是不可能把上面的所有部分都認真講完的,而是比較偏重於前面幾個部分。像代碼優化那部分東西,就像個無底洞一樣,如果要認真講,就是單獨開一個學期的課也不可能講得清楚。所以,一般對於本科生,對詞法分析和語法分析掌握要求就相對要高一點了。
詞法分析相對來說比較簡單。可能是詞法分析程序本身實現起來很簡單吧,很多沒有學過編譯原理的人也同樣可以寫出各種各樣的詞法分析程序。不過編譯原理在講解詞法分析的時候,重點把正則表達式和自動機原理加了進來,然後以一種十分標準的方式來講解詞法分析程序的產生。這樣的做法道理很明顯,就是要讓詞法分析從程序上升到理論的地步。
語法分析部分就比較麻煩一點了。現在一般有兩種語法分析演算法,LL自頂向下演算法和LR自底向上演算法。LL演算法還好說,到了LR演算法的時候,困難就來了。很多自學編譯原理的都是遇到LR演算法的理解成問題後就放棄了自學。其實這些東西都是只要大家理解就可以了,又不是像詞法分析那樣非得自己寫出來才算真正的會。像LR演算法的語法分析器,一般都是用工具Yacc來生成,實踐中完全沒有比較自己來實現。對於LL演算法中特殊的遞歸下降演算法,因為其實踐十分簡單,那麼就應該要求每個學生都能自己寫。當然,現在也有不少好的LL演算法的語法分析器,不過要是換在非C平台,比如Java,Delphi,你不能運用YACC工具了,那麼你就只有自己來寫語法分析器。
等學到詞法分析和語法分析時候,你可能會出現這樣的疑問:詞法分析和語法分析到底有什麼?就從編譯器的角度來講,編譯器需要把程序員寫的源程序轉換成一種方便處理的數據結構(抽象語法樹或語法樹),那麼這個轉換的過程就是通過詞法分析和語法分析的。其實詞法分析並非一開始就被列入編譯器的必備部分,只是我們為了簡化語法分析的過程,就把詞法分析這種繁瑣的工作單獨提取出來,就成了現在的詞法分析部分。除了編譯器部分,在其它地方,詞法分析和語法分析也是有用的。比如我們在DOS,Unix,Linux下輸入命令的時候,程序如何分析你輸入的命令形式,這也是簡單的應用。總之,這兩部分的工作就是把不規則的文本信息轉換成一種比較好分析好處理的數據結構。那麼為什麼編譯原理的教程都最終把要分析的源分析轉換成樹這種數據結構呢?數據結構中有Stack,Line,List這么多數據結構,各自都有各自的特點。但是Tree這種結構有很強的遞歸性,也就是說我們可以把Tree的任何結點Node提取出來後,它依舊是一顆完整的Tree。這一點符合我們現在編譯原理分析的形式語言,比如我們在函數裡面使用函樹,循環中使用循環,條件中使用條件等等,那麼就可以很直觀地表示在Tree這種數據結構上。同樣,我們在執行形式語言的程序的時候也是如此的遞歸性。在編譯原理後面的代碼生成的部分,就會介紹一種堆棧式的中間代碼,我們可以根據分析出來的抽象語法樹,很容易,很機械地運用遞歸遍歷抽象語法樹就可以生成這種指令代碼。而這種代碼其實也被廣泛運用在其它的解釋型語言中。像現在流行的Java,.NET,其底層的位元組碼bytecode,可以說就是這中基於堆棧的指令代碼的。
關於語義分析,語法制導翻譯,類型檢查等等部分,其實都是一種完善前面得到的抽象語法樹的過程。比如說,我們寫C語言程序的時候,都知道,如果把一個浮點數直接賦值給一個整數,就會出現類型不匹配,那麼C語言的編譯器是怎麼知道的呢?就是通過這一步的類型檢查。像C++語言這中支持多態函數的語言,這部分要處理的問題就更多更復雜了。大部編譯原理的教材在這部分都是講解一些比較好的處理策略而已。因為新的問題總是在發生,舊的辦法不見得足夠解決。
本來說,作為一個編譯器,起作用的部分就是用戶輸入的源程序到最終的代碼生成。但是在講解最終代碼生成的時候,又不得不講解機器運行環境等內容。因為如果你不知道機器是怎麼執行最終代碼的,那麼你當然無法知道如何生成合適的最終代碼。這部分內容我自我感覺其意義甚至超過了編譯原理本身。因為它會把一個計算機的程序的運行過程都通通排在你面前,你將來可能不會從事編譯器的開發工作,但是只要是和計算機軟體開發相關的領域,都會涉及到程序的執行過程。運行時環境的講解會讓你更清楚一個計算機程序是怎麼存儲,怎麼裝載,怎麼執行的。關於部分的內容,我強烈建議大家看看龍書上的講解,作者從最基本的存儲組織,存儲分配策略,非局部名字的訪問,參數傳遞,符號表到動態存儲分配(malloc,new)都作了十分詳細的說明。這些東西都是我們編寫平常程序的時候經常要做的事情,但是我們卻少去探求其內部是如何完成。
關於中間代碼生成,代碼生成,代碼優化部分的內容就實在不好說了。國內很多教材到了這部分都會很簡單地走馬觀花講過去,學生聽了也只是作為了解,不知道如何運用。不過這部分內容的東西如果要認真講,單獨開一學期的課程都講不完。在《編譯原理及實踐》的書上,對於這部分的講解就恰到好處。作者主要講解的還是一種以堆棧為基礎的指令代碼,十分通俗易懂,讓人看了後,很容易模仿,自己下來後就可以寫自己的代碼生成。當然,對於其它代碼生成技術,代碼優化技術的講解就十分簡單了。如果要仔細研究代碼生成技術,其實另外還有本叫做《》,那本書現在由機械工業出版社引進的,十分厚重,而且是英文原版。不過這本書我沒有把它列為推薦書給大家,畢竟能把龍書的內容搞清楚,在中國已經就算很不錯的高手了,到那個時候再看這本《》也不遲。代碼優化部分在大學本科教學中還是一個不太重要的部分,就是算是實踐過程中,相信大家也不太運用得到。畢竟,自己做的編譯器能正確生成執行代碼已經很不錯了,還談什麼優化呢?
編譯原理的課程畢竟還只是講解原理的課程,不是專門的編譯技術課程。這兩門課程是有很大的區別的。編譯技術更關注實際的編寫編譯器過程中運用到的技術,而原理的課

4. 搞不懂:如果C++在每個平台都有編譯器,不就想JAVA一樣成了跨平台的了嗎

C++之父評論C++與Java

如果人們非要拿C++和Java來作比較,我建議他們去閱讀The Design and Evolution of C++,看看C++為什麼是今天這個樣子,用我在設計C++時遵從的原則來檢驗這兩種語言。這些原則與SUN的Java開發小組所持的理念顯然是不同的。除了表面語法的相似性之外,C++與Java是截然不同的語言。在很多方面,Java更像Smalltalk。(Sun的培訓教材清楚地寫道:Java在設計上採用了與C++相似的語法,與Smalltalk相似的語義。所以可以說Java與C++是貌合神離,與Smalltalk才是心有靈犀。)Java語言相對簡單,這部分是一種錯覺,部分是因為這種語言還不完整。隨著時間的推移,Java在體積和復雜程度上都會大大增長。在體積上它會增長兩到三倍,而且會出現一些實現相關的擴展或者庫。這是一條每個成功的商業語言都必須走過的發展之路。隨便分析一種你認為在很大范圍內取得了成功的語言,我知道肯定是無有例外者,而且實際上這非常有道理。

上邊這段話是在Java 1.1推出之前寫的。我確信Java需要類似模板的機制,並且需要增強對於固有類型的支持。簡單地說,就是為了基本的完整性也應該做這些工作。另外還需要做很多小的改動,大部分是擴展。1998年秋,我從James Gosling(Java語言的創始人)那裡得到一份建議書,說是要在Java中增加固有類型、操作符重載以及數學計算支持。

還有一篇論文,是數學分析領域的世界級大師,伯克利大學的W. Kahan教授所寫的How Java's Floating-Point Hurts Everyone Everywhere(且看Java的浮點運算如何危害了普天下的芸芸眾生),揭露了Java的一些秘密。我發現在電視和出版物中關於Java的鼓吹是不準確的,而且氣勢洶洶,讓人討厭。大肆叫囂凡是非Java的代碼都是垃圾,這是對程序員的侮辱;建議把所有的保留代碼都用Java重寫,這是喪心病狂,既不現實也不負責任。Sun和他的追隨者似乎覺得為了對付微軟罪惡的「帝國時代」,就必須如此自吹自擂。但是侮辱和欺詐只會把那些喜歡使用不同編程語言的程序員逼到微軟陣營里去。

Java並非平台無關,它本身就是平台。跟Windows一樣,它也是一個專有的商業平台。也就是說,你可以為Windows/Intel編寫代碼,也可以為Java/JVM編寫代碼,在任何一種情況下,你都是在為一個屬於某個公司的平台寫代碼,這些代碼都是與該公司的商業利益扯在一起的。當然你可以使用任何一種語言,結合操作系統的機制來編寫可供JVM執行的程序,但是JVM之類的東西是強烈地偏向於Java語言的。它一點也不像是通用的、公平的、語言中立的VM/OS。私下裡,我會堅持使用可移植的C++作大部分工作,用不同的語言作餘下的工作。

「Java is not platform-independent, it is the platform」,B. S的這句評語對於C++用戶有著很大的影響,有些C++高手甚至把這句話作為自己的簽名檔,以表明對Java的態度和誓死捍衛C++的決心。

熱點內容
nsurlsession上傳 發布:2025-02-06 06:55:18 瀏覽:336
亞洲十帥exo訪問 發布:2025-02-06 06:51:40 瀏覽:98
編程一首詩 發布:2025-02-06 06:45:04 瀏覽:528
驚聲尖笑5下載ftp 發布:2025-02-06 06:33:16 瀏覽:528
共享文件夾讓輸入密碼 發布:2025-02-06 06:32:28 瀏覽:970
收銀伺服器響應出錯什麼意思 發布:2025-02-06 06:24:43 瀏覽:607
sql用戶授權 發布:2025-02-06 06:24:42 瀏覽:677
蘋果手機相冊顯示正在上傳 發布:2025-02-06 06:05:43 瀏覽:542
hadoop下載文件夾 發布:2025-02-06 06:05:08 瀏覽:187
鎧最強配置是哪些 發布:2025-02-06 06:04:22 瀏覽:360