如何将所有像素向下移动?
How to move all pixels down?
我在黑色上绘制了多个白色像素 canvas 以获得夜空。我给了星星随机位置,现在希望所有像素都向下移动以模仿地球的运动。
我试过翻译,但它似乎不适用于像素。
有没有办法将 canvas 中的所有像素向下移动?
arrayCopy(pixels, 0, pixels, width, (height - 1) * width);
应该可以解决你遇到的问题。有关 arrayCopy 的更多帮助,请查看此处:https://processing.org/reference/arrayCopy_.html
基本上,创建动画的过程是这样的:
- 将您的状态存储在变量或缓冲区中。
- 使用这些变量每帧绘制场景。
- 随着时间的推移改变这些变量来改变你的场景。
一种方法是将星星绘制到缓冲区。 createGraphics()
函数是你的朋友。然后使用 image()
函数将该缓冲区绘制到屏幕上。然后将缓冲区的 y 位置每帧向下移动一定量。
另一种方法是将您的星星位置存储在一组变量中,例如 ArrayList
个 PVector
个实例。将这些位置绘制到屏幕上,并在每一帧中将每个位置向下移动一点。
translate()
函数应该可以很好地处理点,这只是我上面概述的步骤的另一种方法。就像托比亚斯的回答一样。有很多不同的方法可以做到这一点。如果您仍然遇到问题,请 post 在新问题 post 中回答 MCVE。祝你好运。
无耻的自我推销:我在 Processing 中写了一个创建动画的教程可用 here。
我在黑色上绘制了多个白色像素 canvas 以获得夜空。我给了星星随机位置,现在希望所有像素都向下移动以模仿地球的运动。
我试过翻译,但它似乎不适用于像素。
有没有办法将 canvas 中的所有像素向下移动?
arrayCopy(pixels, 0, pixels, width, (height - 1) * width);
应该可以解决你遇到的问题。有关 arrayCopy 的更多帮助,请查看此处:https://processing.org/reference/arrayCopy_.html
基本上,创建动画的过程是这样的:
- 将您的状态存储在变量或缓冲区中。
- 使用这些变量每帧绘制场景。
- 随着时间的推移改变这些变量来改变你的场景。
一种方法是将星星绘制到缓冲区。 createGraphics()
函数是你的朋友。然后使用 image()
函数将该缓冲区绘制到屏幕上。然后将缓冲区的 y 位置每帧向下移动一定量。
另一种方法是将您的星星位置存储在一组变量中,例如 ArrayList
个 PVector
个实例。将这些位置绘制到屏幕上,并在每一帧中将每个位置向下移动一点。
translate()
函数应该可以很好地处理点,这只是我上面概述的步骤的另一种方法。就像托比亚斯的回答一样。有很多不同的方法可以做到这一点。如果您仍然遇到问题,请 post 在新问题 post 中回答 MCVE。祝你好运。
无耻的自我推销:我在 Processing 中写了一个创建动画的教程可用 here。