ホームに戻る
サンプル1:サイコロを回す
図09_00:マウスボタン押しで回り、離すと止まる2つのサイコロ
/*
* JAVA3D でサイコロを回すアプレット
*/
import java.applet.Applet;
import java.awt.*;
import java.awt.image.*;
import java.awt.event.*;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.util.Random;
import javax.media.j3d.*;
import javax.vecmath.*;
import com.sun.j3d.utils.universe.*;
import com.sun.j3d.utils.image.TextureLoader;
/* <applet code="sai_applet" width=300 height=300></applet> */
public class sai_applet extends Applet implements Runnable{
private SimpleUniverse universe = null;
private Canvas3D canvas3d = null;
private boolean mLoop = false;
private Thread mThread = null;
private boolean mInited = false;
private long mCycle = 2000;
private long mTick = 0;
private long mTimeOld;
private float mFInterval = 1.0f / 2000.0f;
private Sai[] sai;
public class Sai_bmp{
private int bmp_01[] = {
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000
};
private int bmp_02[] = {
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000
};
private int bmp_03[] = {
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000
};
private int bmp_04[] = {
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000
};
private int bmp_05[] = {
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000
};
private int bmp_06[] = {
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFF0000,0xFFFF0000,0xFFFF0000,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFF000000,0xFF000000,
0xFF000000,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFF000000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFF0000
};
public int[] getBmp(int num){
switch (num){
case 0:
return bmp_01;
case 1:
return bmp_02;
case 2:
return bmp_03;
case 3:
return bmp_04;
case 4:
return bmp_05;
case 5:
return bmp_06;
}
return bmp_01;
}
public int getSize(){
return (16 * 16);
}
}
public class Sai_men extends Shape3D{
private QuadArray geometry = null;
Point3d[][] verteces = {
{
new Point3d(-0.5, -0.5, 0.5),
new Point3d(0.5, -0.5, 0.5),
new Point3d(0.5, 0.5, 0.5),
new Point3d(-0.5, 0.5, 0.5)
},
{
new Point3d(0.5, -0.5, 0.5),
new Point3d(0.5, -0.5, -0.5),
new Point3d(0.5, 0.5, -0.5),
new Point3d(0.5, 0.5, 0.5)
},
{
new Point3d(-0.5, 0.5, 0.5),
new Point3d(0.5, 0.5, 0.5),
new Point3d(0.5, 0.5, -0.5),
new Point3d(-0.5, 0.5, -0.5)
},
{
new Point3d(-0.5, -0.5, -0.5),
new Point3d(0.5, -0.5, -0.5),
new Point3d(0.5, -0.5, 0.5),
new Point3d(-0.5, -0.5, 0.5)
},
{
new Point3d(-0.5, -0.5, -0.5),
new Point3d(-0.5, -0.5, 0.5),
new Point3d(-0.5, 0.5, 0.5),
new Point3d(-0.5, 0.5, -0.5)
},
{
new Point3d(0.5, -0.5, -0.5),
new Point3d(-0.5, -0.5, -0.5),
new Point3d(-0.5, 0.5, -0.5),
new Point3d(0.5, 0.5, -0.5)
}
};
Vector3f[] normal = {
new Vector3f(0.0f, 0.0f, -1.0f),
new Vector3f(-1.0f, 0.0f, 0.0f),
new Vector3f(0.0f, -1.0f, 0.0f),
new Vector3f(0.0f, 1.0f, 0.0f),
new Vector3f(1.0f, 0.0f, 0.0f),
new Vector3f(0.0f, 0.0f, 1.0f)
};
public Sai_men(int num){
int i;
TexCoord2f[] texcoords = new TexCoord2f[4];
texcoords[0] = new TexCoord2f(0.0f, 0.0f);
texcoords[1] = new TexCoord2f(0.93f, 0.0f);
texcoords[2] = new TexCoord2f(0.93f, 0.93f);
texcoords[3] = new TexCoord2f(0.0f, 0.93f);
BufferedImage bimage = new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB);
int[] tex_image = ((DataBufferInt)bimage.getRaster().getDataBuffer()).getData();
int[] bitmap = (new Sai_bmp()).getBmp(num);
for(i = 0; i < 16 * 16; i++){
tex_image[i] = bitmap[i];
}
ImageComponent2D icomponent2d = new ImageComponent2D(ImageComponent.FORMAT_RGBA, bimage);
Texture2D tex2d = new Texture2D(Texture.BASE_LEVEL, Texture.RGBA, 16, 16);
tex2d.setImage(0, icomponent2d);
Appearance app = new Appearance();
Material mat = new Material();
mat.setDiffuseColor(0.2f, 0.2f, 0.2f);
mat.setAmbientColor(0.2f, 0.2f, 0.2f);
app.setMaterial(mat);
app.setTexture(tex2d);
app.setTransparencyAttributes(new TransparencyAttributes(TransparencyAttributes.BLENDED, 0.0f));
geometry = new QuadArray(verteces[num].length, GeometryArray.COORDINATES | GeometryArray.TEXTURE_COORDINATE_2 | GeometryArray.NORMALS);
geometry.setCoordinates(0, verteces[num]);
geometry.setTextureCoordinates(0, 0, texcoords);
Vector3f[] normals = {normal[num], normal[num], normal[num], normal[num]};
geometry.setNormals(0, normals);
this.setAppearance(app);
this.setGeometry(geometry);
}
}
public class Sai{
private int me = 0;
private boolean move_flag = false;
private Sai_men[] men;
public Sai(){
int i;
men = new Sai_men[6];
for(i = 0; i < 6; i++){
men[i] = new Sai_men(i);
}
}
public void throw_sai(){
Random rand = new Random();
me = rand.nextInt(6);
move_flag = true;
}
public void stop_sai(){
move_flag = false;
}
public boolean is_move(){
return move_flag;
}
public int get_me(){
return me;
}
public void draw(GraphicsContext3D gc){
gc.draw(men[0]);
gc.draw(men[1]);
gc.draw(men[2]);
gc.draw(men[3]);
gc.draw(men[4]);
gc.draw(men[5]);
}
}
public void init() {
int i;
GraphicsConfiguration config = SimpleUniverse.getPreferredConfiguration();
canvas3d = new Canvas3D(config);
this.setLayout(new BorderLayout());
this.add(canvas3d, BorderLayout.CENTER);
canvas3d.stopRenderer();
canvas3d.setDoubleBufferEnable(true);
sai = new Sai[2];
sai[0] = new Sai();
sai[1] = new Sai();
Transform3D pers = new Transform3D();
Transform3D lookat = new Transform3D();
universe = new SimpleUniverse(canvas3d);
lookat.set(Transform3D.ZERO);
pers.set(Transform3D.ZERO);
Point3d eye = new Point3d(0.0, 0.5, 2.0);
Point3d center = new Point3d(0.0, 0.0, 0.0);
Vector3d upvector = new Vector3d(0.0, 1.0, 0.0);
lookat.lookAt(eye, center, upvector);
pers.perspective(Math.toRadians(60.0), 1.0, 0.1, 10.0);
canvas3d.getView().setWindowEyepointPolicy(View.RELATIVE_TO_COEXISTENCE);
canvas3d.getView().setProjectionPolicy(View.PERSPECTIVE_PROJECTION);
canvas3d.getView().setCompatibilityModeEnable(true);
canvas3d.getView().setVpcToEc(lookat);
canvas3d.setMonoscopicViewPolicy(View.LEFT_EYE_VIEW);
canvas3d.getView().setLeftProjection(pers);
canvas3d.getView().setScreenScalePolicy(View.SCALE_SCREEN_SIZE);
mTimeOld = System.currentTimeMillis();
mInited = true;
mouse_class mouse = new mouse_class();
canvas3d.addMouseListener(mouse);
}
public void render(){
int i;
GraphicsContext3D gc;
gc = canvas3d.getGraphicsContext3D();
gc.clear();
Background background = new Background(new Color3f(0.0f, 0.0f, 1.0f));
gc.setBackground(background);
DirectionalLight d_light = new DirectionalLight(true, new Color3f(1.0f, 1.0f, 1.0f), new Vector3f(-2.0f, 2.0f, 5.0f));
AmbientLight a_light = new AmbientLight(new Color3f(1.0f, 1.0f, 1.0f));
Point3d point = new Point3d(0.0d, 0.0d, 0.0d);
BoundingSphere bounds = new BoundingSphere(point, 10.0d);
a_light.setInfluencingBounds(bounds);
d_light.setInfluencingBounds(bounds);
gc.addLight(a_light);
gc.addLight(d_light);
Transform3D t3d1 = new Transform3D();
Transform3D t3d2 = new Transform3D();
Transform3D t3d3 = new Transform3D();
Transform3D t3d4 = new Transform3D();
Transform3D t3d5 = new Transform3D();
double angle;
angle = (float)mTick * mFInterval;
angle *= Math.PI;
for(i = 0; i < 2; i++){
t3d1.set(Transform3D.ZERO);
if(i == 0){
t3d1.setTranslation(new Vector3f(-0.4f, 0.0f, 0.0f));
}
else{
t3d1.setTranslation(new Vector3f(0.4f, 0.0f, 0.0f));
}
switch(sai[i].get_me()){
case 0:
break;
case 1:
t3d2.rotX(Math.PI / 2);
break;
case 2:
t3d2.rotX(-Math.PI / 2);
break;
case 3:
t3d2.rotY(Math.PI / 2);
break;
case 4:
t3d2.rotY(-Math.PI / 2);
break;
case 5:
t3d2.rotX(Math.PI);
break;
}
t3d1.mul(t3d2);
if(sai[i].is_move()){
t3d3.rotX(angle * 20);
t3d4.rotY(angle * 25);
t3d1.mul(t3d3);
t3d1.mul(t3d4);
}
t3d5.setScale(new Vector3d(0.5d, 0.5d, 0.5d));
t3d1.mul(t3d5);
gc.setModelTransform(t3d1);
sai[i].draw(gc);
// Shape3D に setAppearance せず gc.setAppearance に分けるべきであった
}
canvas3d.swap();
}
public void start(){
mLoop = true;
if(mThread == null){
mThread = new Thread(this);
mThread.start();
}
else{
if(!mThread.isAlive()){
mThread = new Thread(this);
mThread.start();
}
}
}
public void run(){
long current,elapsed;
while(mLoop){
current = System.currentTimeMillis();
elapsed = current - mTimeOld;
if(elapsed > 15){
mTimeOld = current;
mTick += elapsed;
mTick %= mCycle;
if(mInited){
render();
}
}
mThread.yield();
}
}
public void stop(){
mLoop = false;
}
public void destroy(){
universe.cleanup();
}
class mouse_class implements MouseListener{
public void mouseClicked(MouseEvent mouseevent){}
public void mouseEntered(MouseEvent mouseevent){}
public void mouseExited(MouseEvent mouseevent){}
public void mousePressed(MouseEvent mouseevent){
sai[0].throw_sai();
sai[1].throw_sai();
}
public void mouseReleased(MouseEvent mouseevent){
sai[0].stop_sai();
sai[1].stop_sai();
}
}
}