itemcontroller.java.svn-base
来自「一个JAVA程序员的游戏」· SVN-BASE 代码 · 共 72 行
SVN-BASE
72 行
/*
* ItemController.java
*
* Created on 26. Dezember 2006, 16:40
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package kanjitori.graphics.item;
import com.jme.animation.SpatialTransformer;
import com.jme.math.FastMath;
import com.jme.math.Quaternion;
import com.jme.math.Vector3f;
import com.jme.scene.Controller;
import java.awt.Point;
import kanjitori.map.Content;
import kanjitori.graphics.item.Item;
import kanjitori.map.Map;
/**
*
* @author Pirx
*/
public class ItemController extends Controller {
private Item item;
private Point pos;
private Map levelMap;
/** Creates a new instance of ItemController */
public ItemController(Item item, Map levelMap) {
this.item = item;
this.levelMap = levelMap;
pos = levelMap.findFreePos();
item.getNode().setLocalTranslation(new Vector3f(2 * pos.x, -0, 2 * pos.y));
levelMap.setContent(pos.x, pos.y, Content.ITEM);
SpatialTransformer st = new SpatialTransformer(1);
st.setObject(item.getNode(), 0, -1);
st.setRepeatType(Controller.RT_WRAP);
item.getNode().addController(st);
st.setPosition(0, 0f, new Vector3f(2 * pos.x, -0.3f, 2 * pos.y));
st.setPosition(0, 2f, new Vector3f(2 * pos.x, -0.1f, 2 * pos.y));
st.setPosition(0, 4f, new Vector3f(2 * pos.x, -0.3f, 2 * pos.y));
Vector3f up = new Vector3f(0,1,0);
Quaternion x0=new Quaternion();
x0.fromAngleAxis(0, up);
st.setRotation(0, 0f, x0);
Quaternion x180=new Quaternion();
x180.fromAngleAxis(FastMath.PI, up);
st.setRotation(0, 2f, x180);
Quaternion x360=new Quaternion();
x360.fromAngleAxis(2*FastMath.PI, up);
st.setRotation(0, 4f,x360);
st.setNewAnimationTimes(0, 4);
st.setCurTime(0);
st.interpolateMissing();
}
public void update(float f) {
if (item.checkPlayerCollision()) {
levelMap.setContent(pos.x, pos.y, Content.EMPTY);
item.consume();
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?