我目前有一个android应用程序,它使用UI的原生android视图(例如,imageviews/按钮等)
虽然这个应用程序不是游戏,也不需要任何沉重的图形或OpenGL,但我想纳入一点与物理相关的互动。没有太大的影响,但可能会显示轻微的碰撞/反弹、减速/加速或可能的摩擦。
是否可以在android框架内或使用外部物理库(如jbox2d )进行模拟,而不必使用整个游戏引擎(如andengine、libgx等)。
附注:这是针对15+接口的
谢谢大家。
发布于 2015-04-21 13:18:47
只要你可以在每个框架中设置/更新UI元素的位置(例如,使用View.setTranslationX()),你就可以做到。
手动设置UI动画将意味着保持UI元素和对应于它们的物理(例如jbox2d)主体之间的映射。然后将UI元素的相应位置更新为模拟身体的每个帧的位置(如body.getPosition())。
在事件驱动的应用程序中,像Timer对象这样的东西对于调度物理更新很有用。
发布于 2015-04-21 23:22:32
最简单的方法(不是很灵活)是使用ViewPropertyAnimator。
使用它,您甚至可以并行地对属性进行动画处理。也许你想从父级左边更改视图边距。您可以在那里更改边距,设置移动的时间等。Some examples on this blog
ValueAnimator是另一种选择,它默认使用AccelerateDecelerateInterpolator,您必须提供更改所需属性的代码。This official guide may suffice to get them working。
发布于 2015-04-18 09:02:30
我认为这是可以实现的,至少在某个时候是可以实现的。
您可以访问一个相当完整的Animations API。最后,再加上一些视图边界、距离和可能的设备方向计算,几乎可以用来模拟您提到的所有情况。
您可以创建加速/减速、形状更改...和几乎任何你想要的动画。
你如何实现你所要求的:
具有不同的动画,一个接一个,根据视图项状态动态地创建和应用它们。状态,我指的是“物理状态”:坠落,碰撞,与另一个视图接触,等等……
https://stackoverflow.com/questions/21608940
复制相似问题