#define APPLET /*------------------------------------- タイトル:勇者で行こう!Ω ver 0.09 制作:ハルーポッター HomePage: http://www.ar.wakwak.com/~harupotter/ 動作機種:imode504iシリーズ、Javaアプレット [コンパイル方法] アプレットにする場合は、一番上の行を #define APPLET とする。 iアプリにする場合は、 //#define APPLET とする。 そして、PPP(Pamuow Preprocessor)を使用する。DL先・・・http://www.and.or.jp/~pamulow/ppp/ppp.html [使い方] ppp 入力フォルダ 出力フォルダ 例:ppp . src [アプレットの場合にHTMLファイルに記述するタグ] ーーーーーー---------------------------*/ import java.util.Random; #ifdef APPLET import java.awt.*; import java.awt.event.*; import java.applet.*; #else import com.nttdocomo.ui.*; #endif #ifndef APPLET //ポイントクラス class Point{ int x,y; Point(int a,int b){x=a;y=b;} }; //本体 public class Rpg extends IApplication{ //アプリの開始 public void start() { RpgCanvas r=new RpgCanvas(); Display.setCurrent(r); r.exe(); } } class RpgCanvas extends Canvas{ #else public class Rpg extends Applet implements KeyListener,Runnable{ private volatile Thread blinker; Image buffer;//バッファ AudioClip se[] = new AudioClip[5];//効果音 MediaTracker tracker = new MediaTracker(this);//メディアトラッカー #endif //--------定数------- final int WIDTH=9;//横幅に入るパーツ数 final int HEIGHT=6;//縦幅に入るパーツ数 final int WPIXEL=120;//横幅(ピクセル) final int HPIXEL=130;//縦幅(ピクセル) final int MAPNUM=14;//マップパーツの数 final int CHARANUM=12;//キャラクターの数 final int BCHARANUM=15;//バトルキャラの数 final int CHARAIMAGENUM=5;//キャラクター画像の数 final int BCHARAIMAGENUM=14;//バトルキャラクター画像の数 final int INIT_X=3,INIT_Y=2;//左上から数えた勇者の位置 final int PARTS_SIZE=16;//パーツの一辺あたりのサイズ(ピクセル) final int UP=0,DOWN=1,LEFT=2,RIGHT=3,KEY1=4,KEY2=5;//キー列挙 final char table[]={'C','G','A','D','H','B','E','J','F','I'};//パスワード用テーブル //--------変数(値は不変)------------- Image map_images[] = new Image[MAPNUM];//マップパーツ画像 Image chara_images[] = new Image[CHARAIMAGENUM];//キャラクター画像 Image bchara_images[] = new Image[BCHARAIMAGENUM];//バトルキャラ画像 Graphics g; Image hero[]=new Image[4];//勇者画像(上下左右) long FrameTime=0; long waitTime;//フレーム更新時間取得用 //--------変数------------ int move_dir;//向いている方向(UP,DOWN,LEFT,RIGHT) int battle_probability=15;//敵に遭遇する確率 int TalkPos;//会話点 int now_screen=0;//画面 int now_point=0;//現在の添え字 int now_select=0;//選択中のもの int now_map,now_event=0,now_string,now_chara;//現在マップ、現在文字列、現在話中キャラ int now_talk_index;//話中のキャラクター添字 Point map_start = new Point(0,0);//マップ開始座標 Point limit = new Point(0,0);//限界値 Point mapfew = new Point(0,0);//アニメ中のマップずれ Point My = new Point(0,0);//マップ開始座標 //バッファ char cbuffer[]=new char[64]; String sbuffer=""; //フラグ boolean sound_flag=true;//サウンドを鳴らすか boolean event_flags[] = new boolean[10];//イベントフラグ boolean anime_font=false;//会話のアニメーションフラグ boolean anime_fonts[] = new boolean[3]; boolean moving_flag=false;//移動中か boolean key_flags[]=new boolean[5];//キーの状態 boolean error_flag=false;//エラーフラグ boolean PushFlag=false;//キーを押した状態であるか //セルデータ 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,0,true),// new Cell(12,0,true),//壁 new Cell(13,0,true),//地下の地面 new Cell(14,0,true),// new Cell(1,5,true),//洞窟から外へ }; //キャラクターデータ Chara charas[]={ new Chara(0,0,8,2,2,"僕はるきち。 ねえ、最近思うんだ けどさ 年を取るにつれて 時間が経つのが 早く感じるんだよね"), new Chara(0,2,6,2,0,"冗談じゃないよ"), new Chara(1,0,5,2,0,"あべし お前はもうあべし"), new Chara(1,0,6,8,0,"勇者って職業?"), new Chara(1,1,5,2,0,"ひでぶ お前はもうひでぶ"), new Chara(1,0,5,6,0,"僕、数学博士。 早速問題! 赤・赤・黒・黒の 4枚のトランプを 裏返して置いてあ ります。 この中から2枚を 同時に開いて、そ れが同じ色(黒黒 か赤赤)である確 率は? 答えは三分の一。 2つ同時というのが 注意点。結局は、1 回目、2回目という 順番で開くのと同じ。 1回目に赤だった場 合は、2回目は「黒 ・黒・赤」の中から 赤を選ぶから。 "), new Chara(2,0,10,2,4,"話しかけないで ウゼエ"), new Chara(2,0,11,2,4,"うるせえ"), new Chara(2,2,8,8,0,"こんにちは ヒカル17歳女子高生"), new Chara(2,0,30,20,0,"彼と待ち合わせ中 なの"), new Chara(3,1,3,1,1,"手紙がある。 「この手紙は不幸 の手紙。 これをはるきちに 渡せ。」"), new Chara(4,2,8,12,3,"宝箱を開けた。 『伝説の金属バット』 を手に入れた!"), }; //バトルキャラクターデータ Bchara bcharas[]={ new Bchara("勇者",0,20,2,0,1), new Bchara("はるきち",1,20,1,0,1), new Bchara("太陽",0,20,1,0,1), new Bchara("ウイルン",2,20,1,0,2), new Bchara("闇色キッド",3,20,1,0,2), new Bchara("ナイフィ",4,20,1,0,3), new Bchara("クロすけ",5,20,1,0,3), new Bchara("飛行機",6,20,1,0,4), new Bchara("ハチ",7,20,1,0,6), new Bchara("オセロン",8,20,1,0,8), new Bchara("魔法使い",9,20,1,0,9), new Bchara("ナイト",10,20,1,0,11), new Bchara("ナマイキガール",11,20,1,0,44), new Bchara("トルイヌ",12,20,1,0,56), new Bchara("城",13,20,1,0,100), }; //マップデータ(32*24) int mapdata[][] = { {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x04,0x00,0x06,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x04,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x08,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x01,0x01,0x04,0x00,0x00,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x00,0x00,0x00,0x01,0x01,0x00,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x01,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x04,0x04,0x00,0x04,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x04,0x07,0x04,0x00,0x05,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x04,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, }; //家マップデータ(7*6) int housemapdata[][] = { { 9, 9, 9, 9, 9, 9, 9}, { 9,10,10,10,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,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,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}, }; //初期化 #ifdef APPLET public void init(){ int i; //--------ロード----------- for(i=1;i<=4;i++){ hero[i-1]=getImage(getDocumentBase(),"hero"+i+".gif");//主人公 tracker.addImage(hero[i-1],0); } //キャラクター for(i=1;i<=CHARAIMAGENUM;i++){ chara_images[i-1]=getImage(getDocumentBase(),"chara"+i+".gif"); tracker.addImage(chara_images[i-1],0); } //バトルキャラクター for(i=1;i<=BCHARAIMAGENUM;i++){ bchara_images[i-1]=getImage(getDocumentBase(),"bchara"+i+".gif"); tracker.addImage(bchara_images[i-1],0); } //マップ for(i=1;i<=MAPNUM;i++){ map_images[i-1]=getImage(getDocumentBase(),"map"+i+".gif"); tracker.addImage(map_images[i-1],0); } se[0] = getAudioClip(getDocumentBase(),"se1.au"); se[1] = getAudioClip(getDocumentBase(),"se2.au"); addKeyListener(this); requestFocus();//フォーカス取得 buffer = createImage(WPIXEL,HPIXEL); blinker = new Thread(this);//スレッド blinker.start(); #else //コンストラクタ RpgCanvas(){ int i; setSoftLabel(SOFT_KEY_1,"取消"); setSoftLabel(SOFT_KEY_2,"決定"); //ロード try{ MediaImage m; for(i=1;i<=4;i++){ m=MediaManager.getImage("resource:///hero"+i+".gif"); m.use(); hero[i-1]=m.getImage(); } //マップ for(i=1;i<=MAPNUM;i++){ m=MediaManager.getImage("resource:///map"+i+".gif"); m.use(); map_images[i-1]=m.getImage(); } //キャラクター for(i=1;i<=CHARAIMAGENUM;i++){ m=MediaManager.getImage("resource:///chara"+i+".gif"); m.use(); chara_images[i-1]=m.getImage(); } //バトルキャラクター for(i=1;i<=BCHARAIMAGENUM;i++){ m=MediaManager.getImage("resource:///bchara"+i+".gif"); m.use(); bchara_images[i-1]=m.getImage(); } }catch(Exception e){e.printStackTrace();} #endif for(i=0;i<3;i++){ anime_fonts[i]=false; } for(i=0;i<5;i++){ key_flags[i]=false; } waitTime=System.currentTimeMillis(); now_map=0; now_string=0; move_dir=DOWN; } //メインループ #ifdef APPLET public void stop() { blinker = null; } public void run(){ Thread thisThread = Thread.currentThread(); repaint(); try{tracker.waitForAll();} catch(Exception e){return;} try{ while(blinker == thisThread){ #else void exe(){ g=getGraphics(); try{ while(true){ #endif FrameTime=System.currentTimeMillis()-waitTime; if(FrameTime==0){FrameTime=1;} //FrameTime=50; waitTime=System.currentTimeMillis(); myPaint(); //移動アニメ if(moving_flag){Moving(move_dir);} #ifndef APPLET checkKeyState();//キーの状態 #else thisThread.sleep(20); #endif } }catch(Exception e){} } //------------タイトル画面--------------- public void title_screen(){ //背景 #ifdef APPLET g.setColor(Color.blue); #else g.setColor(g.getColorOfName(g.BLUE)); #endif g.fillRect(0,0,WPIXEL,HPIXEL); //文字 #ifdef APPLET g.setColor(Color.white); #else g.setColor(g.getColorOfName(g.WHITE)); #endif g.drawString("勇者で行こう!",10,15); g.drawString("⇒",5,40+now_select*20); g.drawString("ニューゲーム",20,40); g.drawString("コンテニュー",20,60); if(sound_flag){g.drawString("サウンド:ON",20,80);} else{g.drawString("サウンド:OFF",20,80);} g.drawString("制作:ハルーポッター",30,HPIXEL-20); } //------------ゲームオーバー画面--------------- public void gameover_screen(){ //背景 #ifdef APPLET g.setColor(Color.cyan); #else g.setColor(g.getColorOfName(g.NAVY)); #endif g.fillRect(0,0,WPIXEL,HPIXEL); //文字 #ifdef APPLET g.setColor(Color.white); #else g.setColor(g.getColorOfName(g.WHITE)); #endif g.drawString("ゲームオーバー",10,15); g.drawString("勇者で逝った!",10,35); g.drawString("制作:ハルーポッター",30,HPIXEL-20); } //バトル画面 public void battle_screen(){ //背景 #ifdef APPLET g.setColor(Color.gray); #else g.setColor(g.getColorOfName(g.NAVY)); #endif g.fillRect(0,0,WPIXEL,HPIXEL); #ifdef APPLET g.setColor(Color.black); #else g.setColor(g.getColorOfName(g.BLACK)); #endif g.fillRect(0,50,WPIXEL,HPIXEL-50); //文字 #ifdef APPLET g.setColor(Color.white); #else g.setColor(g.getColorOfName(g.WHITE)); #endif switch(now_event){ case 0://登場 g.drawString(bcharas[now_chara].name+"が現れた!",10,70); break; case 1://コマンド入力 g.drawString("コマンド?",10,70); switch(now_select){ case 0:g.drawString("⇒",5,100);break; case 1:g.drawString("⇒",5,120);break; } g.drawString("攻撃",20,100); g.drawString("逃げる",20,120); break; case 2://自分の攻撃 if(event_flags[2]){} g.drawString(bcharas[0].name+"の攻撃!!",10,70); g.drawString(bcharas[now_chara].name+"に",10,90); g.drawString(bcharas[0].power+"のダメージ!!",10,110); break; case 3://敵のターン g.drawString(bcharas[now_chara].name+"の攻撃!!",10,70); g.drawString(bcharas[0].name+"に",10,90); g.drawString(bcharas[now_chara].power+"のダメージ!!",10,110); break; case 4: g.drawString(bcharas[0].name+"は逃げ出した!!",10,70); break; case 5: if(bcharas[now_chara].hp<=0){ g.drawString(bcharas[now_chara].name+"を倒した!!",10,90); g.drawString("経験値"+bcharas[now_chara].ex+"獲得!",10,110); } if(bcharas[0].hp<=0){ g.drawString(bcharas[0].name+"は死んだ!!",10,90); } break; } //モンスター #ifdef APPLET g.drawImage(bchara_images[bcharas[now_chara].gra],(WPIXEL-32)/2,10,this); #else g.drawImage(bchara_images[bcharas[now_chara].gra],(WPIXEL-32)/2,10); #endif } //コンテニュー画面 public void continue_screen(){ int i; //背景 #ifdef APPLET g.setColor(Color.blue); #else g.setColor(g.getColorOfName(g.BLUE)); #endif g.fillRect(0,0,WPIXEL,HPIXEL); //文字 #ifdef APPLET g.setColor(Color.white); #else g.setColor(g.getColorOfName(g.WHITE)); #endif g.drawString("パスワード入力",10,15); if(now_select<5){ g.drawString("⇒",8+now_select*18,40); }else if(now_select<10){ g.drawString("⇒",8+(now_select-5)*18,60); }else{ g.drawString("⇒",5+2*16,80); } for(i=0;i<5;i++){ g.drawString(""+(char)(i+'A'),20+i*18,40); g.drawString(""+(char)(i+'F'),20+i*18,60); } g.drawString("END",20+2*16,80); //フォーム #ifdef APPLET g.setColor(Color.white); #else g.setColor(g.getColorOfName(g.WHITE)); #endif g.fillRect(10,90,WPIXEL-30,18); #ifdef APPLET g.setColor(Color.red); #else g.setColor(g.getColorOfName(g.RED)); #endif for(i=0;i3){return false;} //座標 My.x=10*data[1] + data[2] - INIT_X; My.y=10*data[3] + data[4] - INIT_Y; switch(now_map){ case 0:limit.x=32;limit.y=24;break; case 1:limit.x=7;limit.y=6;break; case 2:limit.x=64;limit.y=32;break; } if(My.x<0 || My.x>limit.x || My.x<0 || My.y>limit.y){ return false; } //経験値 bcharas[0].ex=100*data[5]+10*data[6]+data[7]; //フラグ int value=1000*data[8]+100*data[9]+10*data[10]+data[11]; for(i=0;i<10;i++){ if((value&0x1)==1)event_flags[i]=true; else event_flags[i]=false; value>>=1; } //キャラを消す if(event_flags[0]){charas[10].event=100;} if(event_flags[2]){charas[11].event=100;} return true; } //マップ画面 public void map_screen(){ int i,j,k,l; int map; String strs[] = new String[3]; switch(now_map){ case 0:limit.x=32;limit.y=24;break; case 1:limit.x=7;limit.y=6;break; case 2:limit.x=64;limit.y=32;break; } //背景(マップ) for(i=My.x-1,k=-1;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 g.drawImage(map_images[map],k*PARTS_SIZE+mapfew.x/100,l*PARTS_SIZE+mapfew.y/100,this); #else g.drawImage(map_images[map],k*PARTS_SIZE+mapfew.x/100,l*PARTS_SIZE+mapfew.y/100); #endif } } //主人公描画 #ifdef APPLET g.drawImage(hero[move_dir],PARTS_SIZE*INIT_X,PARTS_SIZE*INIT_Y,this); #else g.drawImage(hero[move_dir],PARTS_SIZE*INIT_X,PARTS_SIZE*INIT_Y); #endif //-------------------キャラクター描画----------------- for(i=0;i= My.x && charas[i].x=My.y && charas[i].y=now_talk_index+1+1){ strs[1]=charas[now_chara].talk[now_talk_index+1]; }else{strs[1]="";anime_fonts[1]=false;} //三行目 if(charas[now_chara].talk.length>=now_talk_index+2+1){ strs[2]=charas[now_chara].talk[now_talk_index+2]; }else{strs[2]="";anime_fonts[2]=false;} //続きがある場合 if(charas[now_chara].talk.length>=now_talk_index+4){strs[2]+="▽";} break; default:strs[0]="";strs[1]="";strs[2]=""; } //流れる文字 //一行目 if(anime_fonts[0]){ g.drawString(strs[0].substring(0,TalkPos/100+1),2,130-21-14); if((TalkPos+=4*FrameTime)/100 >=strs[0].length()){anime_fonts[0]=false;TalkPos=-8*(int)FrameTime;} }else{g.drawString(strs[0],2,130-21-14);} //二行目 if(!anime_fonts[0] && anime_fonts[1]){ if(TalkPos>=0)g.drawString(strs[1].substring(0,TalkPos/100+1),2,130-7-14); if((TalkPos+=4*FrameTime)/100>=strs[1].length()){anime_fonts[1]=false;TalkPos=-8*(int)FrameTime;} }else if(!anime_fonts[1]){g.drawString(strs[1],2,130-7-14);} //三行目 if(!anime_fonts[1] && anime_fonts[2]){ if(TalkPos>=0)g.drawString(strs[2].substring(0,TalkPos/100+1),2,130-7); if((TalkPos+=4*FrameTime)/100>=strs[2].length()){anime_fonts[2]=false;TalkPos=0;} }else if(!anime_fonts[2]){g.drawString(strs[2],2,130-7);} if(!anime_fonts[0] && !anime_fonts[1] && !anime_fonts[2]){anime_font=false;} keyAction(); } //累乗 public int mypow(int a,int b){ int i; int ans=1; for(i=0;i0)now_select--;break; case 2:now_select=0;break; case 3: if(now_select>=5)now_select-=5; break; } break; //下ボタン #ifdef APPLET case KeyEvent.VK_DOWN: #else case Display.KEY_DOWN: #endif key_flags[DOWN]=true; switch(now_screen){ case 0:if(now_select<2)now_select++;break; case 2:now_select=1;break; case 3: if(now_select<5)now_select+=5; else now_select=10; break; } break; #ifdef APPLET case KeyEvent.VK_RIGHT: #else case Display.KEY_RIGHT: #endif key_flags[RIGHT]=true; switch(now_screen){ case 3: if(now_select<10)now_select++; break; } break; #ifdef APPLET case KeyEvent.VK_LEFT: #else case Display.KEY_LEFT: #endif key_flags[LEFT]=true; switch(now_screen){ case 3: if(now_select>0)now_select--; break; } break; //ステータス表示 #ifdef APPLET case KeyEvent.VK_ENTER: #else case Display.KEY_SELECT: #endif if(now_screen==1){ if(now_string==0){sbuffer=getPassword();now_string=1;} else if(now_string==1){now_string=0;} } break; //決定ボタン #ifdef APPLET case KeyEvent.VK_S: #else case Display.KEY_SOFT2: #endif switch(now_screen){ //タイトル画面 case 0: //ニューゲーム if(now_select==0){ now_screen=1; //初期化 limit.x=32;limit.y=24; My.x=1-INIT_X; My.y=1-INIT_Y; now_map=0; bcharas[0].ex=0; }else if(now_select==1){//コンテニュー now_screen=3; often_init(); }else{ sound_flag=!sound_flag;//サウンド設定 } break; case 1: if(!key_flags[KEY1]){ map_search(My.x+INIT_X,My.y+INIT_Y);//調べる key_flags[KEY1]=true; } break; case 2://バトル switch(now_event){ case 0://登場 now_event=1; break; case 1://コマンド入力画面 switch(now_select){ case 0://攻撃 //素早さ比較 if(bcharas[0].speed > bcharas[now_chara].speed){ now_event=2;//自分のターン }else{ now_event=3;//敵のターン } break; case 1://逃げる now_event=4; break; } break; case 2://自分のターン bcharas[now_chara].hp-=bcharas[0].power; if(bcharas[now_chara].hp<=0){//やっつけた場合 bcharas[0].ex+=bcharas[now_chara].ex;//経験値獲得 now_event=5; }else if(bcharas[0].speed > bcharas[now_chara].speed){ now_event=3; }else{now_event=1;} break; case 3://敵のターン bcharas[0].hp-=bcharas[now_chara].power; if(bcharas[0].hp<=0){//死んだ場合 now_event=5; } else if(bcharas[0].speed > bcharas[now_chara].speed){ now_event=1; }else{ now_event=2; } break; case 4://逃げる //イベント戦闘の場合 if(charas[0].event==99){charas[0].event=2;} else if(charas[6].event==99){charas[6].event=4;}//残す else if(charas[7].event==99){charas[7].event=4;} now_screen=1;now_chara=0;battle_probability=10;break; case 5://戦闘終了 //全滅の場合 if(bcharas[0].hp<=0){now_screen=10;return;} //イベント戦闘の場合 for(i=0;i=100){battle_probability=99;} //戦闘開始 if(battle_probability==0 || now_map==1)return; Random rand = new Random(); int ran=rand.nextInt(); if(ran<0){ran=-ran;} if(ran%(100-battle_probability) == 0){ often_init(); ran=rand.nextInt(); if(ran<0){ran=-ran;} now_chara=ran%(BCHARANUM-2)+2;//主人公・はるきちは含めない if(now_chara<0 || now_chara>=BCHARANUM)return; now_screen=2; } } //移動アニメ public void Moving(int dir){ switch(dir){ case UP: if((mapfew.y+=8*FrameTime)/100>=PARTS_SIZE){mapfew.y=0;moving_flag=false;My.y--;map_event(My.x+INIT_X,My.y+INIT_Y);} break; case DOWN: if((mapfew.y-=8*FrameTime)/100<=-PARTS_SIZE){mapfew.y=0;moving_flag=false;My.y++;map_event(My.x+INIT_X,My.y+INIT_Y);} break; case LEFT: if((mapfew.x+=8*FrameTime)/100>=PARTS_SIZE){mapfew.x=0;moving_flag=false;My.x--;map_event(My.x+INIT_X,My.y+INIT_Y);} break; case RIGHT: if((mapfew.x-=8*FrameTime)/100<=-PARTS_SIZE){mapfew.x=0;moving_flag=false;My.x++;map_event(My.x+INIT_X,My.y+INIT_Y);} break; } } //よくする初期化 public void often_init(){ now_event=0; now_select=0; now_point=0; if(now_chara!=0){ bcharas[now_chara].hp=bcharas[now_chara].maxhp;//HP回復 } } //調べる public void map_search(int x,int y){ int cell,i,j; boolean move_flag=false; boolean talk_flag=false; if(anime_font){return;} #ifdef APPLET if(sound_flag)se[1].play(); #endif //会話スキップ switch(now_string){ case 0:case 1:break; case 2: //会話に続きがある場合 if(charas[now_chara].talk.length>=now_talk_index+4){ now_talk_index+=3; anime_font=true;TalkPos=0; for(j=0;j<3;j++){anime_fonts[j]=true;} }else{ //会話終了時イベント if(now_event==11){now_chara=1;now_screen=2;often_init();}//はるきち if(now_event==10){now_chara=12;now_screen=2;often_init();}//ギャル now_string=0; } return; } #ifdef APPLET if(sound_flag && 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; } //向いている方向にキャラクターがいる場合 for(i=0;i