我正在构建一个带有源系统的系统,我在'网上提供可用于虚拟宠物的网络.该系统将主要由儿童拥有.因为我希望它可用于绝对的初学者程序员,所以我的系统有几个复杂性限制:它不能使用通常不附带PHP的库,也不能触及数据库或写入其他永久存储器.
当每只宠物被采用时,访客将随机获得该宠物的一系列略有不同的变体之一.变化最初看起来是一样的,但随着时间的推移长大成为不同的宠物.访问者将获得HTML的简短代码,该代码链接到他们宠物的图像.由于服务器端没有永久存储空间,因此用户的图像链接必须包含所有信息,以确定他们最终获得的宠物变体.
目前,URL只包含宠物的ID和用户获得的变体的ID.这样做的问题在于,通过将代码相互比较,用户可以确定其中的哪些人最终得到了相同的变体.由于某些变化比其他变化更少,因此用户可以在差异甚至在视觉上明显之前轻松发现罕见的变化.
我想要的是URL中的详细信息的加密系统.掩盖变体ID的东西,以便每个用户获得具有高概率的不同URL.我想过使用变量ID(3或4位)作为大随机数的低位或高位,但是用户会在其中发现模式.理想情况下,加密系统将进行参数化,以便我的系统的每个安装都使用稍微不同的加密.
PHP的mcrypt库可能会有一些有用的东西,但在主机中似乎并不常见.
我可以在这里使用简单的,参数化的混淆/加密吗?
我正在尝试使用挤压弧在 Three.js 中绘制一个复杂的形状,但它们似乎表现不正常。我不知道我是否不理解API,但这不应该创建一个以原点为中心、半径为100的完整挤压圆吗?
var path = new THREE.Path();
path.moveTo(0, 0);
path.arc(0, 0, 100, 0, Math.PI * 2, false);
var shape = path.toShapes(false, false);
var extrudeSettings = {
amount : 20,
steps : 1
};
var geometry = new THREE.ExtrudeGeometry(shape, extrudeSettings);
var mesh = new THREE.Mesh(geometry, material);
Run Code Online (Sandbox Code Playgroud)
相反,它绘制了一个吃豆人形状:

这是 JSFiddle: