我有一只猫横穿屏幕,在屏幕中间停了两次抓挠。我当前的代码看起来像

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中的图像要根据动画顺序进行排序。

07-26 05:19