//MAPを描画したりイベントを管理するクラス class MapSb{ //大きさと長さとか float SZ,L,def; float selx = SZ/9; MapSb(float sz,float len){ SZ = sz; L = len; def = SZ/L; selx = SZ/9; } //0:壁 1:平地 2:プレイヤー 3:川とか? 4:橋とか 5:家とか 6:帰還ポイント void drawMap(int pt,int x,int y,int z){ if(pt != 6 && pt != 7 && pt != 8 && pt != 9){pt = pt + z * 10;} switch(pt){ case 10: image(mountain1,x * def,y * def,def,def); break; case 11: image(ground1,x * def,y * def,def,def); break; case 12: image(ground1,x * def,y * def,def,def); break; case 13: image(river,x * def,y * def,def,def); break; case 14: image(br,x * def,y * def,def,def); break; case 15: image(mori1,x * def,y * def,def,def); break; case 20: image(mountain2,x * def,y * def,def,def); break; case 21: image(ground2,x * def,y * def,def,def); break; case 22: image(ground2,x * def,y * def,def,def); break; case 23: image(river,x * def,y * def,def,def); break; case 30: image(sea,x * def,y * def,def,def); break; case 31: image(ground3,x * def,y * def,def,def); break; case 32: image(ground3,x * def,y * def,def,def); break; case 40: image(mountain4,x * def,y * def,def,def); break; case 41: image(ground4,x * def,y * def,def,def); break; case 42: image(ground4,x * def,y * def,def,def); break; case 43: image(river,x * def,y * def,def,def); break; case 44: image(mori4,x * def,y * def,def,def); break; case 45: image(br,x * def,y * def,def,def); break; default: fill(200,0,200); rect(x * def,y * def,def,def); break; } if(x == L-1 && y == L-1){ if(z == 1){ image(cas,26*def,4*def,def*3,def*3); image(boss,27*def,6*def,def,def); image(mapesc,10 * def,20 * def,def,def); } if(z == 2){ image(cas,14*def,25*def,def*3,def*3); image(boss,15*def,27*def,def,def);//BOSSの座標にもなる image(mapesc,2 * def,2 * def,def,def); } if(z == 3){ image(cas,1*def,2*def,def*3,def*3); image(boss,2*def,4*def,def,def);//BOSSの座標にもなる image(mapesc,29 * def,24 * def,def,def); } if(z == 4){ image(cas,11*def,1*def,def*3,def*3); image(boss,12*def,3*def,def,def);//BOSSの座標にもなる image(mapesc,20 * def,28 * def,def,def); } image(mplayer,mapx * def,mapy * def,def,def); } } //mapのイベント void event(int pt){ switch(pt){ case 0: break; case 1: if(eve1){ fill(200); strokeWeight(3); strokeJoin(ROUND); rect(SZ/3,SZ/3,SZ/3,SZ/4); textAlign(CENTER); textSize(SZ/27); fill(0); text("ボスに挑みますか?", SZ/2, SZ/3 + SZ/10); textSize(SZ/20); text("OK NO", SZ/2 + SZ/60, SZ/2 + SZ/30 + SZ/200); //選択肢の描画 triangle(SZ/2 - selx,SZ/2 + SZ/53,SZ/2 - SZ/30 - selx,SZ/2 + SZ/80 + SZ/53,SZ/2 - SZ/30 - selx,SZ/2-SZ/80 +SZ/53); if(right){selx = -SZ/18;} if(left){selx = SZ/9;} if(space){if(selx == SZ/9){ enemy = new Enemy(select.position * 100); menu = 9; Event = 0; mapx = 15; mapy = 15; maptime = 0; map_movetime = 0; map_menutime = 0; } else{Event = 0;mapy += 1;selx = SZ/9;map_menutime = 0;} } } break; case 2: if(eve2){ fill(200); strokeWeight(3); strokeJoin(ROUND); rect(SZ/3,SZ/3,SZ/3,SZ/4); textAlign(CENTER); textSize(SZ/30); fill(0); text("マップから出ますか?", SZ/2, SZ/3 + SZ/10); textSize(SZ/20); text("OK NO", SZ/2 + SZ/60, SZ/2 + SZ/30 + SZ/200); //選択肢の描画 triangle(SZ/2 - selx,SZ/2 + SZ/53,SZ/2 - SZ/30 - selx,SZ/2 + SZ/80 + SZ/53,SZ/2 - SZ/30 - selx,SZ/2-SZ/80 +SZ/53); //Yes No 選択 if(right){selx = -SZ/18;} if(left){selx = SZ/9;} if(space){if(selx == SZ/9){ menu = 4; Event = 0; mapx = 15; mapy = 15; maptime = 0; map_movetime = 0; map_menutime = 0; } else{Event = 0;mapy += 1;selx = SZ/9;map_menutime = 0;} } break; } } } }