gpt4 book ai didi

android - 在屏幕外生成对象然后将它们移动到中心?

转载 作者:行者123 更新时间:2023-11-30 02:33:23 27 4
gpt4 key购买 nike

是否可以在屏幕外生成一系列物体,然后让这些物体向内移动?我正在创建一个带有圆圈的动态墙纸,这些圆圈从屏幕外开始,向内移动并从墙上反弹。我创建了一个插图来更好地描述我的意思: enter image description here

我面临的两个问题是:

  • 在屏幕外生成对象
  • 让它们向内移动,然后从边缘反弹

我怎样才能做到这一点?

最佳答案

这个问题的一个解决方案是创建一个包含以下属性的类:

  • X 和 Y 协调(可以是 Point )
  • 速度X
  • 速度Y

然后你可以用坐标创建对象:

  • (X < 0) 或 (X > 屏幕宽度)

和/或

  • (Y < 0) 或 (Y > 屏幕高度)

并给他们适当的速度(以便他们向屏幕边界移动)。

在每个步骤中,您将:

  • 更新每个对象的坐标,将其移动到与其当前速度相对应的适当方向
  • 重绘 Canvas 上的所有对象

对象坐标的偏移量取决于每两次重绘之间的时间步长。如何评价它取决于您。

在对象到达屏幕边界之前,它将被绘制到屏幕之外并且不可见。

要在 Canvas 上绘制对象,您可以扩展 View类(或 SurfaceView - 讨论这两者之间的区别 here )并覆盖 onDraw()方法。可以关注this tutorial或者自己找另一个(有很多)。

如果一个对象从内部到达屏幕边界(即当它的 X 在 [0, screenWidth] 范围内并且它的 Y 在 [0, screenHeight] 范围内)你可以否定它的速度(在 X 或 Y 方向,取决于到达哪个边界)所以它会朝另一个方向移动(就像与墙壁的弹性碰撞)。

您可以调整 speedX 和 speedY 的最小值和最大值,以查看哪个能提供最令人满意的结果。

关于android - 在屏幕外生成对象然后将它们移动到中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26968867/

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