坦克装甲车建模教程
渲染
车灯
坦克 主体 挤压、 挤压、复 制、旋转 画出车灯 架
坦克 炮塔
坦克 履带 将车灯和 灯架组合 起来
坦克 附件
渲染
车灯
坦克 主体 将车灯组 群放在合 适位置上
坦克 炮塔
坦克 履带 缩小复制 出小车灯 放于其后
坦克 附件
渲染
车灯
坦克 主体
坦克 炮塔
坦克 履带
坦克 附件
用24个 个 圆柱实 体与坦 克主体 做差集 形成凹 槽
LOGO
CAID(犀牛) 犀牛) 坦克装甲车
制作人:thecreator (TL) 制作人:
主要步骤
可在步骤上单击跳到相应步骤 坦克主体 坦克炮塔 坦克履带 坦克附件 渲染 最终效果
坦克装甲车
坦克 主体
进入犀牛后为 现为模型分好 图层
坦克 炮塔
坦克 履带
坦克 附件
坦克 主体 用先画辅助 线后挤压的 方法做出舱 门鱼舱体的 连接件
坦克 炮塔
坦克 履带 将舱门旋 转一个角 度
坦克 附件
渲染
舱口
坦克 主体 双轨扫掠 出天线基 座
坦克 炮塔
坦克 履带 用PIPE命 命 令画出天 线和把手
坦克 附件
渲染
车灯
坦克 主体 画出车灯 外轮廓 坦克 炮塔
坦克 履带 旋转成实 体 坦克 附件
使用直, 使用直,曲 线命令画出 炮塔线框
坦克 附件
渲染
坦克装甲车
坦克 主体
坦克 炮塔
坦克 履带
使用 SWEEP2 和PATCH 命令利用 炮塔线框 建出炮塔 的各个面
坦克 附件
渲染
坦克炮塔最终效果
坦克 主体
坦克 炮塔
坦克 履带
坦克 附件
渲染
坦克装甲车
坦克 主体 使用LINES 使用 画出履带的 个体 并挤压 成实体
坦克 履带
用CIRCLE和 和 ARRAY命令画 命令画 出小齿轮外形 并挤压
坦克 附件
渲染
履带齿轮
坦克 主体
坦克 炮塔
坦克 履带
用和大齿 轮相同的 方法做出 凹凸细节 并倒圆角
坦克 附件
渲染
履带齿轮
坦克 主体
坦克 炮塔
坦克 履带
坦克 附件
阵列小齿 轮并用双 轴缩放出 更小的齿 轮放于上 端
渲染
渲染
渲染效果
坦克 主体
坦克 炮塔
坦克 履带
坦克 附件
渲染
最终效果图
LOGO
制作人:thecreator 制作人:
渲染
模型最终效果
渲染准备
坦克 主体 准备好渲 染用的迷 彩贴图和 其中的单 色贴图
坦克 炮塔
坦克 履带 在犀牛中 重新划分 图层为渲 染做准备
坦克 附件
渲染
渲染准备
坦克 主体 将3DM文 文 件导入 KEYSHO T渲染器中 渲染器中 并对相应 图层赋予 合适的材 质
坦克 炮塔
坦克 履带
坦克 附件
坦克 炮塔
坦克 履带 画出履带的 椭圆轨迹 并 按轨迹阵列 出履带
坦克 附件
渲染
履带最终效果
坦克 主体
坦克 炮塔
坦克 履带
坦克 附件
渲染
履带齿轮
坦克 主体
坦克 炮塔
坦克 履带
坦克 附件
使用 CIRCLE 和TRIM 命令画出 大齿轮轮 廓
渲染
履带齿轮
坦克 主体
坦克 炮塔
挤出曲线 后用大小 圆柱实体 做出凹槽
圈定坦克的
在正视图中使 用MIRRO和 和 CRUVE画出坦 画出坦 克主体的曲线
坦克 炮塔
坦克 履带 挤出坦克 主体曲线 成实体 并调整好 位置
坦克 附件
渲染
坦克装甲车
坦克 主体
在俯视图中画 出一上一下 一 大一小两个矩 形 并放样出炮 塔基座
坦克 炮塔
坦克 履带
附件:炮管 附件:
坦克 主体 使用TUBE 使用 命令制作大 小不一的三 节炮管
坦克 炮塔
坦克 履带 使用 ROTATE 命 令将炮管略 微抬起
坦克 附件
渲染
舱口
坦克 主体
坦克 炮塔
坦克 履带
坦克 附件
使用 EXTRUDE CRV和差 和差 集命令做 出坦克的 出入仓门 和旁边的 天线基座
渲染
舱口
纳粹SdKfz系列装甲车
分类列表 当前位置:-> 社会与文化-> 军队武器->请简单简绍纳粹SdKfz系列装甲车请简单简绍纳粹SdKfz系列装甲车[来源:网民提供 |
Sd.Kfz.250/8 半履带75mm装甲火力支援车(75mm KwK37(L24))
Sd.Kfz.250/9 半履带20mm装甲侦察车(20mm KwK38(L55))
Sd.Kfz.250/10 半履带37mm自行反坦克炮(37mm Pak35/36(L45))
Sd.Kfz.250/11 半履带41型自行锥膛反坦克炮(28mm s.Pz.B.41)
Sd.Kfz.11/1 半履带火箭发射车
Sd.Kfz.11/2 半履带防化洗消车
Sd.Kfz.11/3 半履带毒气释放车
Sd.ห้องสมุดไป่ตู้fz.11/4 150mm半履带火箭发射车
Sd.Kfz.11/5 280mm/320mm半履带火箭发射车
Sd.Kfz.13 装甲侦察车(7.62mm MG13,德军装备的第一款装甲侦察车,战争中装备装甲师的侦察营,4轮)
Sd.Kfz.140/1 38(t)侦察坦克(20mm KwK38(L55) auf Panzer38(t))
Sd.Kfz.140/2 “捷豹”20毫米自行高炮(Gepard Flakpanzer38(t) 20mm Flak38)
Sd.Kfz.141 III号坦克A,B,C,D,E,F,G,H,J型
Sd.Kfz.161/1 IV号坦克F2型
Sd.Kfz.161/2 IV号坦克G,H,J型
制作坦克模型的步骤
制作坦克模型的步骤简介制作坦克模型是模型爱好者们喜爱的一项活动。
不仅能够锻炼手工能力,还可以了解坦克及其历史背景。
本文将介绍制作坦克模型的详细步骤,帮助爱好者们完成一台栩栩如生的坦克模型。
准备工作在开始制作坦克模型之前,我们需要准备一些必要的工具和材料。
所需工具:1.切割工具:如剪刀、小刀等。
2.砂纸:用于修整模型零件的表面。
3.剪刀:用于修剪模型所需材料。
4.着色工具:如刷子或喷枪等。
5.胶水:用于连接模型零件。
所需材料:1.坦克模型套件:可在模型专卖店或线上购买。
2.颜料:用于上色模型,可根据个人喜好选择。
3.胶水:要选择适合模型材质的胶水,以确保连接牢固。
步骤以下是制作坦克模型的详细步骤,让我们一步步来完成它!1. 准备工作台首先,我们需要清理工作台,确保有足够的空间来安放模型套件和工具。
同时,保持工作台的整洁可以避免零件遗失和混淆。
2. 坦克模型套件打开坦克模型套件,将零件按照说明书分类。
一般来说,模型套件包含多个零件树,每个零件树上有许多小零件。
按照说明书的顺序,使用剪刀或其他切割工具将零件树上的零件逐个剪下。
3. 组装零件根据模型套件的说明书,开始组装零件。
大多数模型套件在说明书中都有详细的步骤和示意图,可以按照示意图的顺序进行组装。
注意细节,确保零件的拼接准确,避免出现歪斜或错误的组装。
4. 细节处理一旦主要零件组装完毕,可以开始处理模型的细节部分。
使用砂纸去除零件表面的凹凸不平,使其更加光滑。
此外,还可以使用细砂纸或修模刀对一些小零件进行修整,确保它们精确地符合要求。
5. 上色和涂饰在完成零件的组装和细节处理之后,可以开始进行上色和涂饰。
根据所使用的颜料和个人喜好,选择适当的刷子或喷枪进行操作。
在上色之前,可以先在一块废料上进行试验,以确定所选颜料是否符合预期效果。
6. 拼接零件零件组装完成并上色后,可以开始将零件拼接到一起。
使用适合模型材质的胶水,将零件粘接到正确的位置。
根据需要,使用夹子或其他工具保持零件在正确的位置上,直到胶水完全干燥。
手把手教你造坦克,家里有孩子的福音到了!(图文并茂)
[原创技术贴]手把手教你造坦克,家里有孩子的福音到了!(图文并茂)提示:请自备硬化氪金护目镜。
废话不多说,下面大家就跟我一起开始造坦克吧。
1、准备一张A4纸,或16开纸,或随便一张形状相似的纸。
2、从中间撕开,分成a、b两份。
3、取其中一张a,沿中线对折。
4、将两边沿中线再对折。
5、将其翻转后再用两边沿中线对折。
7、纵向对折。
9、将左右两边较薄区域沿较厚区域线向内折。
10、同上,OK,这样tan克的底盘就做好了。
11、取另外一张b,沿中线撕开,分成c、d两份。
12、取其中一张c,沿中线对折。
\13、将两边沿中线再对折。
\14、纵向沿中线对折。
15、取对折一段对角对折。
16、再打开,形成压痕。
17、打开折痕,向下挤压。
18、同上。
19、两边沿压痕对折。
20、将另一边完成。
21、拽住两边拉紧。
一个NB的tan克头就诞生了。
22、随便拿个锐利的东西捅个洞出来,等下用来安装大炮。
23、取另外一张d卷成NB大炮。
24、取另外一张d卷成NB的大炮.25、开始合体~!插入~26。
用力~插入~27、对折,再插入~28、同上。
29、同上。
30、Tank 车身完成。
31、给履带打气。
32、打气完毕。
33、安装我们的NB的大炮。
据说一炮可以轰到火星。
34、上色完成。
OK,这样一个由cler自己制造的NB的人民解放军“和谐号”就完美诞生了。
我们可以拿它去骗小孩儿了。
什么变形金刚,四驱车,芭比娃娃统统秒杀!这坦克的秘籍是小时候我爸传给我的,学会之后我曾在小学初中用此法泡过很多妹纸~现不敢独享,拿出来分享给cler们。
3Dmax教程之坦克
3Dmax教程:3D大型坦克建模教程(出自:中国教程网作者:我的奋斗 )先来效果图!我们从轮子开始做起吧。
首先在前视图建个管状物体,尺寸如图把中间的两条线向中间挤,然后选择如图内圆的面,然后挤出,数量为零!在前视图中,用缩放工具向中心拉,效果如图选择如图的线,然后切角。
数量为一~选择新切角出来的面,向外挤出,数量为六创建半径13的圆柱体,圆周边数30,高度25,放到如下位置以轮子轴线为中心阵列,然后布尔,差集,效果如下!转换成可编辑多边形,选择面,挤出零。
然后在前视图中,用缩放工具向中心拉,效果如图选择小圆的面向外挤出三!选择面如图挤出零,然后再选择缩放工具向心中拉。
如图复制一个,并隐藏,然后焊接中心所有的点,选择如图所示的面,平面化后挤出六。
再挤出零,在前视图用缩放工具放大如图挤出五后插入十连续倒角五次以上,尺寸随意,主要是让中心形成圆形凸起,最后焊接中心所有的点!将背后中心面挤出,尺寸随意,用来做轮子的转轴创建圆柱体,并阵列如图将隐藏的轮子放出,放在适当位置,这样小轮子就做好了,哈哈!大轮子的建模跟小轮子如出一辙,我就不多说了。
说也是浪费时间。
反正都是建外圆向中间挤。
圆是布尔而成的,都是一样的道理,只是尺寸要大一些,大轮子的最大半径为140,其它的尺寸就随意了,大概差不多就行了!再说明一下,如果机器允许的话,可以使用一下网络平滑,但使用之前,一定要将所有的边缘线切角两次,数量为0。
5,不然平滑后的模型边缘会很丑的!网络平滑会让模型靓很多,但代价也是很恐怖的,模型的面数和渲染的时间都会成倍的增加我的机就受不了,所以都没敢用网络平滑。
下面再来搞坦克的履带,坦克的带子有很多沟壑,主要是为了在没路的地方走出路来。
先把建好的轮子隐藏。
并在顶视图中创建切角长方体,尺寸如下!转为可编辑多边形,选择中间的线,切角二。
然后选择切出来的新面,挤出八!创建圆柱体,尺寸如下在刚才的板子上阵列,如图在前视图中创建如图所示的线。
装甲车辆课程设计
装甲车辆课程设计一、课程目标知识目标:1. 让学生了解装甲车辆的基本结构、原理和历史发展,掌握相关术语和概念。
2. 使学生理解装甲车辆在现代战争中的作用,以及其在国防和军事战略中的地位。
3. 引导学生掌握装甲车辆的分类、性能特点及其在不同战争中的应用。
技能目标:1. 培养学生运用所学的装甲车辆知识,分析解决实际问题的能力。
2. 提高学生搜集、整理和运用相关信息的能力,学会对比分析不同类型的装甲车辆。
3. 培养学生的团队协作能力,通过小组讨论、研究,共同完成装甲车辆的设计和展示。
情感态度价值观目标:1. 培养学生热爱国防事业,增强国家安全意识,树立正确的价值观。
2. 激发学生探索军事科技的兴趣,培养科学精神,提高创新意识。
3. 引导学生尊重历史,珍视和平,认识到科技发展对战争和人类社会的双重影响。
课程性质:本课程为军事科技类课程,结合历史、科技和军事战略,注重理论与实践相结合。
学生特点:学生为初中生,对军事科技有一定的兴趣,具备基本的信息搜集和整理能力,喜欢合作学习。
教学要求:教师应注重启发式教学,激发学生的兴趣和思考,将理论知识与实际应用相结合,提高学生的综合素养。
在教学过程中,关注学生的个体差异,鼓励学生积极参与,确保课程目标的实现。
通过课程学习,使学生达到预定的学习成果,为后续相关课程的学习奠定基础。
二、教学内容1. 装甲车辆概述- 装甲车辆的起源、发展历程- 装甲车辆的基本结构和原理- 装甲车辆的分类及性能特点2. 装甲车辆在现代战争中的应用- 装甲车辆在军事战略中的地位- 装甲车辆在不同战争中的作用- 装甲车辆的战术运用及发展趋势3. 装甲车辆设计与技术特点- 装甲车辆的总体设计原则- 装甲车辆的动力系统、悬挂系统、防护系统- 装甲车辆的武器系统及信息化水平4. 装甲车辆案例分析- 国内外典型装甲车辆介绍- 装甲车辆在不同战场环境下的应用- 装甲车辆在反恐、维和等非战争军事行动中的应用5. 装甲车辆设计与展示- 学生分组讨论,设计一款装甲车辆- 结合教材内容,分析设计方案的科学性和实用性- 汇报展示,组间交流、评价,提高学生的实践能力教学内容安排和进度:第1-2课时:装甲车辆概述、发展历程、基本结构和原理第3-4课时:装甲车辆在现代战争中的应用、战术运用及发展趋势第5-6课时:装甲车辆设计与技术特点、案例分析第7-8课时:装甲车辆设计与展示,组间交流、评价教材章节关联:本教学内容与教材中“军事科技发展与应用”章节相关,重点涉及装甲车辆的起源、发展、结构、原理、应用等方面的知识。
制作坦克模型的步骤
制作坦克模型的步骤制作坦克模型的步骤一、准备工作制作坦克模型是一项需要耐心和技巧的手工活动。
在开始之前,我们需要准备一些工具和材料。
首先,准备一个适合大小的工作台,确保有足够的空间来放置和操作模型零件。
同时,准备好以下工具:剪刀、削刀、细钳和胶水。
另外,还需要购买一套坦克模型的零件,可以选择根据自己的爱好和兴趣来购买。
二、组装底盘开始组装模型之前,我建议先阅读一下使用说明书,了解模型的各个部分和组装步骤。
接下来,从零件包中取出底盘的零件,并按照说明书上的示意图进行组装。
使用削刀和细钳来修整和调整零件的位置,确保底盘的结构牢固稳定。
在组装过程中,需要细心地对齐和粘合零件,确保没有任何的缝隙和错误。
三、安装主炮和炮塔完成底盘的组装后,接下来是安装主炮和炮塔。
先将主炮的零件和炮塔的零件分别组装好,并注意按照说明书上的步骤来操作。
然后,将主炮安装到炮塔上,并用胶水固定,确保主炮可以灵活转动。
接着,将炮塔安装到底盘上,确保炮塔可以顺畅地旋转。
在完成安装后,再次检查每个零件的位置和连接是否正确。
四、装配履带和车轮履带和车轮是坦克模型的重要部分,也是较为复杂的组装步骤之一。
根据说明书,将零件逐个组装完整,并使用细钳和胶水来处理和固定。
履带的组装过程需要一定的耐心和技巧,注意每个零件的方向和位置,确保履带能够顺畅地运动。
在组装车轮时,同样要仔细对齐每个轮子的位置和方向,确保模型运动时的平稳性。
五、涂装和装饰在完成基本组装后,我们可以选择对坦克模型进行涂装和装饰。
首先,使用细砂纸将模型的表面进行打磨,去除不平整和毛刺。
然后,选择合适的颜色和涂料,对模型进行上色。
可以参考真实坦克的涂装样式,或者根据自己的喜好和想象进行创作。
完成涂装后,可以使用贴纸、标识或其他装饰品来增添模型的细节和个性。
六、清洁和保养制作完成后,我们需要注意对坦克模型的清洁和保养。
定期清洁模型的表面,去除灰尘和污渍。
可以使用软刷和中性清洁剂轻轻擦拭,注意不要使用过于刺激的清洁剂,以免损坏涂装和零件。
美国陆军新王牌——“斯特赖克”装甲车
美国陆军新王牌——“斯特赖克”装甲车“斯特赖克”装甲车是美国陆军装备的新型轮式装甲车。
它由加拿大通用动力公司生产,于20世纪90年代末投入使用。
斯特赖克装甲车2002年,经过反复试验评估及分析论证后,美国军队最终选中LAVIII轻型装甲车作为过渡型旅级战斗部队的装备,并将其正式命名为“斯特赖克”装甲车。
该型车在伊拉克战争中为美英联军的后勤保障发挥了重要作用,经受住了实战的考验。
解密档案 UNCOVERED FILE原产国:美国类型:装甲运兵车车长:6.98米宽度:2.7米高度:2.8米乘员:9人服役期间:2002年至今生产商:通用陆地系统作战范围:500KM牛刀初试2003年10月,300余辆“斯特赖克”装甲车随美国军队第2步兵师第3旅在伊拉克亮相,首先被部署到反美武装最活跃的逊尼派三角地带。
12月15日,该部一支部队与反美武装发生了遭遇战。
这支部队兵分两路:一支车队由步兵下车搜寻和攻击敌人;另一支车队利用侦察设备监视战场,并用机枪和榴弹发射器提供火力掩护。
在这次战斗结束后,美国军队称打死了11名反美武装人员而没有损失一名士兵,“斯特赖克”也没有损坏,谓初战告捷。
“精装”战车斯特赖克”装甲车拥有新型的设计和昂贵先进的车载设备。
该车安装了先进的战斗指挥系统、单信道地面与机载无线电子系统、全球定位系统等,能够满足联合作战的需要。
此外,由于采用了先进的降噪措施,“斯特赖克”大幅降低了声信号特征。
据说,相距60-70米远也听不到其发动机的声音。
车型斯特赖克最大特点与创新在于几乎所有的延伸车型都可以用即时套件升级方式从基础型改装而来,改装可以在战场前线上完成,因此提供了极大的运用弹性。
若有某一型车战损不必再等待从后方运补,可以抽调另一台较不重要的车型改装。
M1126装甲运兵车M1126装甲运兵车是斯特赖克装甲车族的最基本型号,其它的斯特赖克装甲车族成员都是在它的基础上改进而来。
M1126装甲运兵车能搭载一个全副武装加强步兵班,一位驾驶员和一位车长。
履带底盘及驱动系统建模与仿真
湖南农业大学车辆工程专业毕业设计履带底盘及驱动系统建模与仿真Modeling and Simulation of tracked chassis and drive system学生姓名:刘延韬学号:201240670127年级专业及班级:2012级车辆工程(1)班指导老师及职称:李军政教授学院:工学院湖南·长沙提交日期:2016年5月湖南农业大学全日制普通本科生毕业论文诚信声明本人郑重声明:所呈交的本科毕业论文是本人在指导老师的指导下,进行研究工作所取得的成果,成果不存在知识产权争议。
除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。
对本文的研究做出重要贡献的个人和集体在文中均作了明确的说明并表示了谢意。
本人完全意识到本声明的法律结果由本人承担。
毕业论文作者签名:年月日履带底盘及驱动系统建模与仿真学生:刘延韬指导老师:李军政(湖南农业大学工学院,长沙 410128)摘要:此设计以电脑仿真技术并结合履带底盘及驱动系统的三维模型构建履带行驶系统虚拟实验平台,对坦克车与水底行走车辆的履带行驶系统进行建模,并对其直线行驶性能,爬坡越障性能与转向性能进行软件仿真,对结果进行分析和总结。
此过程中使用了计算机三维图形设计的理论知识、三维建模技术和仿真技术(主要使用软件:pro/E、recurdyn),实现了三维模型建立与仿真分析。
关键词:三维建模;多体运动仿真分析;履带行驶系统建模与仿真;目录履带底盘及驱动系统建模与仿真 (1)前言 (5)1坦克履带车身三维模型制作 (8)1.1使用Pro/E建立坦克履带车车身 (8)装配炮塔与车身 (9)1.2使用recurdyn对履带部分建模 (10)1.2.1创建履带板与驱动轮 (10)1.2.2创建履带行走机构 (12)1.3履带子系统仿真 (14)1.4地面参数的设定 (15)2水底行走履带车建模 (17)3坦克履带车辆仿真分析 (21)3.1坦克履带车软质与硬质地面过坡承重轮受力分析 (21)3.2坦克履带车辆单边转向分析 (22)3.3坦克履带车辆原地转向仿真分析 (23)3.4坦克履带车辆扭矩悬挂仿真 (25)4水底行走履带车仿真分析 (27)4.1直线行走仿真分析 (27)4.2转向行走仿真分析 (29)4.3水底行走履带车爬坡,越沟行走仿真分析 (30)4.4水底行走履带车履带增设悬挂系统 (32)5总结 (34)6书目 (36)前言虚拟现实技术是基于近年来的物体几何建模技术、特征、菜单交互、并行处理、智能化多体系统仿真技术的产物。
UG小汽车建模实例
实例一:小汽车设计
3. 创建过渡片体
修剪曲面17。选择下拉菜单中的【插入】|【修剪】|【修剪体】 命令,选择曲面17为【目标】曲面,选择基准平面2为【刀具】平 面,如图所示,单击【确定】。
22
实例一:小汽车设计
3. 创建过渡片体
创建曲面18。隐藏两个基准平面。选择下拉菜单中的【插入】| 【网格曲面】|【通过曲线网格】命令,选择如图所示的【主曲线】 和【交叉曲线】,并在【连续性】面板中设置【第一主线串】、 【最后主线串】、【第一交叉线串】和【最后交叉线串】均为 【G1(相切)】,依次选择与其相切的曲面,如图 11-23所示,单 击【确定】。
始面】、【终止面】以及【脊线】,并在【截面控制】面板中设置
【剖切方法】为【RHO】,【规律类型】为【恒定】,【值】为
0.45,在【设置】面板中设置【U向阶次】为【二次曲线】,其余
保持默认设置。
起始面
脊线
18
实例一:小汽车设计
3. 创建过渡片体
创建曲面17。选择下拉菜单中的【插入】|【网格曲面】|【通过 曲线组】命令,选择如图 11-19所示的曲线,并在【连续性】面板 中设置【第一截面】和【最后截面】均为【G1(相切)】,选择 如图所示的【第一截面】和【最后截面】。
12
实例一:小汽车设计
3. 创建过渡片体
创建曲面11 。选择下拉菜单中的【插入】|【细节特征】|【桥接】 命令,桥接曲面1、曲面6,结果如图所示。
13
实例一:小汽车设计
3. 创建过渡片体
创建曲面12 。选择下拉菜单中的【插入】|【网格曲面】|【截面】 命令,设置【类型】为【圆角-RHO】,选择如图所示的【起始导 引线】、【终止导引线】、【起始面】、【终止面】以及【脊线】, 并在【截面控制】面板中设置【剖切方法】为【RHO】,【规律类 型】为【恒定】,【值】为0.45,在【设置】面板中设置【U向阶 次】为【二次曲线】,其余保持默认设置。
坦克大战第一节——画出自己的坦克(新手篇)
坦克⼤战第⼀节——画出⾃⼰的坦克(新⼿篇)刚刚开始学习Java,对Java不是很熟悉,但是⾃⼰的兴趣挺喜欢Java。
现在⾃⼰在⾃学Java做⼀个⼩游戏,坦克⼤战。
⾃⼰现在完成了画出⾃⼰的坦克和坦克的移动⽅向。
希望各位⼤神指导⼀下我这个刚刚学Java的新⼿⼩⽩。
我会每完成⼀个阶段,就更新⼀下博客,跟进⼀下⾃⼰的学习进度。
在做这个坦克⼤战的时候,不知道从哪⾥开始做起,再来⾃⼰就觉得先画出⾃⼰的坦克吧。
下⾯是创建坦克类(⽅便以后能创建更加多的坦克),再创建⾃⼰的坦克继承坦克类。
package tankgames;import java.awt.*;//创建坦克类public class Tank {int x,y,w,h;int speed;int direct;Color c1,c2,c3;public Tank(){x=230;y=300;w=5;h=60;speed=10;direct=0;}public Tank(int x, int y, int w, int h, int speed, int direct) {super();this.x = x;this.y = y;this.w = w;this.h = h;this.speed = speed;this.direct = direct;}}//创建我的坦克⼦类class MyTank extends Tank{//创建颜⾊对象,并设置颜⾊public MyTank(){this.c1 = new Color(128,128,128);this.c2 = new Color(0,255,0);this.c3 = new Color(0,0,255);}public MyTank(int x, int y, int w, int h, int speed, int direct) {super(x, y, w, h, speed, direct);this.c1 = new Color(128,128,128);this.c2 = new Color(0,255,0);this.c3 = new Color(0,0,255);}}创建完⾃⼰的坦克,要写个主函数来画出⾃⼰的坦克,以下是画出⾃⼰的坦克:package tankgames;import java.awt.*;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import javax.swing.*;public class TankGame extends JFrame{private static final long serialVersionUID = 1L;MyPanel mp;public static void main(String[] args) {new TankGame().setVisible(true);}public TankGame(){this.setTitle("坦克⼤战");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);this.setBounds(100, 100, 600, 500);//创建我的⾯板对象,并添加到我的窗体⾥⾯mp = new MyPanel();this.getContentPane().add(mp);//注册键盘事件监听this.addKeyListener(mp);}}//创建我的⾯板⼦类class MyPanel extends JPanel implements KeyListener{MyTank myTank;private static final long serialVersionUID = 1L;public MyPanel(){this.setLayout(null);myTank = new MyTank();}//⾯板容器的设置和组件在⾯板容器⾥显⽰public void paint(Graphics g){super.paint(g);g.setColor(new Color(255,255,221));g.fill3DRect(0, 0, 500, 400, false);drawTank(myTank,g);}//画坦克public void drawTank(Tank t,Graphics g){int x = t.x, y = t.y, w = t.w, h = t.h;//画出向上的坦克if(t.direct == 0){Graphics2D g2d = (Graphics2D)g;g.setColor(t.c1);g.fill3DRect(x, y, w, h, false);g.fill3DRect(x+7*w, y, w, h, false);g.setColor(t.c2);g.fill3DRect(x+w, y+2*w, 6*w, 8*w, false);g.fillOval(x+2*w, y+4*w, 4*w, 4*w);g2d.setColor(t.c3);g2d.setStroke(new BasicStroke(5.0f));g2d.drawLine(x+4*w, y, x+4*w, y+6*w);}//画出向下的坦克else if(t.direct == 2){Graphics2D g2d = (Graphics2D)g;g.setColor(t.c1);g.fill3DRect(x, y, w, h, false);g.fill3DRect(x+7*w, y, w, h, false);g.setColor(t.c2);g.fill3DRect(x+w, y+2*w, 6*w, 8*w, false);g.fillOval(x+2*w, y+4*w, 4*w, 4*w);g2d.setColor(t.c3);g2d.setStroke(new BasicStroke(5.0f));g2d.drawLine(x+4*w, y+6*w, x+4*w, y+12*w);}//画出向左的坦克else if(t.direct == 3){Graphics2D g2d = (Graphics2D)g;g.setColor(t.c1);g.fill3DRect(x, y, h, w, false);g.fill3DRect(x, y+7*w, h, w, false);g.setColor(t.c2);g.fill3DRect(x+2*w, y+w, 8*w, 6*w, false);g.fillOval(x+4*w, y+2*w, 4*w, 4*w);g2d.setColor(t.c3);g2d.setStroke(new BasicStroke(5.0f));g2d.drawLine(x, y+4*w, x+6*w, y+4*w);}//画出向右的坦克else if(t.direct ==1){Graphics2D g2d = (Graphics2D)g;g.setColor(t.c1);g.fill3DRect(x, y, h, w, false);g.fill3DRect(x, y+7*w, h, w, false);g.setColor(t.c2);g.fill3DRect(x+2*w, y+w, 8*w, 6*w, false);g.fillOval(x+4*w, y+2*w, 4*w, 4*w);g2d.setColor(t.c3);g2d.setStroke(new BasicStroke(5.0f));g2d.drawLine(x+6*w, y+4*w, x+12*w, y+4*w);}}@Overridepublic void keyTyped(KeyEvent e) {}//我的坦克移动@Overridepublic void keyPressed(KeyEvent e) {//向左移动if(e.getKeyCode() == KeyEvent.VK_LEFT || e.getKeyCode() == KeyEvent.VK_A){myTank.x -= myTank.speed;myTank.direct = 3;}//向右移动else if(e.getKeyCode() == KeyEvent.VK_RIGHT || e.getKeyCode() == KeyEvent.VK_D){myTank.x += myTank.speed;myTank.direct = 1;}//向上移动else if(e.getKeyCode() == KeyEvent.VK_UP || e.getKeyCode() == KeyEvent.VK_W){myTank.y -= myTank.speed;myTank.direct =0;}//向下移动else if(e.getKeyCode() == KeyEvent.VK_DOWN || e.getKeyCode() == KeyEvent.VK_S){myTank.y += myTank.speed;myTank.direct = 2;}//关闭游戏else if(e.getKeyCode() == KeyEvent.VK_ESCAPE){System.exit(0);}//刷新图形this.repaint();}@Overridepublic void keyReleased(KeyEvent e) {}}我画⾃⼰的坦克只是计算好位置,画出图形。
