I need an effect on android,please help

hello guys。
The previous project integrated jme3, how to achieve this design effect。
If the target is not met, the monthly performance will be deducted. Sorry, my skills are limited。

The cards are coherent, have a three-dimensional effect, and undergo a rectangular transformation around the intermediate image, and the admission card will have a gradient animation from small to large. Touch can rotate the card, click the card, it has a rebound effect, and it can stay on the designated card after sliding.

Android only, thanks! ! !

1 Like

你这个不使用复杂的物理计算的话 最好使用3D动画 在使用jme3 来控制3D 动画

还有你可以做一个六边形 围绕着中间的物体旋转 这也涉及到3d效果设计

There are multiple ways to do it, one way is to:

  1. Build a shape (Hexagon/Heptagon/Octagon) on blender and then select each face individually and press P this will ensure each face is a spatial on its own.
  2. Now import into jme and inside jme create Lemur window containers with the same size, scale and translation as the shape faces (also each face could be a reference for a node to add that lemur component to).
  3. To move the windows as sliders, you will need to implement a jme touch listener or android plain touch event:
public class SwayTouch implements TouchListener {
     @Override
     public void onTouch(String name, TouchEvent event, float tpf) {
             if (name.equals("SWAY_TOUCH")) {
                     // move lemur components here according to (x and y)
             }
     }
}
  1. Now add the touch listener to the input manager inside your simple app class (and AndroidTouchInput will take care of connecting your android touchEvents with jme inputManager):
...
public void simpleInit() {
    final SwayTouch touchListener = new SwayTouch();
    getInputManager().addListener(touchListener, "SWAY_TOUCH");
    ...
}

EDIT:
You will likely need to rotate the root node that holds the lemur components in place, you may need the animation system to interpolate while rotating (if you need smooth motion) otherwise you can do this manually in a base app state using Node#setLocalRotation(Quaternion);.