当前位置:首页 » 编程软件 » 表面编译器

表面编译器

发布时间: 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++的决心。

热点内容
算法精编 发布:2025-04-05 17:17:03 浏览:351
虐杀原形2和热血无赖哪个配置高 发布:2025-04-05 17:09:23 浏览:606
计算机常用算法 发布:2025-04-05 17:07:54 浏览:63
天选2密码在哪里设置 发布:2025-04-05 16:36:28 浏览:87
目前什么安卓手机续航能力最强 发布:2025-04-05 16:31:22 浏览:598
梦幻压缩打造什么意思 发布:2025-04-05 16:28:55 浏览:235
避难间里都需配置哪些东西 发布:2025-04-05 16:14:40 浏览:436
java的递归算法实现 发布:2025-04-05 16:08:50 浏览:150
db297forlinux 发布:2025-04-05 16:03:15 浏览:794
c语言缓冲 发布:2025-04-05 15:59:08 浏览:964