// ======================================================================= // 箱入り娘 Applet ver 1.60 // (c) BakuretuKen 1995-2002 // http://hp.vector.co.jp/authors/VA006860/ // ======================================================================= import java.applet.Applet; import java.awt.*; import java.io.*; import java.net.*; import java.util.StringTokenizer; public class HakoApplet extends Applet implements Runnable { Image images[]; MediaTracker mt; Thread thread; int i, last; int x[], y[]; int sx[], sy[]; int imgno[]; int field[]; int no = 0, oldx, oldy; boolean iswin = false; String jumpUrl; public void init() { int level; String s; field = new int[120]; images = new Image[14]; String imagedir = null; s = getParameter("imagedir"); if (s != null) imagedir = s; s = getParameter("level"); level = Integer.parseInt(s); s = getParameter("jump"); if (s != null) jumpUrl=s; else jumpUrl=null; x = new int [12]; y = new int [12]; sx = new int [12]; sy = new int [12]; imgno = new int [12]; mt = new MediaTracker(this); // System.out.println("No = "+ level ); switch ( level ) { case 1: level1(); break; case 2: level2(); break; case 3: level3(); break; case 4: level4(); break; case 5: level5(); break; default: level1(); break; } for ( i=0; i<14; i++) { images[i] = getImage(getDocumentBase(),imagedir + "/koma"+i+".gif"); mt.addImage( images[i], 0); } // フィールド制作 for ( i=0; i<120; i++) field[i] = 0; for ( i=0; i<10; i++) field[ i ] = 99; for ( i=0; i<10; i++) field[ i+110 ] = 99; for ( i=0; i<12; i++) field[ 10*i] = 99; for ( i=0; i<12; i++) field[ 9+10*i] = 99; init_field(); // フィールドこま制作 } // init() // 作画 PAINT() public void paint(Graphics g) { int j; setBackground( Color.white ) ; // エラー表示 if (mt.isErrorID(0)) { g.setColor(Color.red); g.fillRect(0, 0, size().width, size().height); g.setColor(Color.yellow); g.drawString("Error", 20, 60); return; } if (mt.checkID(0)) { if (thread != null) { thread.stop(); thread = null; } g.setColor( Color.black ); g.fillRect( 32, 32, 8*32, 10*32 ); g.setColor( Color.white ); g.fillRect( 4*32, 11*32, 4*32, 32 ); // 周り作画 for ( i=0; i<10; i++) g.drawImage( images[0], i*32, 0, this); for ( i=0; i<3; i++) g.drawImage( images[0], i*32, 11*32, this); for ( i=7; i<10; i++) g.drawImage( images[0], i*32, 11*32, this); for ( i=0; i<12; i++) g.drawImage( images[0], 0, i*32, this); for ( i=0; i<12; i++) g.drawImage( images[0], 9*32, i*32, this); // ゴール作画 g.drawImage( images[13], 3*32, 11*32, this); // こま作画 for ( i=1; i 20 ) DownKoma( x, y ); if ( oldy-y > 20 ) UpKoma( x , y ); if ( x-oldx > 20 ) RightKoma( x , y ); if ( oldx-x > 20 ) LeftKoma( x , y ); } return true; } // mouseDrag() public boolean mouseUp(Event e, int x, int y) { no = 0; // マウスカーソル変更 setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); return true; } // mouseUp() public void DownKoma(int xx, int yy) { int s = 0; for ( i=0; i