com.jme3.scene.Spatial.move()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(10.3k)|赞(0)|评价(0)|浏览(88)

本文整理了Java中com.jme3.scene.Spatial.move()方法的一些代码示例,展示了Spatial.move()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Spatial.move()方法的具体详情如下:
包路径:com.jme3.scene.Spatial
类名称:Spatial
方法名:move

Spatial.move介绍

[英]Translates the spatial by the given translation vector.
[中]按给定的平移向量平移空间。

代码示例

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

public void putGrid(Vector3f pos, ColorRGBA color){
  putShape(new Grid(6, 6, 0.2f), color, 1).center().move(pos);
}

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

if (name.equals("up")) {
  tmp.set(cam.getUp()).multLocal(value);
  s.move(tmp);
  s.move(tmp);
  s.move(tmp);
  s.move(tmp);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

s.move(offset);
assets.add(s);
if (playAnim) {

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

if (name.equals("up")) {
  tmp.set(cam.getUp()).multLocal(value);
  s.move(tmp);
  s.move(tmp);
  s.move(tmp);
  s.move(tmp);

代码示例来源:origin: jMonkeyEngine/jmonkeyengine

@Override
  public void simpleInitApp() {
    cam.setLocation(new Vector3f(10f, 3f, 40f));
    cam.lookAtDirection(Vector3f.UNIT_Z.negate(), Vector3f.UNIT_Y);

    DirectionalLight dl = new DirectionalLight();
    dl.setDirection(new Vector3f(-0.1f, -0.7f, -1).normalizeLocal());
    dl.setColor(new ColorRGBA(1f, 1f, 1f, 1.0f));
    rootNode.addLight(dl);

    AnimComposer composer;

    Spatial originalModel = assetManager.loadModel("Models/Oto/Oto.mesh.xml");
    composer = originalModel.getControl(AnimComposer.class);
    composer.setCurrentAction("Walk");
    rootNode.attachChild(originalModel);
    
    Spatial clonedModel = originalModel.clone();
    clonedModel.move(10, 0, 0);
    composer = clonedModel.getControl(AnimComposer.class);
    composer.setCurrentAction("push");
    rootNode.attachChild(clonedModel);
    
    Spatial exportedModel = BinaryExporter.saveAndLoad(assetManager, originalModel);
    exportedModel.move(20, 0, 0);
    composer = exportedModel.getControl(AnimComposer.class);
    composer.setCurrentAction("pull");
    rootNode.attachChild(exportedModel);
  }
}

代码示例来源:origin: tonihele/OpenKeeper

/**
 * Resets (scale & translation) and moves the spatial to the point. The
 * point is relative to the start point
 *
 * @param tile the tile, Spatial
 * @param start start point
 */
protected void moveSpatial(Spatial tile, Point start) {
  // Reset, really, the size is 1 after this...
  //resetSpatial(tile);
  tile.move(start.x, 0, start.y);
}

代码示例来源:origin: tonihele/OpenKeeper

/**
 * Resets (scale & translation) and moves the spatial to the point. The
 * point is relative to the start point
 *
 * @param tile the tile, spatial
 * @param start start point
 * @param p the tile point
 */
protected void moveSpatial(Spatial tile, Point start, Point p) {
  // Reset, really, the size is 1 after this...
  //resetSpatial(tile);
  tile.move(p.x - start.x, 0, p.y - start.y);
}

代码示例来源:origin: tonihele/OpenKeeper

/**
 * Adds two candles to the tile, one to each side
 *
 * @param n node to attach to
 * @param assetManager the asset manager instance
 * @param start starting point for the room
 * @param p this tile coordinate
 */
private void addCandles(Node n, AssetManager assetManager, Point start, Point p) {
  // The "candles"
  n.attachChild(loadObject(OBJECT_CHAIN_ID, assetManager, start, p, true).move(-1f, 0, 0));
  float yAngle = -FastMath.PI;
  n.attachChild(loadObject(OBJECT_CHAIN_ID, assetManager, start, p, true)
      .rotate(0, yAngle, 0).move(1f, 0, 1f));
}

代码示例来源:origin: tonihele/OpenKeeper

/**
 * Add an object, does not add the object to the object registry
 *
 * @param p the point to add
 * @param spell the spell
 * @param playerId the player id, the owner
 * @return the object contol
 */
public SpellBookObjectControl addRoomSpellBook(Point p, PlayerSpell spell, short playerId) {
  // FIXME: The object ID
  Spatial object = objectLoader.load(assetManager, p, spell, 0, 0,
      ObjectLoader.OBJECT_SPELL_BOOK_ID, playerId, 0);
  object.move(0, MapLoader.FLOOR_HEIGHT, 0);
  SpellBookObjectControl control = object.getControl(SpellBookObjectControl.class);
  nodeObjects.attachChild(object);
  return control;
}

代码示例来源:origin: tonihele/OpenKeeper

@Override
protected void controlUpdate(float tpf) {
  Vector3f pos = spatial.getLocalTranslation();
  // FIXME set real height by BoundingBox height
  if (pos.y > MapLoader.FLOOR_HEIGHT + 0.3f) {
    spatial.move(0, -tpf * GRAVITY, 0);
  } else {
    enabled = false;
    spatial.setLocalTranslation(pos.x, MapLoader.FLOOR_HEIGHT + 0.3f, pos.z);
    spatial.removeControl(this);
    onLanded();
  }
}

代码示例来源:origin: tonihele/OpenKeeper

@Override
public Spatial load(AssetManager assetManager, Shot object) {
  //Create a root
  Node root = new Node(object.getName());
  List<ArtResource> resources = new ArrayList<>();
  resources.add(object.getMeshResource());
  float height = 1;
  for (ArtResource resource : resources) {
    if (resource == null || resource.getType() == ArtResource.ArtResourceType.NONE) {
      continue;
    }
    Spatial s = UniversalArtResourceLoader.load(assetManager, resource);
    s.move(0, height++, 0);
    root.attachChild(s);
  }
  return root;
}

代码示例来源:origin: tonihele/OpenKeeper

@Override
public Spatial load(AssetManager assetManager, Room object) {
  //Create a root
  Node root = new Node(object.getName());
  List<ArtResource> resources = new ArrayList<>();
  resources.add(object.getCapResource());
  resources.add(object.getCeilingResource());
  resources.add(object.getCompleteResource());
  //resources.add(object.getEditorIcon());
  //resources.add(object.getGuiIcon());
  resources.add(object.getInsideCornerResource());
  resources.add(object.getOutsideCornerResource());
  resources.add(object.getStraightResource());
  resources.add(object.getTorch());
  resources.add(object.getUnknownResource());
  resources.add(object.getWallResource());
  float height = 1;
  for (ArtResource resource : resources) {
    if (resource == null || resource.getType() == ArtResource.ArtResourceType.NONE) {
      continue;
    }
    Spatial s = UniversalArtResourceLoader.load(assetManager, resource);
    s.move(0, height++, 0);
    root.attachChild(s);
  }
  return root;
}

代码示例来源:origin: tonihele/OpenKeeper

@Override
public Spatial load(AssetManager assetManager, Trap object) {
  //Create a root
  Node root = new Node(object.getName());
  List<ArtResource> resources = new ArrayList<>();
  resources.add(object.getMeshResource());
  resources.add(object.getFireResource());
  //resources.add(object.getFlowerIcon());
  //resources.add(object.getGuiIcon());
  //resources.add(object.getEditorIcon());
  float height = 1;
  for (ArtResource resource : resources) {
    if (resource == null || resource.getType() == ArtResource.ArtResourceType.NONE) {
      continue;
    }
    Spatial s = UniversalArtResourceLoader.load(assetManager, resource);
    s.move(0, height++, 0);
    root.attachChild(s);
  }
  return root;
}

代码示例来源:origin: tonihele/OpenKeeper

@Override
public Spatial load(AssetManager assetManager, Door object) {
  //Create a root
  Node root = new Node(object.getName());
  List<ArtResource> resources = new ArrayList<>();
  resources.add(object.getMesh());
  resources.add(object.getOpenResource());
  resources.add(object.getCloseResource());
  //resources.add(object.getFlowerIcon());
  //resources.add(object.getGuiIcon());
  //resources.add(object.getEditorIcon());
  float height = 1;
  for (ArtResource resource : resources) {
    if (resource == null || resource.getType() == ArtResource.ArtResourceType.NONE) {
      continue;
    }
    Spatial s = UniversalArtResourceLoader.load(assetManager, resource);
    s.move(0, height, 0);
    root.attachChild(s);
    height += 2;
  }
  return root;
}

代码示例来源:origin: tonihele/OpenKeeper

private Spatial createFlame() {
  Spatial result = ((DesktopAssetManager) assetManager).getFromCache(ASSET_KEY);
  if (result == null) {
    try {
      material = createMaterial();
      material.setTexture("DiffuseMap", createTexture());
      result = new Geometry("torch flame", createMesh(0.5f, 0.5f));
      result.setMaterial(material);
      result.setQueueBucket(RenderQueue.Bucket.Translucent);
      result.move(0.14f, 0.2f, 0);
    } catch (Exception e) {
      log.log(Level.WARNING, "Can't create torch flame", e);
    }
    ((DesktopAssetManager) assetManager).addToCache(ASSET_KEY, result);
  }
  if (result != null) {
    return result.clone();
  }
  return null;
}

代码示例来源:origin: tonihele/OpenKeeper

public static void attachWireFrameDebugGrid(AssetManager assetManager, Node n, Vector3f pos,
      Integer size, ColorRGBA color) {
    Geometry g = new Geometry("wireFrameDebugGrid", new Grid(size, size, 1.0f));  //1WU
    Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
    mat.getAdditionalRenderState().setWireframe(true);
    mat.setColor("Color", color);
    g.setMaterial(mat);
    g.center().move(pos);
    n.attachChild(g);
  }
}

代码示例来源:origin: jMonkeyEngine-Contributions/Lemur

public void show() {
  float zOffset = getMinZ(popup.getWorldBound());
          
  getGuiNode().attachChild(blocker);                        
  getGuiNode().attachChild(popup);
  
  // Make sure the popup spatial is above the blocker
  popup.move(0, 0, zBase - zOffset + 1);
  
  if( popup instanceof Panel ) {
    // Play any open effects that it has
    ((Panel)popup).runEffect("open");  // should really be a constant
  }
  
  // Request access to the cursor
  GuiGlobals.getInstance().requestCursorEnabled(this);
}

代码示例来源:origin: net.sf.phat/phat-core

private static void attachGrid(Vector3f pos, float size, ColorRGBA color,
      AssetManager assetManager, Node rootNode) {
    Geometry g = new Geometry("wireframe grid", new Grid((int) size, (int) size, 1f));
    Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md");
    mat.getAdditionalRenderState().setWireframe(true);
    mat.setColor("Color", color);
    g.setMaterial(mat);
    g.center().move(pos);
    rootNode.attachChild(g);
  }
}

代码示例来源:origin: tonihele/OpenKeeper

@Override
protected void controlUpdate(float tpf) {
  // TODO add normal physics control
  if (tick > 11) {
    plugDecay.removeFromParent();
    spatial.removeControl(this);
  } else if (tick > 9) {
    velocity -= GRAVITY * tpf;
    for (Spatial piece : plugDecay.getChildren()) {
      float rotate = (float) piece.getUserData("rotate") * 10 * tpf;
      float pv = (float) piece.getUserData("velocity") - GRAVITY * tpf;
      piece.setUserData("velocity", pv);
      piece.move(0, pv * tpf, 0);
      //float step = (float) piece.getUserData("yAngle");
      //piece.move(tpf * FastMath.cos(step), velocity * tpf, tpf * FastMath.sin(step));
      piece.rotate(rotate, rotate, rotate);
    }
  } else if (tick > 6) {
    plug.removeFromParent();
    plugDecay.setCullHint(Spatial.CullHint.Inherit);
  }
  tick += tpf;
}

代码示例来源:origin: tonihele/OpenKeeper

/**
 * Current animation has stopped
 */
@Override
public void onAnimationStop() {
  animationPlaying = false;
  // If steering is set, enable it
  if (steeringBehavior != null && !steeringBehavior.isEnabled()) {
    steeringBehavior.setEnabled(true);
  }
  if (stateMachine.getCurrentState() == CreatureState.ENTERING_DUNGEON) {
    Vector3f offset = ConversionUtils.convertVector(creature.getAnimationOffsets(Creature.OffsetType.PORTAL_ENTRANCE));
    spatial.move(offset);
    stateMachine.changeState(CreatureState.IDLE);
  } else if (stateMachine.getCurrentState() == CreatureState.SLAPPED) {
    playAnimation(creature.getAnimation(Creature.AnimationType.GET_UP));
    playingAnimationType = AnimationType.OTHER;
    // Return to previous state
    stateMachine.revertToPreviousState();
  } else if (playingAnimationType == AnimationType.DYING) {
    // TODO: should show the pose for awhile I guess
    if (stateMachine.getCurrentState() == CreatureState.DEAD) {
      removeCreature();
    }
  } else {
    playStateAnimation();
  }
}

相关文章

Spatial类方法