我有一只猫横穿屏幕,在屏幕中间停了两次抓挠。我当前的代码看起来像
private void scratch(){
for (int i = xPos; i < getWidth(); i+=0) {
xPos = i;
// swap images
if (currentImage == nekoPics[0])
currentImage = nekoPics[2];
else if (currentImage == nekoPics[2])
currentImage = nekoPics[4];
else if (currentImage == nekoPics[4])
currentImage = nekoPics[5];
else if (currentImage == nekoPics[5])
currentImage = nekoPics[4];
else if (currentImage == nekoPics[4])
currentImage = nekoPics[5];
else
currentImage = nekoPics[0]
进行if else语句是否有比这样大的循环更容易的方法?
提前致谢
(PS:我认为您可以使用某种计数器来完成此操作,但是我不确定如何执行此操作,我们会提供任何帮助)
最佳答案
您可以保留当前图像的索引,并在每次迭代时将其递增,例如:
currentImage = nekoPics[currentIndex%6];
currentIndex++;
要么
currentImage = nekoPics[currentIndex];
if (++currentIndex==6) currentIndex=0;
这就要求nekoPics中的图像要根据动画顺序进行排序。