Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在变量增加时逐像素重新创建预先制作的png_Javascript_Image Processing_Pixels - Fatal编程技术网

Javascript 如何在变量增加时逐像素重新创建预先制作的png

Javascript 如何在变量增加时逐像素重新创建预先制作的png,javascript,image-processing,pixels,Javascript,Image Processing,Pixels,我正在用javascript在unity2D中制作一个空闲的游戏,并试图通过非常缓慢地基于我存储在游戏文件(假设为png)中的几个文件之一构建一个图像来为玩家设定一个目标。每当玩家的总分上升时,该图像需要显示另一个像素,并在花费这些分数时移除一个像素。对于大型图像,这将需要相当长的时间,但会显示出进展 在学习python时,我曾经尝试过单个像素,但我从未见过以这种方式使用像素操作。任何想法都会帮上大忙,谢谢。您可以调整图片的大小,即缩小和拉伸图片-如果这是一个简单的进度条。或者,您可以使用黑色纹

我正在用javascript在unity2D中制作一个空闲的游戏,并试图通过非常缓慢地基于我存储在游戏文件(假设为png)中的几个文件之一构建一个图像来为玩家设定一个目标。每当玩家的总分上升时,该图像需要显示另一个像素,并在花费这些分数时移除一个像素。对于大型图像,这将需要相当长的时间,但会显示出进展


在学习python时,我曾经尝试过单个像素,但我从未见过以这种方式使用像素操作。任何想法都会帮上大忙,谢谢。

您可以调整图片的大小,即缩小和拉伸图片-如果这是一个简单的进度条。或者,您可以使用黑色纹理覆盖它,并调整其大小以覆盖进度条中您不想显示的部分。如果您想在2d基础上显示像素(例如,逐行显示),可以使用两个矩形形状来覆盖您还不想显示的部分。
如果您真的想显示随机像素,那么您仍然可以使用遮罩,但请记住,unity2d并不是要在每像素的基础上像那样工作。您可能需要一个自定义着色器,这并不简单。

制作一个预设的像素精灵,并按顺序将其分层到图像上。将预制件存储在阵列中。它们已经准备好了,所以处理隐藏和显示它们就足够容易了。您可以通过排序层隐藏/显示(将它们移动到背景层以隐藏,将它们移回前景层以显示)


你想随机显示像素吗?我更喜欢按顺序显示,但如果随机更容易,我会这样做。听起来,让图像显示或逐像素显示可能会麻烦得多。一行一行地做不是一个选项,收缩和拉伸也是如此。真的为什么一个精灵屏蔽所有尚未显示的行,另一个精灵屏蔽当前显示行中的像素会如此麻烦?正如您在其他评论中所看到的:逐像素思考不是统一的方式。从性能角度看,通过逐像素显示来伪造此图像可能要快得多。我建议的解决方案背后的数学是相当简单的。主要是关于所用图像上的里程数。如果我在1028x720图像上使用像素厚的线条,我能得到的最好结果可能是在玩家获得奖励前15-30分钟。如果我把10-5张图片排成一列,这个问题就不会那么严重了。这是一个好主意,除非它需要花费很长时间才能实现。我看的是9210600张左右的图片,即使使用的块比单个像素大,也需要很长时间。真的吗?我更担心的是有数百万的精灵在眼前。对我来说,实施时间似乎很短。我看到你在上面的评论中提到一个像素一个像素,一行一行。我不确定您是否了解,使用几个循环和几个处理函数可以相当容易地完成这项工作。统一使它变得更加困难,因为“像素”实际上不是一件事,但是正确地设置单位和相机,你就应该进行设置。真的吗?因为我想不出一个循环能够检查当前的总分数,并根据当前显示的像素数增减像素。在我之前的评论中还想说“9210600个独立像素”,但它不允许我编辑。这部分不会在循环中完成,这将是处理程序的一部分。一些简单的划分应该可以处理它。循环将设置像素掩码和伴随的阵列。在不知道你的评分系统的细节的情况下,我设置了这个让你看一看。这只是一个逻辑示例,但可能会有所帮助。不客气:)我知道你有一个评分系统,但我不知道它的细节,所以我认为至少一个逻辑/设置示例可能会有所帮助。谢谢你接受我的回答!