gpt4 book ai didi

android - 随机放置对象时避免 Canvas 中的特定范围

转载 作者:行者123 更新时间:2023-11-30 04:19:50 26 4
gpt4 key购买 nike

我将对象放置在屏幕( Canvas )上的随机位置:

 public float X=Rnd.nextInt((MainGamePanel.width - 60) - 20) + 20;
public float Y=Rnd.nextInt((MainGamePanel.height - 30) - 30) + 30;

这很好用。现在;如果我想避免将对象放置在 (40,50) - (60,80).. 例如,因为我在那里有一个按钮,我不希望按钮被可见对象覆盖。

当然,我可以实现一个“checkposition”例程,如果对象位置位于按钮区域内的某处,它会重新随机化。但这是最好的(最干净、最简洁、最快的)解决方案吗?谢谢你的想法!

最佳答案

创建对象的固定时间

在四个区域创建对象,而不是一个。

拥有多于一组 (x,y) 的随机数,并根据每个区域的大小拆分每个中创建对象的百分比。如果你能想象出按钮区域外四个紧贴在一起的矩形,那么你就有了你的区域。这取决于您创建的对象数量和您正在寻找的效果。

这可能是一个糟糕的想法,但如果您有时随机地想要在屏幕的一部分中放置很多对象,因为您正在强制分配。另外,如果您想要屏幕上其他地方的另一个按钮,而不是与当前按钮相邻怎么办?有很多区域可能会有点乱。

此解决方案的优势在于创建所有对象所需的时间是可预测的。每次都应该相同。

创建对象的时间可变

使用 checkPostion() 方法。

使用 checkPostion() 方法并获取新的随机数可能更容易。如果您对此很聪明,您应该意识到在很多情况下您只需要“重新滚动”一个坐标而不是两个坐标。

关于android - 随机放置对象时避免 Canvas 中的特定范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9443177/

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