我有一个游戏,用户必须收集它们周围的斑点。斑点是位图。我遇到的问题是某些斑点来自屏幕范围之外。因此,例如,斑点的底部将出现在屏幕的顶部,所以我将无法看到完整的位图。我希望它位于屏幕的顶部和底部之间,而不是位于屏幕外部。我的问题是,有人可以帮助我使斑点仅出现在屏幕上吗?任何帮助将不胜感激!
只需注意:
blobOffsetY
=斑点的底部边缘坐标。
我的代码:
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);
}
答案 0 :(得分:1)
您没有显示相关代码,但我想您的问题从这里开始:
blobs.get(j)
看来,您唯一知道“斑点”的数据结构是某种列表。因此,您始终必须迭代所有 ,然后确定当前在可见屏幕中的那些。
答案:想出一种更合适的数据存储方式。您可以例如:
但是,由于您的问题很广泛且笼统,所以不要要求更具体的答案。