extends SpriteChar; function idou_migi() { //********************右用******************************************* var w; w=0; for(b in m)if($map.getAt(x+5,y)==b+map_pat)w=1; return w; } function idou_hidari() { //********************左用******************************************* var w; w=0; for(b in m)if($map.getAt(x-5,y)==b+map_pat)w=1; return w; } function idou_shita() { //********************下用******************************************* var w; w=0; for(b in m)if($map.getAt(x,y+5)==b+map_pat)w=1; return w; } function idou_ue() { //********************上用******************************************* var w; w=0; for(b in m)if($map.getAt(x,y-5)==b+map_pat)w=1; return w; } anim=newAnimation(); //アニメーション用関数 $screenWidth=350; $screenHeight=350; w=1; //右 ww=1; //左 www=1; //下 wwww=1; //上 life=10; //ライフ menu=0; //メニュー表示 setFont ("MS ゴシック",1,1); //**********マップ*************************** map_pat=$pat_dan; m=new Array();//歩行可能なマップパターン $pat_dan+n の n の配列 m.add(0);/*通常の地面*/m.add(22);/*川にかかっている橋*/m.add(41);/*出口の光1*/m.add(14);//出口の光2 m.add(15);/*出口の光3*/m.add(16);/*出口の光4*/m.add(159);/*壁の最下段*/m.add(160);//壁の最下段2 m.add(161);/*壁の最下段3*/m.add(84);/*壁の最下段*/m.add(85);/*壁の最下段2*/m.add(86);//壁の最下段3 m.add(50);/*階段*/m.add(24);/*階段2*/m.add(45);/*白い穴*/m.add(46);//黒い穴 m.add(178);/*ライト*/m.add(179);/*ライト*/m.add(162);/*黒い穴のわき*/m.add(164);//黒い穴のわき2 m.add(165);/*白い穴のわき*/m.add(167);/*白い穴のわき2*/m.add(34);/*ワープゾーン*/m.add(1);//小石 m.add(26);/*小石2*/m.add(27);//小石3 while(1) { //*********移動関係********************* anim.pause(); $map.scrollTo(x-$screenWidth/2,y-$screenHeight/2); if (getkey(39)>0 && idou_migi()) { //右 x+=2;anim.loop($pat_char+3,$pat_char+5,5); } else if (getkey(37)>0 && idou_hidari()) { //左 x-=2;anim.loop($pat_char+9,$pat_char+11,5); } else if (getkey(40)>0 && idou_shita()) { //下 y+=2;anim.loop($pat_char+6,$pat_char+8,5); } else if (getkey(38)>0 && idou_ue()) { //上 y-=2;anim.loop($pat_char+0,$pat_char+2,5); } //*********所持品表示******************** menu=0; yyy=10; if (getkey(32)==1) menu=1; while(menu==1) { drawDxSprite(x,y,$pat_4+0,0,-100000,0,255,2.8); //************************************************************************* if (yyy==10) drawText($viewX+20,$viewY+30,"スターテス",$clRed,13,-200000); else drawText($viewX+20,$viewY+30,"スターテス",$clWhite,10,-200000); //************************************************************************* if (yyy==20) drawText($viewX+20,$viewY+50,"セーブ",$clRed,13,-200000); else drawText($viewX+20,$viewY+50,"セーブ",$clWhite,10,-200000); //************************************************************************* if (yyy==30) drawText($viewX+20,$viewY+70,"ロード",$clRed,13,-200000); else drawText($viewX+20,$viewY+70,"ロード",$clWhite,10,-200000); //************************************************************************* if (yyy==40) drawText($viewX+20,$viewY+90,"閉じる",$clRed,13,-200000); else drawText($viewX+20,$viewY+90,"閉じる",$clWhite,10,-200000); //************************************************************************* if (yyy==50) drawText($viewX+20,$viewY+110,"ゲーム終了",$clRed,13,-200000); else drawText($viewX+20,$viewY+110,"ゲーム終了",$clWhite,10,-200000); //************************************************************************* if (getkey(38)==1){ if(yyy==10)yyy=60;//上に飛び出たら最下に移動 60は([メニューの数]+1)*10です。下の60も同じ。 yyy-=10; //上 } if (getkey(40)==1){ if(yyy==50)yyy=0;//下に飛び出たら最上に移動 yyy+=10; //下 } update(); } update(); }