如何将所有像素向下移动?

时间:2017-11-21 20:57:15

标签: processing

我在黑色画布上绘制了多个白色像素,以获得夜空。我给了星星随机位置,现在想要所有像素向下移动以模仿地球的运动。

我尝试过翻译,但这似乎不适用于像素。

有没有办法将画布中的所有像素向下移动?

2 个答案:

答案 0 :(得分:0)

arrayCopy(pixels, 0, pixels, width, (height - 1) * width);

应该解决你的问题。有关arrayCopy的更多帮助,请查看此处:https://processing.org/reference/arrayCopy_.html

答案 1 :(得分:0)

基本上,创建动画的过程是这样的:

  • 将您的状态存储在变量或缓冲区中。
  • 使用这些变量每帧绘制场景。
  • 随着时间的推移更改这些变量以更改场景。

一种方法是将你的星星画到缓冲区。 createGraphics()功能是你的朋友。然后使用image()函数将该缓冲区绘制到屏幕上。然后每帧将缓冲区的y位置向下移动一些量。

另一种方法是将您的星标位置存储在一组变量中,例如ArrayListPVector个实例。将这些位置绘制到屏幕上,然后每帧向下移动一下。

translate()函数应该可以正常工作,而且它只是我上面概述的步骤的另一种方法。就像托比亚斯的回答一样。有很多不同的方法可以做到这一点。如果您仍然遇到问题,请在新问题帖子中发布MCVE。祝你好运。

无耻的自我推销:我写了一篇关于在Processing available here中创建动画的教程。