5款最好用的免费3D建模软件(附下载链接)

虽然网上有需要现成的免费三维模型,但对于许多人而言,3D打印机最吸引他们之处是可以设计创造完全属于自己的模型。问题是,现代专业级CAD软件大多价格高昂,例如Solidworks或Zbrush这样的程序至少需要1000美元,大多数普通用户并不愿意为此买单。幸运的是,业内还有不少免费的CAD软件,并且可以提供专业级的设计能力,本文介绍了其中最好的5款免费在线CAD软件工具。(部分软件功能可能需要少量月租)

Blender

▲Blender还提供动画工具

 ▲Blender3.2.1界面

 

Blende是一款系统全面的3D建模套件,它提供了大量专业级功能和模块,目前并已成为免费3D软件的代名词。Blender通常被称为TheBlenderProject,因为它不仅仅是一个软件,还是一个完整的社区,致力于创建最完整的3D建模和动画开发方案。并且这款软件是开源的,每天都有开发者提供新的模块和插件,软件也在不断更新。

这款软件的用户评价比较高,偶有的抱怨也是它的界面有点差,然而这是由于社区过于庞大,需要在线提供教程过多,有时会让部分用户迷茫。另外,Blender不仅仅是3D设计造型,它允许用户研究甚至创作自己动画,使用Blender创建的一些动画甚至会让Pixar的顶级设计师脸红。总体来看,Blender社区非常强大,令人印象深刻。

使用难度:4/5

功能集合:4/5

目标用户:需要高级3D建模功能,各种华丽效果的人

下载地址:https://www.blender.org/

TinkerCAD

▲在TinkerCAD中设计的扳手

TinkerCAD由行业标准软件公司AutoDesk出品,是一款友好型初级三维CAD软件。虽然他不是这个列表中最强大的软件,TinkerCAD也提供了很多令人惊讶的功能,他特别适合初次使用者,但也适用于最资深的CAD用户。这款软件提供了一批快速简便的建模方法,例如,如果你想制作一个立方体,你可以拖放立方体,输入你的测量数据,然后就完成了。

TinkerCAD堪称一款“所见即所得”工具,他有许多预先设计可供选择,使用者可以根据自己的需要进行修改。虽然在艺术造型功能方面比较薄弱,但它可以非常简单友好的方式进行准系统3D设计。此外,TinkerCAD也有一个非常专业的在线社区,允许用户看到这个基本的,完全基于云的3D CAD软件的潜力。

使用难度:1/5

功能集合:2/5

目标用户:初级CAD设计师和想要创建基本3D模型的人

下载地址: https://www.tinkercad.com/

Fusion360

▲Fusion360提供了大量的教程来制作出色的模型

AutoDesk还提供了面向学生的产品Fusion360,这款软件对教育工作者和学术机构免费。Fusion360比TinkerCAD强大的多,但并不一定是初学者可以直接使用的产品,因此AutoDesk为那些想要专研和学习的人提供了一个完整的教程套件。

与TinkerCAD非常相似,Fusion360提供的所有文件都完全基于云。它允许用户在项目中保存各种模型并测试它们,以查看它们在相互交互时将承受的压力。虽然没有在角色建模的方式中提供大型套件,但是有一些小功能允许用户使用网格创建和精细造型。

此外,这款软件还有大量的3D打印机集成,可以与切片软件配合使用,进一步简化您的工作流程。Fusion360是TinkerCAD的进阶版,对于已经掌握TinkerCAD基础知识和操作的人,这款软件非常适合。

使用难度:3/5

功能集合:4/5

目标用户:需要比具有许多工程功能的TinkerCAD更高级别的定制的用户。

下载地址: https://www.autodesk.com/products/fusion-360/students-teachers-educators

OnShape

▲OnShape提供多部件装配和力学测试集成

就功能而言,OnShape可以说是本文中最令人印象深刻的软件。它由两位前Solidworks首席执行官JonHirschtick和JohnMcEleney共同创建,完全免费并且完全基于云端。

OnShape毫无疑问是免费在线CAD软件选项中功能最多、最轻量级的,也是唯一一款拥有Android和iOS应用程序的应用程序,允许您从平板电脑或智能手机查看和修改设计。OnShape提供了许多先前在Fusion360中提到的类似功能,例如模拟多部件组件的功能。

而在工程集成方面,OnShape也并不逊色,它完美地将整个工程工作流程从头到尾简化为一个完全基于云的模型。此外,还有大量的自定义功能,这将吸引许多熟悉其他程序(如AutoCAD或Solidworks)的CAD用户。2016年,Onshape添加了一项名为FeatureScript的功能,这是一种用于创建和自定义CAD功能的新型开源编程语言。毫无疑问,OnShape是目前地球上最强大的免费CAD软件。

使用难度:4/5

功能集合:5/5

目标用户:需要最多功能和工程功能的高级用户

下载地址: https://www.onshape.com/

Sculptris

▲在Sculptris模仿和绘制恐龙

Sculptris可以将工程部件转移到建模软件,出自ZBrush的作者,这款软件可以使用虚拟粘土球进行建模,它允许推、拉、捏等等动作,以创建连贯的网格,并且可以立即3D打印。Sculptris有一些轻微的缺点,因为有时你需要修复像MakePrintable这样的模型,但Sculptris的极端用户友好设计和直观界面远远超过了它的缺点,笔者几乎没有3D动物建模经验,都能够在很短的时间内以非常小的指令做出一头猪的模型。

如果你已经拥有ZBrush,Sculptris可以通过GoZ按钮与软件集成,从而可以在ZBrush界面中进一步建模您的项目。就创建静态3D模型而言,Sculptris的可能性几乎是无穷无尽的,网上有大量的艺术作品和教程可供选择。Sculptris非常适合3D建模的初学者,并且非常适用于3D打印。

使用难度:2/5

功能集合:3/5

目标用户:建模者/数字艺术家/3D角色创作者

下载地址: http://pixologic.com/sculptris/

其实呢,类似的3D建模软件还有很多,比如知名的3DS Max,Maya等,但3DS Max,Maya都需一两百块钱,相比于Blender,贵而且不太实用,功能较复杂,容易搞混。这7款建模软件(包括3DS Max,Maya)我最推荐Blender3.2.1,功能实而不华,非常好用。

nanocode38
关注 关注
  • 7
    点赞
  • 102
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
3d建模软件(Blender) v2.72 官方免费版.zip
07-10
Blender是一种3D建模软件,别看这是免费软件,但是它的设计和功能都是非常精湛的,在某些方面甚至不次于3DSMAX!Blender是一免费软件,可以创建电视广告,使技术的可视化,业务图形,做一些变形,或设计用户界面。您可以轻松建立和管理复杂的环境。 有了Blender后,喜欢3D绘图的玩家们不用花大钱,也可以制作出自己喜爱的3D模型了。它不仅支持各种多边形画图,也能做出动画!倘若你觉得免费版的不够使用,还能注册C-key,购买更强大的版本。Blender虽然是免费版本,不过它的功能可是又强又复杂。 Blender支持3D modeling(模型)有polygon meshes?urves、NURBS 、tex以及metaballs;支持的动画有keyframes、motion curves、morphing、inverse kinematics。它也提供了画图particle system(粒子系统)、deformation lattices(变形栅格)与skeletons(骨架),以及3D可以任意角度观看的视野(3D view with animated rotoscoping)。其他值得注意的特点尚有field rendering(区域的描绘)、several lighting modes(光源的形式)、animation curves(运动曲线)等等。当然Blender也可以存取Targa, Jpeg, Iris, SGI movie, Amiga IFF等格式的文件。
你不可错过的25免费3D建模常用软件.pdf
11-17
你不可错过的25免费3D建模常用软件.pdf
3D建模主要使用哪些软件?有什么特点?
最新发布
mirrornan的博客
09-06 587
3D建模主要使用的软件多种多样,每种软件都有其独特的优势和适用领域。
Dust3d:一个开源免费3D建模软件
07-14
官网地址:https://docs.dust3d.org/en/latest/install.html 此版本为dust3d-1.0.0-rc.6
30免费3D建模软件,总有一适合你!
游戏建模零基础入门教程
11-01 7406
>>>>Google Sketchup 一极受欢迎并且易于使用的3D设计软件。根据创作过程,开发了一套设计工具,让设计师可以很直观的构思,非常适用于三维建筑设计创作。 Sketchup有丰富的模型资源,在设计中可以直接调用、插入、复制和编辑。同时,其方便的推拉功能使设计师通过一个图形就可以方便的生成3D几何体。 ​ >>>>Blender 作为一开源的跨平台全能3D建模制作软件,Blender提供了全面的3D创作工具,包括从建模、映射、贴图、
Blender免费3D建模动画和渲染软件
04-19
Blender是一免费3D建模动画和渲染软件,适用于Windows、Mac和Linux等多个平台。作为一开源软件,Blender的源代码可以随意查看、修改和分发,因此受到了广泛的欢迎和支持。 Blender提供了丰富的3D建模工具,包括多边形建模、NURBS建模、曲面建模等。用户可以使用这些工具来创建各种形状和物体,然后通过多种操作将它们组合起来形成完整的3D场景。此外,Blender还提供了各种3D材质和贴图,使用户可以为他们的3D模型添加颜色、纹理和其他细节。 在动画方面,Blender支持骨骼动画、形状关键帧动画和逐帧动画等多种类型。用户可以使用这些动画工具来为他们的3D模型添加各种动态效果。此外,Blender还提供了粒子系统和流体动力学模拟等高级动画特效,可以帮助用户创建更加逼真和细致的动画效果。 Blender还支持各种渲染引擎,例如Cycles渲染引擎和Eevee渲染引擎等。用户可以使用这些渲染引擎来为他们的3D场景创建逼真的光影效果,使其看起来更加真实。 总的来说,Blender是一功能强大、易于使用的3D建模动画和渲染软件
3D建模基本软件介绍
Birdcage
04-14 2631
本来标题是建模基本软件介绍……然后突然想到会不会有人认为我说的是SPSS、LINGO之类的玩意……笑 操作 法线烘焙 法线烘焙大概是游戏里非常优秀的一种优化计算的方法了。 法线烘焙的原理可以参考下面这个 https://en.wikipedia.org/wiki/Gouraud_shading Gouraud shading相比其Phong shading的区别在于Go...
12开源或免费3D建模软件
热门推荐
hankern的专栏
11-11 4万+
1、Blender Blende是一系统全面的3D建模套件,它提供了大量专业级功能和模块,跨平台支持所有的主要操作系统。目前并已成为免费3D软件的代名词。Blender通常被称为TheBlenderProject,因为它不仅仅是一个软件,还是一个完整的社区,致力于创建最完整的3D建模动画开发方案。并且这软件是开源的,每天都有开发者提供新的模块和插件,软件也在不断更新。功能非常强大,但是上手...
2023年13个面向初学者最佳免费3D建模软件
ygtu2018的博客
09-07 1635
现在有数百种不同的免费 3D 建模软件工具供希望创建自己的 3D 模型的用户使用——因此知道从哪里开始可能会很棘手。 3D 软件建模工具的范围从即使是最新的初学者也易于使用到可能需要数年才能学习的专业级软件——因此选择与您的技能水平相匹配的工具非常重要。
8超级好用的3D建模软件上下篇
李旭的博客
05-14 2万+
只要有水平,做出好作品,完全没问题? 非也非也。 做出一个好作品,不但要靠自身的技巧水平,选择适合自己的3D建模软件也是一个很重要的因素。 所以小编今天就给大家安利8好用的3D建模软件。无论你是一个0基础的初阶学者,还是想提升自己水平的进阶从业者/爱好者,或是高阶级别的专业人士,总有一是你的菜。 在安利前,先说一下硬件条件啊。 首先,一般来说,任何类型的3D工作都需要大约16GB以上的内存。这里的大多数3D软件应用程序需要大约5GB的磁盘空间来安装,但是也需要考虑到渲染。此外,强烈建议购买最好
cpp-FreeCAD一免费并且开源的多平台3D参数建模器
08-16
FreeCAD, 一免费并且开源的多平台3D参数建模器
超好用ZBrush笔刷(文末下载链接
m0_63502375的博客
03-25 3232
在制作角色模型的过程中,头发的雕刻一直都令人头痛。而Cari Mayle向我们展示了他在ZBrush中制作头发和发型的各种技巧,而且这个视频中,他使用的是Makkon Hair Curve V03笔刷是由他自己制作的。并且可以看到,他展示的方式用来制作一些中短的发型,非常的快速而便捷。 原作者Cari Mayle还在网络上上传分享了他的笔刷,因为网络的原因,很多朋友没办法下载,这里我代作者将笔刷搬运过来分享。此笔刷只供学习和交流使用,所有的版权属于Chris Whitaker所有。 01. FB...
Lumion 12 Pro 3D渲染软件v12.0免费版:高效建模与渲染教程
对于想要提升工作效率和作品质量的专业人士来说,这免费版(补丁)是一个极具吸引力的选择。通过链接提供的资源,用户可以方便地获取并开始他们的3D渲染之旅,加速设计过程,将想象力转化为令人惊叹的视觉呈现。
倾斜摄影——三维建模软件ContextCapture (简体中文版安装教程-软件下载
weixin_46066938的博客
12-04 9877
文章目录1. 软件介绍2. CC的特点3. ContextCapture软件的安装4. 软件下载地址 1. 软件介绍 ContextCapture软件是Bentley公司于2015年收购的法国Acute3D公司的产品,ContextCapture是一种基于前Smart3DCapture技术开发的允许从简单照片生成高分辨率3D模型的实景建模软件。 ContextCapture的原理是分析来自不同视点的静态主体的几张照片,并自动检测对应于同一物理点的像素。从许多这样的对应关系中,可以推断出照片的相
【CC精品教程】ContextCapture 4.4.12(CC,Smart 3D)简体中文版安装教程(安装包下载
「 刘一哥与GIS的故事」
05-28 1万+
ContextCapture 4.4.10简体中文版是一功能强大的三维建模软件,用户只需使用自己拍摄的普通照片,就能快速创建细节丰富的三维实景模型,并在项目的整个生命周期内为设计、施工和运营决策提供精确的现实环境背景。 一、安装过程 1. 安装主程序cncpc040412333en_updt12.exe 双击,点击Install。 点击Next。 选择安装路径,点击OK。 点击Next。 点击Install。 点击Finish。 Install Pyth...
倾斜摄影——3维建模软件PhotoScan教程(安装包+教学视频)
weixin_46066938的博客
12-15 5188
1. 软件介绍 PhotoScan是一基于影响自动生成高质量三维模型的优秀软件,这对于3D建模需求来说实在是一把利器。 PhotoScan无需设置初始值,无须相机检校,它根据最新的多视图三维重建技术,可对任意照片进行处理,无需控制点,而通过控制点则可以生成真实坐标的三维模型。照片的拍摄位置是任意的,无论是航摄照片还是高分辨率数码相机拍摄的影像都可以使用。
五个免费UML建模工具推荐
luyysea的专栏
12-22 2610
UML工具很多是商用的,价格不菲;而免费的UML建模工具,功能完善的很少。以下推荐的是五个免费的UML建模工具,相对而言还算功能比较不错。    免费UML建模工具推荐:JUDE – community    如果您的开发环境中只能使用正版软件,而又因种种原因无法获得专业级的建模工具,正苦苦寻找一个好用的,免费的工具时,那么JUDE绝对值得您一试。JUDE是一个中日合作的软件项目,有商
SaaSpace:11个免费建筑信息建模软件工具
HelpLook的博客
06-08 1801
除了文中提到的产品,还有更多免费(或免费试用)的BIM工具可用,,建议你花一些时间使用SaaSpace上的建筑设计和建筑信息建模(BIM)软件类别,找到满足你需求的最佳工具。
写文章

热门文章

  • 5款最好用的免费3D建模软件(附下载链接) 49273
  • 飞机大战C++源代码 12823
  • 使用VBScript实现消息轰炸! 6271
  • Blender建模:如何改变窗口布局? 6009
  • 许多代码…… 2826

最新评论

  • C++实现中缀表达式转后缀表达式并计算结果

    宇宙之大,无奇不有(一个玩暗区的人): 问一下能不能运行(a+b)/c这种的。

  • 使用VBScript实现消息轰炸!

    yshz673: 这玩意用多了会退登

  • C++实现中缀表达式转后缀表达式并计算结果

    2301_80103301: 你好,为什么我运行不出来啊

  • 飞机大战C++源代码

    acan___: #pragma once #include<iostream> #include<Windows.h>//定义控制台应用程序的入口点 using namespace std; //界面颜色 void setcolor(char str[]) { if(str=="lightblue") SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|1); if(str=="lightred") SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED); if(str=="lightyellow") SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_BLUE); if(str=="lightpink" ) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_INTENSITY | FOREGROUND_GREEN | FOREGROUND_BLUE); if(str=="blue") SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_BLUE); if(str=="red") SetConsoleTextAttribute( GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED); if(str=="yellow") SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_RED | FOREGROUND_BLUE); if(str=="pink") SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN | FOREGROUND_BLUE); if(str=="lightgray") SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), FOREGROUND_GREEN |8); if(str=="gray") SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 8); else return; } //定义敌人结构 其中最后面Frame代表结构体类型 若不加typedef代表定义的结构体变量 typedef struct Frame { COORD position[2]; // COORD 是Windows API中定义的一种结构,表示一个字符在控制台屏幕上的坐标。 // 其定义为: // typedef struct _COORD { // SHORT X; // SHORT Y; // } COORD; int flag; }Frame; class Game { public: COORD position[10]; COORD bullet[10];//子弹坐标 Frame enemy[8];//敌人数量 int score; int rank;//级别,难度 int rankf;//等级标志 string title; int flag_rank;//等级标志 //构造函数 Game(); //初始化所有 //设定位置 void initPlane(); void initBullet(); void initEnemy(); //填充所有 --画出形状和消失的形状 void drawPlane(); void drawPlaneToNull(); void drawBullet(); void drawBulletToNull(); void drawEnemy(); void drawEnemyToNull(); //执行某一个操作 void Playing();//游戏主循环 void planeMove(char x);//飞机移动 void judgePlane();//判断飞机是否与障碍物重叠 void GameOver();//游戏失败 void Pause();// 该成员函数用来使得游戏暂停 void Shoot();//发射子弹 void bulletMove();//子弹移动 void drawThisBulletToNull(COORD c);//画出失效子弹 void judgeEnemy();//判断子弹是否击中障碍物 void drawThisEnemyToNull(Frame f); //击败的障碍物清空 void enemyMove();//障碍物移动 void printScore();//输出分数 }; //主菜单 int drawMenu(); //隐藏光标 void HideCursor(); void SetPos(int i, int j);//设置光标 COORD random(COORD a, COORD b);//产生随机障碍物位置 void drawFrame(COORD a, COORD b, char row, char col);//画出障碍物 //把第y行,[x1, x2) 之间的坐标填充为 ch void drawRow(int y, int x1, int x2, char ch); //把第x列,[y1, y2] 之间的坐标填充为 ch void drawCol(int x, int y1, int y2, char ch); // 绘制游戏界面 void drawPlaying(); void drawFrame(Frame frame, char row, char col);//画坠毁后的战机 // 该函数用来判断战机的某一部分是否与障碍物有接触 bool judgeCoordInFrame(Frame frame, COORD spot); void drawRow(COORD a, COORD b, char ch); #include<Windows.h> #include<conio.h> #include<iostream> #include<ctime> #include<string> using namespace std; Game::Game() { // 调用类成员函数来进行初始化 initPlane(); initBullet(); initEnemy(); // 初始化四个int型数据成员,采用赋值的方式进行初始化 // string类型的数据成员title没有进行初始化,因为: // string本身就是一个标准库类类型,它的类定义中设置了默认构造函数, // 这些默认构造函数会将对象初始化为合理的默认状态, // string的默认构造函数会产生空字符串,相当于"" 。 this->score = 0; rank = 25; rankf = 25; flag_rank = 0; } void Game::initPlane() { COORD centren; centren.X = 39; centren.Y = 22; position[0].X = position[5].X = position[7].X = position[9].X = centren.X; position[1].X = centren.X - 2; position[2].X = position[6].X = centren.X - 1; position[3].X = position[8].X = centren.X + 1; position[4].X = centren.X + 2; for (int i = 0; i <= 4; i++) { position[i].Y = centren.Y; } for (int i = 6; i <= 8; i++) { position[i].Y = centren.Y + 1; } position[5].Y = centren.Y - 1; position[9].Y = centren.Y - 2; // 这个函数体类的代码其实就是为了初始化战机的十个部分的位置,战机的组成如下所示: // | 5 // | 9 // ***** 12034 // *** 678 // 第一排5个0的坐标依次对应了position[1]position[2]position[0]position[3]position[4] // 第二排三个0的坐标依次对应了position[6]position[7]position[8] // 两排0上面的两|的坐标从上往下依次对应了position[5]position[9] } void Game::drawPlane() { for (int i = 0; i < 9; i++) { SetPos(position[i].X,position[i].Y); if (i != 5) { setcolor("yellow"); cout << "*"; } else if (i == 5) { setcolor("yellow"); cout << "|"; } } } // 这个成员函数通过将战机的每个坐标处输出" "来代替"0"和"|", // 来达到将战机消除的目的。 void Game::drawPlaneToNull() { for (int i = 0; i < 9; i++) { SetPos(position[i].X, position[i].Y); cout << " "; } } // 该成员函数用来初始化子弹, // 即将每个子弹的Y坐标初始化为30(bullet[i].Y = 30)来表示子弹处于失效状态 void Game::initBullet() { for (int i = 0; i < 10; i++) { bullet[i].Y = 30; } } // 该成员函数用来画出子弹 // 首先检查每颗子弹的有效性,如果子弹有效,则定位到该子弹的坐标处,输出 "^",表示该子弹, // 如果子弹是无效的,则不绘制 void Game::drawBullet() { for (int i = 0; i < 10; i++) { if (bullet[i].Y != 30) { SetPos(bullet[i].X,bullet[i].Y); setcolor("blue"); cout << "^"; } } } //子弹失效 void Game::drawBulletToNull() { for (int i = 0; i < 10; i++) if (bullet[i].Y != 30) { SetPos(bullet[i].X, bullet[i].Y + 1); cout << " "; } } // 这个函数用来初始障碍物的位置, // 屏幕当中只能同时存在八架障碍物, // 且每架障碍物用如下结构体Frame来表示,如下所示: // typedef struct Frame // { // COORD position[2]; // int flag; // }Frame; COORD random(COORD a, COORD b) { int x = rand() % (a.X - b.X) + a.X; int y = rand() % (a.Y - b.Y) + a.Y; COORD c = { x,y }; return c; } void Game::initEnemy() { COORD a = { 1, 1 }; COORD b = { 45, 15 }; for (int i = 0; i < 8; i++) { enemy[i].position[0] = random(a, b); // random(a, b)是调用了一个重载的函数,它表示在坐标a、b之间的矩形框 // 内随机生成一个坐标值,并将该坐标值作为障碍物的左上角的坐标。 // enemy[i].position[0]中是一个Frame结构体类型的变量,存放了障碍物i的左上角的坐标。 enemy[i].position[1].X = enemy[i].position[0].X + 3; enemy[i].position[1].Y = enemy[i].position[0].Y + 2; // enemy[i].position[1]也中是一个Frame结构体类型的变量,存放了障碍物i的右下角的坐标。 } } // 接下来要根据障碍物的左上角坐标和右下角坐标画出障碍物, // 显然,障碍物的外形如下所示: // -- // | | // -- void Game::drawEnemy() { for (int i = 0; i < 8; i++) { setcolor("gray"); drawFrame(enemy[i].position[0], enemy[i].position[1], '-', '|'); } } // 将障碍物消除,通过输出空白的方式 void Game::drawEnemyToNull() { for (int i = 0; i < 8; i++) { drawFrame(enemy[i].position[0], enemy[i].position[1], ' ', ' '); } } //隐藏光标 void HideCursor() { CONSOLE_CURSOR_INFO cursor_info = { 1,0 };//第二个值0表示隐藏光标 SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info); } void SetPos(int i, int j)//设置坐标点位(光标) { HANDLE hout; COORD coord; coord.X = i; coord.Y = j; hout = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleCursorPosition(hout, coord); } //左上角坐标、右下角坐标、用row填充行、用col填充列 void drawFrame(COORD a, COORD b, char row, char col) { drawRow(a.Y, a.X + 1, b.X - 1, row); drawRow(b.Y, a.X + 1, b.X - 1, row); drawCol(a.X, a.Y + 1, b.Y - 1, col); drawCol(b.X, a.Y + 1, b.Y - 1, col); } //把第y行,[x1, x2) 之间的坐标填充为 ch void drawRow(int y, int x1, int x2, char ch) { SetPos(x1, y); for (int i = 0; i <= (x2 - x1); i++) { cout << ch; } } //把第x列,[y1, y2] 之间的坐标填充为 ch void drawCol(int x, int y1, int y2, char ch) { int y = y1; while (y != y2 + 1) { SetPos(x, y); cout << ch; y++; } } //主菜单绘制 int drawMenu() { setcolor("lightgreen"); system("Title 飞 机 大 战"); SetPos(30,1); cout << "飞 机 大 战"; drawRow(3, 0, 79, '-'); drawRow(5, 0, 79, '-'); SetPos(28, 4); setcolor("red"); cout << "↑和↓选择,回车确定"; int j = 11; SetPos(12, j); cout << ">>"; SetPos(15, 11); cout << "1. 简单的任务"; SetPos(15, 13); cout << "2. 困难的任务"; drawRow(20, 0, 79, '-'); SetPos(47, 11); setcolor("yellow"); cout << "简单的任务:"; SetPos(51, 13); cout << "简单任务的自动飞行速度较慢,任务难度较小。 "; SetPos(30, 21); setcolor("lightblue"); cout << "纳米核心"; setcolor("red"); drawRow(22, 0, 79, '-'); while (true) { if (_kbhit()) { char x = _getch(); switch (x) { case 72: { if (j == 13) { SetPos(12, j); cout << " "; j = 11; SetPos(12, j); setcolor("red"); cout << ">>"; SetPos(51, 13); cout << "            "; SetPos(47, 11); setcolor("yellow"); cout << "简单的任务:"; SetPos(51, 13); cout << "简单任务的自动飞行速度较慢,任务难度较小。 "; } break; } case 80: { if (j == 11) { SetPos(12, j); cout << " "; j = 13; SetPos(12, j); setcolor("red"); cout << ">>"; SetPos(51, 13); cout << "               "; SetPos(47, 11); setcolor("yellow"); cout << "困难的任务:";

大家在看

  • 微信小程序数据存储之详解 564
  • 足浴店+酒店一体化管理系统解决方案——未来之窗行业应用跨平台架构 1902
  • Java | Leetcode Java题解之第494题目标和
  • QFileSystemModel 和QTreeView
  • 【React】React18核心源码解读 1164

最新文章

  • 垃圾代码书写准则
  • 使用VBScript实现消息轰炸!
  • 安装配置Sublime Text 3 Python编译环境
2023年3篇
2022年5篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家遵义玻璃钢雕塑厂家电话上海 商场 美陈句容商场节庆美陈邯郸玻璃钢浮雕动物雕塑厂家沈阳小品系列玻璃钢雕塑生产厂家忻州玻璃钢卡通雕塑价格老城玻璃钢雕塑厂家玻璃钢浮雕室外镂空雕塑价格安徽户内玻璃钢雕塑方法静海玻璃钢雕塑九江大型玻璃钢雕塑价位沁阳商场美陈定制玻璃钢大象雕塑玻璃钢雕塑十大优点郑州定做玻璃钢雕塑厂价格表上海主题商场美陈怎么样漳州玻璃钢仿真水果雕塑价格庆阳景区玻璃钢雕塑定制订购玻璃钢音符雕塑户外玻璃钢雕塑厂家定制玻璃钢蔬菜雕塑供应晋城玻璃钢广场雕塑沧州大象玻璃钢雕塑南昌商场美陈气球江苏仿真农产品玻璃钢雕塑售价广州玻璃钢雕塑报价多少广西玻璃钢雕塑厂商上饶玻璃钢雕塑销售电话季节性商场美陈销售江苏水果玻璃钢雕塑销售厂家香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化