#define APPLET
/*-------------------------------------
タイトル:勇者で行こう!Ω ver 0.02
制作:ハルーポッター
HomePage: http://www.ar.wakwak.com/~harupotter/
動作機種:imode503i,504iシリーズ、Javaアプレット
[コンパイル方法]
アプレットにする場合は、一番上の行を
#define APPLET
とする。
iアプリにする場合は、
//#define APPLET
とする。
そして、PPP(Pamuow Preprocessor)を使用する。DL先・・・http://www.and.or.jp/~pamulow/ppp/ppp.html
[使い方]
ppp 入力フォルダ 出力フォルダ
例:ppp . src
[アプレットの場合にHTMLファイルに記述するタグ]
ーーーーーー---------------------------*/
#ifdef APPLET
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
#else
import com.nttdocomo.ui.*;
#endif
//セルクラス
class Cell{
int gra;//グラフィックデータ
int event;//イベント
boolean move_flag;//通過可能フラグ
Cell(int a,int b,boolean c){
gra=a;event=b;move_flag=c;
}
}
#ifndef APPLET
//ポイントクラス
class Point{
int x,y;
Point(int a,int b){x=a;y=b;}
};
//本体
public class Rpg extends IApplication{
//アプリの開始
public void start() {
Display.setCurrent(new RpgCanvas());
}
}
#endif
#ifdef APPLET
public class Rpg extends Applet implements KeyListener{
#else
class RpgCanvas extends Canvas{
#endif
Graphics bufferg;
Image hero;//勇者画像
Image map_image;//マップ画像
#ifdef APPLET
Image buffer;//バッファ
AudioClip se[] = new AudioClip[5];//効果音
#endif
final int WIDTH=8;
final int HEIGHT=6;
final int WPIXEL=120;
final int HPIXEL=130;
Point map_start = new Point(0,0);//マップ開始座標
Point limit = new Point(0,0);//限界値
Cell celldata[] = {
new Cell(0,0,true),
new Cell(1,0,true),
new Cell(2,0,true),
new Cell(3,1,true),//ハウスワープ
new Cell(4,0,false),
new Cell(5,0,true),
new Cell(6,0,true),
new Cell(7,4,true),//洞窟
new Cell(8,0,false),
new Cell(10,0,false),
new Cell(9,0,true),
new Cell(1,2,true),//外ワープ
new Cell(11,3,true),//手紙
new Cell(12,0,true),//壁
new Cell(13,0,true),//地下
new Cell(14,11,true),//宝
new Cell(1,5,true),//洞窟から外へ
};
//マップデータ(10*10)
int mapdata[][] = {
{1,1,1,1,1, 1,1,2,4,4},
{1,1,1,1,2, 1,1,2,1,1},
{1,1,1,3,1, 1,1,2,1,1},
{1,1,1,1,1, 1,5,2,1,1},
{1,4,1,1,2, 4,1,2,1,1},
{1,1,7,1,1, 1,2,2,1,1},
{1,1,2,1,1, 1,8,8,1,1},
{1,1,1,1,1, 1,8,8,1,1},
{1,1,2,1,1, 1,2,2,1,1},
{1,1,2,1,1, 1,2,2,1,1},
};
//家マップデータ(7*6)
int housemapdata[][] = {
{ 9, 9, 9, 9, 9, 9, 9},
{ 9,10,10,12,10,10, 9},
{ 9,10,10,10,10,10, 9},
{ 9,10,10,10,10,10, 9},
{ 9,10,10,10,10,10, 9},
{ 9, 9,11,11,11, 9, 9},
};
int maze_mapdata[][]={
{0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x10,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x10,0x0a,0x0a,0x0e,0x0a,0x0a,0x0a,0x09,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x09,0x0e,0x0e,0x0a,0x0a,0x0a,0x0a,0x0a,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x0a,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x09,0x0a,0x0e,0x0a,0x09,0x0a,0x0a,0x0a,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x09,0x0a,0x0a,0x09,0x0a,0x09,0x0a,0x0a,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x0a,0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x09,0x0a,0x0a,0x09,0x0a,0x09,0x0a,0x0a,0x09,0x0d,0x0d,0x0d,0x0d,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x09,0x09,0x0a,0x0a,0x09,0x0a,0x0a,0x0a,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x09,0x0a,0x0a,0x0a,0x0e,0x0e,0x0e,0x0e,0x0e,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x09,0x0a,0x0e,0x0e,0x0e,0x0a,0x0e,0x0a,0x0e,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0e,0x0e,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0a,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x09,0x09,0x09,0x09,0x09,0x09,0x0a,0x0a,0x0f,0x09,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x0a,0x09,0x0a,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
};
int now_map,now_string;//現在マップ、現在文字列
Point My = new Point(-2,-2);//マップ開始座標
boolean PushFlag=false;//キーを押した状態であるか
//初期化
#ifdef APPLET
public void init(){
//ロード
hero=getImage(getDocumentBase(),"hero.gif");
map_image=getImage(getDocumentBase(),"map.gif");
se[0] = getAudioClip(getDocumentBase(),"se1.au");
se[1] = getAudioClip(getDocumentBase(),"se2.au");
addKeyListener(this);
requestFocus();//フォーカス取得
buffer = createImage(WPIXEL,HPIXEL);
#else
RpgCanvas(){
//ロード
try{
MediaImage m;
m=MediaManager.getImage("resource:///hero.gif");
m.use();
hero=m.getImage();
}catch(Exception e){e.printStackTrace();}
try{
MediaImage m;
m=MediaManager.getImage("resource:///map.gif");
m.use();
map_image=m.getImage();
}catch(Exception e){e.printStackTrace();}
#endif
now_map=0;
now_string=1;
}
//描画
public void paint(Graphics g){
int i,j;
int map;
String str,str2;
//描画領域のロック
#ifdef APPLET
if(bufferg==null){bufferg=buffer.getGraphics();}
#else
bufferg=g;
bufferg.lock();
#endif
//背景色の設定
#ifdef APPLET
bufferg.setColor(Color.black);
#else
bufferg.setColor(bufferg.getColorOfName(bufferg.BLACK));
#endif
bufferg.fillRect(0,0,WPIXEL,HPIXEL);
//背景(マップ)
int k,l;
switch(now_map){
case 0:limit.x=10;limit.y=10;break;
case 1:limit.x=7;limit.y=6;break;
case 2:limit.x=64;limit.y=32;break;
}
for(i=My.x,k=0;i=limit.x || j>=limit.y){map=12;}
else{
switch(now_map){
case 0:map=celldata[mapdata[j][i]].gra;break;
case 1:map=celldata[housemapdata[j][i]].gra;break;
case 2:map=celldata[maze_mapdata[j][i]].gra;break;
default:map=0;break;
}
}
#ifdef APPLET
bufferg.drawImage(map_image,k*16,l*16,(k+1)*16,(l+1)*16,
map*16,0,(map+1)*16,16,this);
#else
bufferg.drawImage(map_image,k*16,l*16,map*16,0,16,16);
#endif
}
}
//フォント色の設定
#ifdef APPLET
bufferg.setColor(Color.white);
#else
bufferg.setColor(bufferg.getColorOfName(bufferg.WHITE));
#endif
switch(now_string){
case 1:
str="十字キー:移動";
#ifdef APPLET
str2="Zキー:決定、調べる";
#else
str2="セレクトキー:決定、調べる";
#endif
break;
case 2:
str="手紙がある。▽";
str2="";
break;
case 3:
str="「果たし状。";
str2="明日19時、駅前にて。」";
break;
case 4:
str="洞窟のようだ。▽";
str2="";
break;
case 5:
str="勇気を出して、";
str2="ゴーゴー。";
break;
case 11:
str="宝だ。中に紙切れが。";
str2="『工事中』";
break;
default:str="";str2="";break;
}
bufferg.drawString(str,2,130-21);
bufferg.drawString(str2,2,130-7);
//主人公描画
#ifdef APPLET
bufferg.drawImage(hero,16*3,16*3,this);
#else
bufferg.drawImage(hero,16*3,16*3);
#endif
//一気に描画
#ifdef APPLET
g.drawImage(buffer,0,0,this);
#else
bufferg.unlock(true);
#endif
}
//キー入力
#ifdef APPLET
public void keyPressed(KeyEvent e){
if(PushFlag)return;//押し続けの状態は処理しない
#else
public void processEvent(int type,int param){
if(type!=Display.KEY_PRESSED_EVENT){return;}
#endif
int key;
#ifdef APPLET
key=e.getKeyCode();
#else
key=param;
#endif
switch(key){
//上ボタン
#ifdef APPLET
case KeyEvent.VK_UP:
#else
case Display.KEY_UP:
#endif
if(map_ismove(My.x+3,My.y+3-1)){My.y--;map_event(My.x+3,My.y+3);}
break;
//下ボタン
#ifdef APPLET
case KeyEvent.VK_DOWN:
#else
case Display.KEY_DOWN:
#endif
if(map_ismove(My.x+3,My.y+3+1)){My.y++;map_event(My.x+3,My.y+3);}
break;
#ifdef APPLET
case KeyEvent.VK_RIGHT:
#else
case Display.KEY_RIGHT:
#endif
if(map_ismove(My.x+3+1,My.y+3)){My.x++;map_event(My.x+3,My.y+3);}
break;
#ifdef APPLET
case KeyEvent.VK_LEFT:
#else
case Display.KEY_LEFT:
#endif
if(map_ismove(My.x+3-1,My.y+3)){My.x--;map_event(My.x+3,My.y+3);}
break;
#ifdef APPLET
case KeyEvent.VK_Z:
#else
case Display.KEY_SELECT:
#endif
map_search(My.x+3,My.y+3);//調べる
break;
}
#ifdef APPLET
PushFlag=true;
#endif
repaint();
}
//通過可能か
public boolean map_ismove(int x,int y){
int cell;
if(now_string>=2)return false;//会話中の時
//限界値
if(x == -1 || y == -1 || x == limit.x || y == limit.y)return false;
switch(now_map){
case 0:cell = mapdata[y][x];break;
case 1:cell = housemapdata[y][x];break;
case 2:cell = maze_mapdata[y][x];break;
default:cell=0;break;
}
if(celldata[cell].move_flag){return true;}
else{return false;}
}
//イベント発生
public void map_event(int x,int y){
int cell;
boolean move_flag=false;
switch(now_map){
case 0:cell = mapdata[y][x];break;
case 1:cell = housemapdata[y][x];break;
case 2:cell = maze_mapdata[y][x];break;
default:cell=0;break;
}
switch(celldata[cell].event){
case 0:break;
case 1:now_map=1;My.x=0;My.y=1;move_flag=true;break;//外からハウスへ移動
case 2:now_map=0;My.x=0;My.y=0;move_flag=true;break;//ハウスから外へ移動
case 5:now_map=0;My.x=2-3;My.y=5-3;move_flag=true;break;//ハウスから外へ移動
default:break;
}
#ifdef APPLET
if(move_flag){se[0].play();}
#endif
}
//調べる
public void map_search(int x,int y){
int cell;
boolean move_flag=false;
#ifdef APPLET
se[1].play();
#endif
//会話スキップ
switch(now_string){
case 0:case 1:break;
case 2:now_string=3;return;
case 3:now_string=0;return;
case 4:now_string=5;return;
case 5:
now_string=0;
now_map=2;My.x=1-3;My.y=1-3;move_flag=true;break;//外から洞窟へ移動
case 11:now_string=0;return;
}
#ifdef APPLET
if(move_flag){se[0].play();}
#endif
switch(now_map){
case 0:cell = mapdata[y][x];break;
case 1:cell = housemapdata[y][x];break;
case 2:cell = maze_mapdata[y][x];break;
default:cell=0;break;
}
switch(celldata[cell].event){
case 3:now_string=2;break;
case 4:now_string=4;break;
case 11:now_string=11;break;
default:now_string=0;break;
}
}
#ifdef APPLET
public void keyTyped(KeyEvent e){}//押した瞬間
public void keyReleased(KeyEvent e){PushFlag=false;}//放された瞬間
public void update(Graphics g){paint(g);}
#endif
}