Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用UIButtons和CoreAnimation创建柔和的随机运动_Objective C_Ios_Uiview_Core Animation_Uitouch - Fatal编程技术网

Objective c 使用UIButtons和CoreAnimation创建柔和的随机运动

Objective c 使用UIButtons和CoreAnimation创建柔和的随机运动,objective-c,ios,uiview,core-animation,uitouch,Objective C,Ios,Uiview,Core Animation,Uitouch,我正在尝试在iPhone上创建一个包含一组UIButton的动画,每个UIButton都应该在UIView中缓慢而随机地移动,并相互反弹。我意识到这是一个非常开放的问题,所以我只是在为这种效果寻找一个更好的名称,以便我可以进行一些搜索。搏动似乎是合乎逻辑的,但大多数搜索结果都是有规律的进出 我的想法几乎就像是“显微镜下”的细胞视图,它们各自自动移动,当它们相互撞击时反弹,或者在盒子里放很多弹珠的效果。我最终希望实现用户“轻弹”它们,但这将在稍后实现 你知道从哪里开始找吗?提前谢谢 我首先在谷歌上

我正在尝试在iPhone上创建一个包含一组UIButton的动画,每个UIButton都应该在UIView中缓慢而随机地移动,并相互反弹。我意识到这是一个非常开放的问题,所以我只是在为这种效果寻找一个更好的名称,以便我可以进行一些搜索。搏动似乎是合乎逻辑的,但大多数搜索结果都是有规律的进出

我的想法几乎就像是“显微镜下”的细胞视图,它们各自自动移动,当它们相互撞击时反弹,或者在盒子里放很多弹珠的效果。我最终希望实现用户“轻弹”它们,但这将在稍后实现


你知道从哪里开始找吗?提前谢谢

我首先在谷歌上搜索布朗运动,它大概比显微镜下的细胞更随机,因为至少在理论上,细胞可以有某种目的和方向


但你也可能想看看群集或群集行为,这不是你要问的,但它在视觉上可能很有趣。

我会研究一些2D物理引擎,比如或,因为它们会自己提供碰撞检测和适当的反应。然后可以将
ui按钮
建模为具有极低初始速度的简单刚体。设置按钮的动画非常简单,只需在每次绘制记号时手动移动按钮。

您希望按钮沿随机选择的直线移动,直到它们撞到某物,还是希望它们弯曲

我不知道你想做什么的例子,但我可以推荐一些值得研究的东西

可以预先生成CGPath,然后使用CAKeyframeAnimation对象沿路径设置按钮动画

检测碰撞以使它们相互反弹是一件棘手的事情。您必须询问视图图层的presentationLayer。您可以获取每个按钮的presentationLayer帧并检查交叉点,或者使用hitTest方法检查每个帧的角点,以查看它们是否落在另一个按钮的帧内

我在Github上有一个示例应用程序,演示了如何沿弯曲路径设置视图动画,它还演示了如何使用CALayer hitTest方法在图像视图设置动画时检测点击


您可以通过

进入Github项目,Box2D看起来很有希望,但我能找到的几乎每一个教程都是预弧的,并且在我报告它时就会抛出数百个错误,或者是设计用于使用cocos2d,而我没有使用它。你知道我在哪里可以找到更多的帮助吗?我在Box2D上帮不了什么忙-我个人只使用过花栗鼠,我强烈建议你也使用它!普通的C版本(不是Obj-C版本)是免费的,并且有很好的文档记录,所以它不应该有太大的困难;)似乎我发现的大多数花栗鼠教程都过时了,我从结构的更改中得到了很多错误,看起来很混乱。你知道最近的一个(ARC,花栗鼠6)教程,我可以按照它来了解基本知识吗?我不是C程序员,真的..我希望他们随机移动,他们不应该走直线,不,随意改变方向,不管他们喜欢什么,等等。