问题标签 [procedural]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7303 浏览

landscape - 基于现有地形的动态地形生成

这个问题与这里提出的问题非常相似。

我的问题是我有一张地图,如下所示:

主地图

这张地图是使用 2D Perlin 噪声制作的,然后运行创建的高度图,根据相应元素的高度或坡度为地形中的每个元素分配类型和颜色值,非常标准。地图数组是二维的,屏幕尺寸的精确尺寸(每像素像素),所以在 1200 x 800 生成时,在我的装备上大约需要 2 秒。

现在放大突出显示的矩形:

http://i.stack.imgur.com/hrZnM.png

显然,随着尺寸的增加,细节会丢失。这就是问题所在。我想即时创建额外的细节,然后在玩家四处移动时将其写入磁盘(玩家只是一个限制沿网格移动的点)。我看到了两种方法,我很快就想到了第一种方法:

http://i.stack.imgur.com/bbLia.png

这是从旧地形的采样元素创建的新的有偏差的局部地形的放大视图,在上一张图像中由黄色网格空间(中心左侧)突出显示。然而,这个系统需要大量的修改,例如,如果你将一个单元从黄色网格空间的左上方移动到海滩瓷砖上,地形就会完全改变:

http://i.stack.imgur.com/6shKz.png

所以为了让它正常工作,你需要做大量的,我猜这个词应该是插值,以创建一个平滑的过渡,因为玩家在本地世界中移动了 40 个左右的网格空间,需要到达下一个世界在世界各地平铺。这看起来很复杂而且很不雅。

第二种方法是将原始地图的网格分解成更小的位,也许将每个正方形除以 4?我还没有实现这个,我不确定我会如何以一种实际增加细节的方式,但我认为这可能最终成为最好的解决方案。

关于我如何解决这个问题的任何想法?请记住,它必须是本地的和即时的。只是增加地图的分辨率是我想不惜一切代价避免的事情。

0 投票
2 回答
28318 浏览

3d - 最快的 Perlin-Like 3D 噪声算法?

自 Ken Perlin 首次发明噪音以来,已经有 20 多年了。有没有人设法制造出一种更快的 3D 噪声生成器,其特性接近 Perlin 的(程序化、自然的分组、减少的条带、规则的特征大小等)?

我正在尝试构建一个程序世界生成器,但目前 Perlin 并没有削减它。我承认我的实现不是现在最好的,但如果我要重写它,我想知道是否有更好的算法可用。

0 投票
3 回答
765 浏览

php - PHP 程序转 OOP

我正在尝试将我的程序代码转换为 oop。

我对没有 HTML 样式的类/对象的不完整尝试:

我的程序代码打印出来:1 一 2 二。

我的 oop 代码打印出来:2 两个

据我了解,oop 以这种方式打印出来,因为 $info_id 和 $info_title 不是数组,并且只打印出最后存储的信息。

所以,如果我改变:

至:

并打印数组,它显示了我想要的所有信息,但是如何以非数组形式显示呢?

到目前为止我正在做的事情是正确的还是我正在接近这个错误?

0 投票
5 回答
339 浏览

php - 我是用对象还是 OOP 编写程序代码?

所以基本上我正在从程序编码飞跃到 OOP。我正在尝试实现 OOP 的原则,但我有一种唠叨的感觉,我实际上只是在用 Objects 编写程序风格。

所以说我有一个管道/椅子/打印机/不管的列表,它们都在我的单表数据库中列为产品。我需要构建一个 webapp,根据它们的类型显示整个列表和项目,重点是“正确”使用 OOP 及其范例。

这样做有什么问题吗:

然后简单地

我还将实现更具体的显示方法,例如:

showSpecificProduct($id)->(当用户说点击其中一个链接时,$id 将通过 $_GET 传递,我们将拥有单独的 product.php 文件,该文件基本上只包含

showSpecificProduct() 将同时执行选择查询和输出 html 以供显示。

因此,简而言之,我是否可以继续进行,或者我只是在使用类和对象进行程序编码。如果我做错了,还有关于解决它的任何想法/提示等?

0 投票
1 回答
172 浏览

c++ - 类的过程实例化 - 如何?

假设我有一个 Object 类,它有一个简单地报告实例 ID 号的方法。通常,我会硬编码像“Object obj_1”这样的Object类的实例化和像“obj_1.report”这样的方法的调用

我的问题是我如何在程序上实例化对象,例如我想创建 n 个对象,去 obj_1、obj_2 等等直到 obj_n。自然,我不是在询问实际的循环,而是询问如何使用变量实例化类,而是取变量的值而不是变量的名称并将其添加到 obj_ 前缀中。也许与铸造?另外,我如何通过仅指定 ID 在程序上调用特定实例的方法。我认为实例化和方法调用都将以相同的方式工作,但是作为一个新手,我很难弄清楚如何在旅途中准确地完成它而不是硬编码。

提前致谢!

编辑:我对 c++ 语法感兴趣

0 投票
1 回答
1859 浏览

java - 用于生成 2D 噪声的参数随机函数

我正在尝试生成无限的随机地形。每次给定相同的种子时,地形应该生成相同的。

我尝试使用 Java 的 Random 函数,使用地形网格上给定节点的 x 和 y 坐标的各种函数创建种子。如x*y+x+y+seed、20*x+30*y等。

这种方法的问题是我总是在生成的数字中看到清晰的模式。

所以基本上我想要的是: f(x,y) = Random Number

如果上述函数可以包含某种种子,这将很有帮助:f(x,y,seed) = Random Number

我需要为每个 x,y 组合生成几个数字,但是一旦我拥有上述功能,就应该很容易推导出额外的数字。这些将用于决定地形的高度,以及将出现哪些特征(建筑物、树木)。

请不要提及 Perlin Noise 或其他此类方法。我的问题不是让噪音看起来不错,而是得到可靠的“随机”噪音。

谢谢,杰米。

0 投票
2 回答
2031 浏览

php - 带有命名空间与 oop 的 php 程序

据我了解,OOP 与 PHP 中的过程编程的最大优势是函数名称的分离(命名空间的排序)。

所以现在当我们从 5.3 版本开始有了命名空间时,你怎么看 - 对于大多数情况(中​​小型网站),当我们需要快速且再次结构化的代码时,使用命名空间 + 过程编程是否比定义和写入具有显着优势哎呀。

好处:

  • 结构化的
  • 更快的代码/开发
  • 再次,我们可以在命名空间中定义类似私有函数的东西,以“_”开头,知道我们不需要使用它们
  • ETC..

代码示例:

用法:

我征求意见。我知道这只是开发人员的风格,但也许我遗漏了一些东西。

PS。对于大多数情况(中​​小型网站)——我的意思是当你为客户做网站时,这些网站大多是 1 次开发,从长远来看会有一些功能改进。

0 投票
1 回答
1253 浏览

math - 网格操作的高斯衰减格式

下面的这个返回被定义为高斯衰减。我没有看到 e 或 2 的幂,所以我不确定这与高斯衰减有何关系,或者它是否是我用来在网格上获得良好平滑变形的错误类型的衰减:

其中Mathf.Clamp01返回一个介于 0 和 1 之间的值。

inRadius是失真的大小,由下式distance确定:

vertices是网格顶点的列表,position是网格操作/变形的点。

我的问题是两个部分:

1)以上实际上是高斯衰减吗?它是指数的,但似乎没有关键的 e 或 2 的幂...(更新 - 我看到图形似乎以类似高斯的方式平滑地减小。也许这个函数不是问题 2 的原因以下)

2)我的网格变形不够平滑 - 鉴于上述参数,您会推荐不同的高斯衰减吗?

0 投票
4 回答
1465 浏览

php - 选择在 php OOP 设计中使用哪些类

我经营一个街机网站,在过去的几年里,它添加了许多功能,到了程序编程看起来太复杂的地步,添加新功能或进行简单的设计修改可能非常棘手。

因此,我决定尝试使用相同的功能但以 OOP 格式从头开始重新编码该站点。

我遇到的问题是选课,我了解 OOP 以及它应该如何工作,但似乎总是难以入门。我不确定我是否应该尝试为类(例如具有登录用户功能的用户类)创建功能,或者用户类是否应该只是添加/更新/显示用户详细信息并且登录部分在系统中会更好班级?

目前我已经开始使用以下类和函数,但它们是否适合这个类别?

然后我可以在 page.php 中包含类似以下内容 .. (未显示连接类)

但是随后该站点将具有显示游戏类别的页面,并且我不知道 displayGames() 函数适合哪里,因为它不是单个游戏,所以不会进入“游戏”类?

我试图找到“现实世界”的例子,但向我展示如何让大象改变颜色或跳舞的 php 代码并没有真正帮助......

0 投票
3 回答
1417 浏览

math - 像 Tiny Wings 一样生成不同高度和宽度的连绵起伏的丘陵?

如何像 Tiny Wings 那样生成不同高度和宽度的连绵起伏的丘陵?现在我正在使用 sin() 但它显然会生成永远重复的均匀山丘。

秘诀是什么?

谢谢!