游戏开发中最常用的基础数学知识

简介: 我们也经常听到有人这样说:想学做游戏或者想学编程呀,你的数学得要好。数学学得好,逻辑思维才能好,才能把编程或者做游戏学好。这句话看上去好像是有道理,但是细琢磨一下,其中有不少的问题。想学好编程,严谨缜密的逻辑思维确实很重要,但是逻辑思维这个东西并不是天生的,是后天通过锻炼习得的,锻炼它的方式有很多,学数学或者学习编程都能够有效的锻炼一个人的逻辑思维能力。

嗨!大家好,我是小蚂蚁。

“一遇到与数学有关的东西头就大了”,经常听到有做游戏的人这样说,数学似乎成了不少人的绊脚石,或者可以说是一堵墙,每当遇到它时,要么摔一跤,要么只能想办法绕路走,总之能不碰就不碰,因为一碰到就头大。

我们也经常听到有人这样说:想学做游戏或者想学编程呀,你的数学得要好。数学学得好,逻辑思维才能好,才能把编程或者做游戏学好。这句话看上去好像是有道理,但是细琢磨一下,其中有不少的问题。想学好编程,严谨缜密的逻辑思维确实很重要,但是逻辑思维这个东西并不是天生的,是后天通过锻炼习得的,锻炼它的方式有很多,学数学或者学习编程都能够有效的锻炼一个人的逻辑思维能力。

晓得上面那句话的逻辑谬误了吗?不论是学习数学,还是学习编程,都是锻炼一个人逻辑思维的方式,因为这两者对于思维的要求非常的严谨,稍有差池就会带来一个错误的结果。所以学习它们适合锻炼一个人严谨缜密的思维,你的逻辑思维是因为学习这两者而锻炼出来的,而不是要先要具备一定的逻辑思维,才能够进行学习。

好了,说回到我们今天要讲的数学。可以说大部分人之所以遇到它就头疼,都是因为在学校留下的后遗症。对于应试的学习已经怕了,而且这个怕已经深深的植根在潜意识里了。所以,现在即使你不需要再去应试了,看到它还是会怕。

破除潜意识中对于数学的恐惧,这是我们首先要解决的问题。其实方法很简单,你就想反正现在也不用考试,即使搞不懂也不会有什么坏结果,不用看着卷子上的分数心生愧疚,不会挨批,也不用请家长。搞不懂现在对我来说没有任何的影响。

好了,现在就可以放下心里的芥蒂,来正面直视一下它了,看看是不是数学就是那么的难。

心里这关过了之后,接下来我们就可以来看一下游戏开发中最常用的基础数学知识了。

不用担心,很少的,比你想要的还要少。在日常的游戏开发过程中,基本上 90% 以上的与数学有关的知识只有一个:三角函数

是的,就这么多。这应该是初中的数学知识,如果你不涉及游戏引擎底层的原理和实现,不涉及游戏开发中的光照以及着色器的编写,那么只要把三角函数搞明白了,就能解决日常开发中的 90% 的数学问题了。

三角函数都是些什么呢?请自行去任何一个搜索引擎中搜索关键字“三角函数”,然后仔细的阅读。

三角函数在游戏中都有哪些应用呢?我们简单的举几个例子吧!

例如,在射击游戏中,敌人会向角色发射子弹,如何让敌人发射的子弹能够朝向角色移动,并且子弹头要指向角色呢?

如图,我们可以以角色为中心构建一个坐标系,这样子弹和角色就可以在坐标系中构建出一个直角三角形,这个直角三角形的斜边就是子弹的飞行轨迹,子弹要沿着这条线飞向角色,并且要朝向角色。此时,我们可以利用角色和子弹的坐标,计算出两条直角边的长度,然后利用反正切函数,计算出角度 a,有了角度 a ,就能够设置子弹的旋转,让子弹朝向角色飞行了。

其中涉及到数学计算的积木其实就只有一块,但是我们可以借助它实现出这样的效果。

再举个应用的例子:有两段机械臂,绿色的机械臂可以通过摇杆控制旋转,现在需要蓝色的机械臂上红点的位置,始终位于绿色机械臂蓝点的位置上,让蓝色机械臂始终跟随着绿色的机械臂进行旋转。

实现这个功能仍旧需要借助三角函数的知识,已知斜边的长度,以及斜边和直角边的夹角,可以借助三角函数中的正弦函数余弦函数,计算出两个直角边的长度。

具体的积木逻辑也非常的简单。

涉及到数学计算的积木有两块,但是我们可以实现出下面这样的效果。

这是有人花 99 元付费咨询的一个问题(愿意耐心阅读的你赚到了),你看多学点儿数学知识就能帮你赚钱了,这是不是就是“知识就是金钱”的真实写照?

最后,再看一个例子。

如何让游戏中的一个精灵围绕着另一个指定的精灵或者位置进行旋转呢?

如图,蓝色方块围绕着红色方块转动,可以看作是蓝色方块以红色方块的中心为圆点,以固定的距离为半径,在这个圆上移动。

在旋转的过程中,角度 a 是在不断的变化的,可以利用三角函数中的正弦函数和余弦函数来计算出蓝色方块的位置坐标,这样在循环中通过不停的设置蓝色方块的坐标就能够实现绕圈的圆周运动。

实现的积木逻辑如下图。

涉及到数学计算的积木有两块,但是我们可以借助它们实现出下面这样的效果。

例子还有很多,就不再一一列举了。

总之,三角函数这一点儿数学知识值得你好好的去搞透了,做这件事是非常值得的,因为搞明白了这点儿东西,你就解决了日常游戏开发中所遇到的 90% 的与数学有关的问题了。

当你学习一个知识不再是为了考试的时候,学习本身的乐趣就会体现出来了。我从小学开始就恐惧英语,一直恐惧到大学,后来工作后,因为需要阅读很多的英文文档,读的多了慢慢的就发现好像英语也没那么难嘛!尤其是当你学到的东西能够得到应用的时候,带来的反馈是很强烈的。你能深切的感受到,自己所学的知识帮助自己解决了一些问题,带来了一些改变,甚至是赚到了一些钱。此时,学习便成为了一件有趣的事情。

面对游戏开发中的基础数学知识,是选择依旧头疼,还是选择静下心来把这点儿东西搞明白呢?

尝试一下后者吧!躲来躲去的总不是办法,有的时候进一步就是海阔天空。

我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我的公众号就对啦!

这里是我的游戏开发课程服务,不只是一门课,而是围绕着新手学习做游戏有关的一整套服务。致力于帮助更多的人学会做游戏并做出自己的游戏,欢迎来跟 111 位同学一起学习做游戏。【点击这里】了解课程服务详情。

这里是小蚂蚁的小游戏系列,闲暇之余希望能给你带来片刻的放松和愉悦。无需下载安装,点击下方的游戏卡片就可以直接玩啦!









也欢迎加个微信,交个朋友,朋友圈每日分享与做游戏有关的知识和内容,可以来围观。备注“学习做游戏”可免费领取学习做游戏的原创教程资料。接受付费咨询,不闲聊,望见谅。

相关文章
|
6月前
|
算法 数据可视化 vr&ar
【图形学】探秘图形学奥秘:区域填充的解密与实战
【图形学】探秘图形学奥秘:区域填充的解密与实战
55 0
|
8天前
|
设计模式 存储 算法
探索代码之美:编程中的艺术与科学
【10月更文挑战第37天】在数字世界的画布上,每一行代码都是艺术家的笔触,每一个算法都承载着科学的灵魂。本文将带你走进编程的内在世界,探索那些隐藏在逻辑背后的魅力,揭示如何通过技术提升个人能力,以及如何在技术的海洋中找到自己的北极星。从基础的数据结构到复杂的软件架构,我们将一起领略编程的艺术与科学。
|
1月前
|
机器学习/深度学习 存储 数据挖掘
探索Python编程之美:从基础到进阶的旅程
【10月更文挑战第2天】本文旨在通过浅显易懂的方式,带领读者走进Python编程的世界。我们将从Python的基础语法开始,逐步深入到面向对象编程、异常处理等高级主题,最后探讨如何将Python应用于实际项目中。无论你是编程新手还是有一定基础的开发者,这篇文章都将为你提供有价值的见解和实用的技巧。
|
2月前
|
数据采集 机器学习/深度学习 数据挖掘
探索Python编程之美:从基础到实战
【9月更文挑战第3天】本文旨在通过深入浅出的方式,带领读者领略Python编程语言的魅力。我们将从基本语法入手,逐步深入至高级特性,最终通过实战案例将理论知识与实践操作相结合。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
2月前
|
算法 Python
揭秘Python编程之美:从代码到艺术的转变
【9月更文挑战第1天】 在这篇文章中,我们将一起探索如何将看似枯燥的Python编程代码转变为一门充满创造性和美感的艺术。通过深入浅出的解释、生动的例子和实用的技巧,你将学会如何编写更加优雅、高效且易于理解的Python代码,从而提升你的编程技能并享受编程的乐趣。
27 2
|
4月前
|
设计模式 算法 程序员
探索代码之美:编程的艺术与实践
【7月更文挑战第31天】在数字世界的构建中,编程不仅仅是一项技术工作,它更是一种艺术。本文将带领读者深入编程的核心,从基础语法到设计模式,再到软件架构,探索如何通过代码表达创造性思维和解决实际问题。我们将一起见证编程如何从枯燥的指令序列转变为优雅的解决方案,以及这一过程如何影响我们的思考方式和解决问题的策略。
|
3月前
|
算法 程序员 开发者
代码之美:探索编程的艺术与实践
【8月更文挑战第8天】 在数字化时代,编程已成为一门不可或缺的技艺。它不仅仅是一种工具,更是一种艺术形式。通过这篇文章,我们将深入探讨编程的美学原则,以及如何将这些原则应用于实际开发中,从而提升代码的质量和可维护性。文章将结合具体案例,展示优雅代码的力量,并讨论如何培养良好的编程习惯和持续学习的重要性。
39 3
|
3月前
|
设计模式 算法 测试技术
代码之美:编程的艺术与实践
在数字世界的构建中,编程不仅仅是一种技术活动,它更是一种艺术。通过探索编程的美学原则和实用技巧,本文旨在揭示如何将代码编写转化为一种创造性的过程,从而提升软件质量和开发者的满意度。文章将分享有效的编码习惯、设计模式的应用以及重构策略,帮助读者理解编程的艺术性,并在实践中加以应用。
55 1
|
3月前
|
算法 测试技术 开发工具
探索代码之美:高效编程的艺术与实践
【7月更文挑战第52天】在数字世界的构建过程中,编程不仅仅是一门科学,更是一种艺术。本文将深入探讨如何通过高效的编程实践来提升代码质量、优化开发流程,并且分享在此过程中所获得的技术感悟。我们将从代码的简洁性、可读性和性能优化三个维度出发,分析并提出实用的编程技巧和策略,旨在帮助开发者在追求效率的同时,也能享受编程带来的乐趣和成就感。
|
机器学习/深度学习 人工智能 算法
计算机图形学的基础知识
计算机图形学的基础知识
206 2