?? mousepickcontroller.java
字號:
package jmetest.monkeymahjongg.game;
import com.jme.input.MouseInput;
import com.jme.input.controls.GameControl;
import com.jme.input.controls.binding.MouseButtonBinding;
import com.jme.intersection.BoundingPickResults;
import com.jme.intersection.PickResults;
import com.jme.math.Ray;
import com.jme.math.Vector2f;
import com.jme.math.Vector3f;
import com.jme.scene.Geometry;
import com.jme.system.DisplaySystem;
/**
*
* @author Pirx
*/
public class MousePickController extends MahjonggGameController {
private final GameControl pick;
private final PickResults pr;
private boolean released = true;
public MousePickController(MahjonggGameState mahjonggGameState) {
super(mahjonggGameState);
pick = mahjonggGameState.getGameControlManager().addControl("pick");
pick.addBinding(new MouseButtonBinding(0));
pr = new BoundingPickResults();
pr.setCheckDistance(true);
}
public void update(float time) {
released = (pick.getValue() == 0) ? true : released;
if (released && pick.getValue() > 0) {
released = false;
final MouseInput mouseInput = MouseInput.get();
final Vector2f screenPos = new Vector2f(mouseInput.getXAbsolute(),
mouseInput.getYAbsolute());
final Vector3f worldCoords0 = DisplaySystem.getDisplaySystem().getWorldCoordinates(screenPos, 0);
final Vector3f worldCoords1 = DisplaySystem.getDisplaySystem().getWorldCoordinates(screenPos, 1);
final Ray mouseRay = new Ray(worldCoords0, worldCoords1.subtractLocal(worldCoords0).normalizeLocal());
pr.clear();
mahjonggGameState.getRootNode().findPick(mouseRay, pr);
if (pr.getNumber() > 0) {
final Geometry tile = pr.getPickData(0).getTargetMesh();
mahjonggGameState.getLevel().picked(tile);
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -