首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何创建多个ImageViews的更新函数?

如何创建多个ImageViews的更新函数?
EN

Stack Overflow用户
提问于 2018-06-07 04:21:02
回答 1查看 23关注 0票数 1

我试图为多个ImageView创建一个更新函数,但总是遇到问题。我目前在一个定时器中向updateBlobPosition函数传递了一个单独的ImageView,这对于一个ImageView来说很好。但只要我传递第二个ImageView (blob2),现在这两个ImageViews就会相互模仿,因为它们具有相同的轨迹和速度。

此外,当一个ImageView撞到墙上并反弹回来时,另一个也会做同样的事情。我想要的是每个ImageView彼此独立。任何帮助都将不胜感激。

代码语言:javascript
复制
...
blob1.setX(generateRandomNumber(0, 930));
blob1.setY(generateRandomNumber(0, 1750));
blob2.setX(generateRandomNumber(0, 930));
blob2.setY(generateRandomNumber(0, 1750));
...

//start the timer
    timer.schedule(new TimerTask() {
        @Override
        public void run() {
            handler.post(new Runnable() {
                @Override
                public void run() {
                    playerMovement();
                    updateBlobPosition(blob1);
                    updateBlobPosition(blob2);
                    collision(blob1);
                    collision(blob2);
                }
            });
        }
    }, 0, 20);

...
protected ImageView updateBlobPosition(ImageView blob) {

    blobX = blob.getX();
    blobY = blob.getY();

    blobX += blobVelocityX;
    blobY += blobVelocityY;

    //left
    if ((blob.getX() + blobVelocityX < 0)) {
        blobVelocityX = -blobVelocityX;
    }
    //right
    else if (blob.getX() - blobVelocityX > 930) {
        blobVelocityX = -Math.abs(blobVelocityX);
    }
    //top
    if ((blob.getY() + blobVelocityY < -20)) {
        blobVelocityY = -blobVelocityY;
    }
    //bottom
    else if (blob.getY() - blobVelocityY > 1750) {
        blobVelocityY = -Math.abs(blobVelocityY);
    }

    blob.setX(blobX);
    blob.setY(blobY);

    return blob;
}
EN

回答 1

Stack Overflow用户

发布于 2018-06-07 04:26:10

这两个变量都使用了相同的速度变量。因此,它们当然会以相同的方式更新。如果你想让他们独立移动,就给他们独立的速度。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50728920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档