gpt4 book ai didi

java - 位图出现在屏幕外

转载 作者:行者123 更新时间:2023-11-30 05:37:51 26 4
gpt4 key购买 nike

我有一个游戏,用户必须收集向他们袭来的 Blob 。这些 Blob 是位图。我遇到的问题是一些 Blob 来自屏幕边界之外。因此,例如, Blob 的底部将出现在屏幕的最顶部,因此我无法看到完整的位图。我希望它位于屏幕顶部和底部之间而不是外部的位置。我的问题是,有人可以帮助我让 Blob 只出现在屏幕上吗?任何帮助将不胜感激!

请注意:blobOffsetY = blob 的底边坐标。

我的代码:

for (int j = 0; j < AppConstants.numberOfBlobs; j++) {
if (blobs.get(j).getBlobX() < -AppConstants.getBitmapBank().getBlobWidth()) {
blobs.get(j).setBlobX(blobs.get(j).getBlobX() +
AppConstants.numberOfBlobs * AppConstants.distanceBetweenBlob);
int blobOffSetY = AppConstants.minBlobOffsetY +
random.nextInt(AppConstants.maxBlobOffsetY - AppConstants.minBlobOffsetY + 1);
blobs.get(j).setBlobOffsetY(blobOffSetY);
blobs.get(j).newScore = true;
}
blobs.get(j).setBlobX(blobs.get(j).getBlobX() - AppConstants.blobVelocity);
}

最佳答案

您没有显示相关代码,但我想您的问题从这里开始:

blobs.get(j)

看来您唯一的“知道”blob 的数据结构是某种列表。因此,您总是必须迭代所有它们,然后决定哪些当前位于您的可见屏幕中。

答案:想出一种更合适的方式来存储数据。例如,您可以:

  • 以某种方式对该列表中的 blob 进行排序(例如“按地理位置”),这样当您在“屏幕外”找到第一个 blob 时,您就知道不必处理任何后续内容
  • 使用多个列表,以便您的 blob 以某种方式“分组”,以便您立即只需循环较小的 blob 组
  • 使用不同的数据结构,例如 map 。键可以是某种坐标,值可以是该坐标上存在的 Blob 列表,以便您可以快速找到受影响的 Blob

但由于您的问题相当广泛和笼统,因此不要要求更具体的答案。

关于java - 位图出现在屏幕外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56258229/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com