flagbot.java.svn-base
来自「一个JAVA程序员的游戏」· SVN-BASE 代码 · 共 142 行
SVN-BASE
142 行
/*
* FlagBot.java
*
* Created on 4. Januar 2007, 21:48
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package kanjitori.graphics.bot;
import com.jme.bounding.BoundingBox;
import com.jme.image.Texture;
import com.jme.math.Vector3f;
import com.jme.renderer.ColorRGBA;
import com.jme.scene.Controller;
import com.jme.scene.Node;
import com.jme.scene.shape.Box;
import com.jme.scene.state.AlphaState;
import com.jme.scene.state.CullState;
import com.jme.scene.state.MaterialState;
import com.jme.scene.state.RenderState;
import com.jme.scene.state.TextureState;
import com.jme.util.TextureManager;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
import kanjitori.graphics.shape.RoundedBox;
/**
*
* @author Pirx
*/
public class FlagBot extends AbstractBoxBot implements Bot {
private final static Image CORPUS_IMAGE = new ImageIcon("data/corpus.png").getImage();
//private final static Color DARK_COLOR = new Color(0.2f, 0.2f, 0.2f);
//private final static ColorRGBA MAT_COLOR = new ColorRGBA(1, 1, 1, 0);
//private MaterialState ms;
/** Creates a new instance of Bot */
public FlagBot(String value) {
super(value);
//node = new Node("bot");
//initBot();
}
/*private void initBot() {
Image img = getFlagImage("data/flags/" + value);
TextureState ts = display().getRenderer().createTextureState();
Texture t = TextureManager.loadTexture(img, Texture.MM_LINEAR, Texture.MM_LINEAR, ts.getMaxAnisotropic(), true);
//t.setWrap(Texture.WM_WRAP_S_WRAP_T);
//t.setScale(new Vector3f(1,-1,-1));
ts.setTexture(t);
RoundedBox box = new RoundedBox("bot",
new Vector3f(0.5f, 0.5f, 0.5f),
new Vector3f(0.05f, 0.05f, 0.05f),
new Vector3f(0.02f, 0.02f, 0.02f));
Box box = new Box("bot", new Vector3f(-0.5f, -0.5f, -0.5f), new Vector3f(0.5f, 0.5f, 0.5f));
ms = getMaterialState(MAT_COLOR);
box.setRenderState(ms);
box.setRenderState(ts);
CullState cs = display().getRenderer().createCullState();
cs.setEnabled(true);
cs.setCullMode(CullState.CS_BACK);
box.setRenderState(cs);
box.updateRenderState();
box.setModelBound(new BoundingBox());
box.updateModelBound();
node.attachChild(box);
}*/
Image getImage(String fileName) {
BufferedImage bi = new BufferedImage(256, 256,BufferedImage.TYPE_INT_RGB);
Graphics2D bg = (Graphics2D) bi.getGraphics();
bg.drawImage(CORPUS_IMAGE, 0, 0, null);
Image flag = new ImageIcon("data/flags/" + fileName).getImage();
//assumes that a flag is already scaled to width = 200, height <= 200
int x = 28;
int y = (256 - flag.getHeight(null)) / 2;
bg.drawImage(flag, x, y, null);
bg.dispose();
return bi;
}
/* public void die() {
Vector3f position = node.getLocalTranslation();
Node rootNode = node.getParent();
killSound();
FadeInOut f = new FadeInOut("bla", (Geometry) this.getNode().getChild(0) ,this.getNode(), null, ColorRGBA.white);
final FadeInOutController fioc = new FadeInOutController(f);
fioc.setRepeatType(Controller.RT_CLAMP);
fioc.setMinTime(0);
fioc.setMaxTime(2);
fioc.setSpeed(5000);
fioc.setActive(true);*/
/*final SpatialTransformer st = new SpatialTransformer(1);
st.setObject(node, 0, -1);
st.setRepeatType(Controller.RT_CLAMP);
node.addController(st);
st.setScale(0, 0, new Vector3f(1, 1, 1));
st.setScale(0, 0.33f, new Vector3f(0.8f, 0.2f, 0.8f));
st.setScale(0, 0.67f, new Vector3f(0.2f, 0.2f, 0.2f));
st.setScale(0, 1, new Vector3f(0, 0, 0));
st.setPosition(0, 0, node.getLocalTranslation());
st.setPosition(0, 1, new Vector3f(node.getLocalTranslation().x, -1, node.getLocalTranslation().z));
st.setNewAnimationTimes(0, 1);
st.setCurTime(0);
st.interpolateMissing();
node.getChild(0).setRenderState(getTransparence());
node.setRenderQueueMode(display().getRenderer().QUEUE_TRANSPARENT);
node.updateRenderState();
node.addController(new Controller() {
private float time = 0;
public void update(float f) {
time += f;
ms.getDiffuse().a = (2 - time) / 2;
if (time > 2) {
node.removeController(this);
//node.removeController(fioc);
remove();
cleanTexture(node);
}
}
});
}*/
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?