0%

使用射线

这是一种发射线,获取当前点击的物体(具有碰撞器)的坐标点(也就是碰撞器范围的坐标点)

1
2
3
4
5
6
7
8
9
10
11
12
13
if (Input.GetMouseButtonDown(0))
{

RaycastHit hitt = new RaycastHit();

Ray ray =Camera.main.ScreenPointToRay(Input.mousePosition);

Physics.Raycast(ray, out hitt);

Debug.Log(hitt.point);

//Debug.Log(Camera.main.ScreenToWorldPoint(Input.mousePosition));
}
阅读全文 »

Part1. 创建Solution path - 关卡通路

关卡生成算法的第一部分:生成关卡的critical path(关卡通路),我们先不考虑那些障碍物、陷阱、敌人和宝箱什么的。

算法的第一部分是生成关卡的 Critical Path(通路),关卡由 16 个房间按照 4x4 的网格组成。方法是先在第一排随机找到一个起始房间,然后随机使相邻的房间成为通路的一部分,一直到最后一排,生成出口。找到通路之后,连接这些房间,然后再随机补充上非通路部分的房间,打通这些房间。如图顺序所示:

阅读全文 »

作者:哈里叔叔
链接:https://www.zhihu.com/question/52019284/answer/1476187895
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

对称性对抗游戏简介

对称性对抗游戏是指参与游戏的玩家所拥有的资源、交互方式、受制规则、最终目标是相同或相近的,是一种公平、对称的零和游戏。如《英雄无敌》《文明》《卡坦岛》等游戏。

阅读全文 »

什么是“波函数坍塌”?

这个名字看起来是来自量子力学,意思应该是只有在真正观察时,粒子的状态才能被确定,要不然是不确定的,其实并不确定这个解释对不对,物理就够难了,更何况是量子力学。不过呢,很多事物都只是被赋予了高大上的名字,但是实际上根本没有看起来那么复杂。

这里所说的“波函数坍塌”实际上是一种贴图以及模型合成技术(texture synthesize or model synthesize),所谓贴图是指数字动画中被贴在物体表面的图片,模型则是这些物体的模型。在2d里,模型一般就是一个二维的封闭区域,3d则是一个有特定形状的物体。贴图模型合成技术的研究和应用已经有很多年的历史了,只是直到今天才有了一个比较霸气的名字而已。

阅读全文 »

柏林噪声是一个非常强大算法,经常用于程序生成随机内容,在游戏和其他像电影等多媒体领域广泛应用。算法发明者Ken Perlin也因此算法获得奥斯卡科技成果奖(靠算法拿奥斯卡也是没谁了666)。本文将剖析他于2002年发表的改进版柏林噪声算法。在游戏开发领域,柏林噪声可以用于生成波形,起伏不平的材质或者纹理。例如,它能用于程序生成地形(例如使用柏林噪声来生成我的世界(Minecraft)里的地形),火焰燃烧特效,水和云等等。柏林噪声绝大部分应用在2维,3维层面上,但某种意义上也能拓展到4维。柏林噪声在1维层面上可用于卷轴地形、模拟手绘线条等。
如果将柏林噪声拓展到4维层面,以第4维,即w轴代表时间,就能利用柏林噪声做动画。例如,2D柏林噪声可以通过插值生成地形,而3D柏林噪声则可以模拟海平面上起伏的波浪。下面是柏林噪声在不同维度的图像以及在游戏中的应用场景。

img

正如图所示,柏林噪声算法可以用来模拟许多自然中的噪声现象。接下来让我们从数理上分析算法的实现原理。

阅读全文 »