if (x<=MAP_WIDTH_MIN/32) x=MAP_WIDTH_MIN/32;
if (y<=MAP_HEIGHT_MIN/32) x=MAP_HEIGHT_MIN/32;
mapSize[0]=x;
mapSize[1]=y;
//同時にプレイヤー制御クラスのマップサイズも変更しておく。
pPlatform.setMapSize(mapSize[0]*32, mapSize[1]*32);
int[] gxy=pPlatform.getxy(); //プレイヤーのx, y 座標を抜く。
int px=gxy[0];
int py=gxy[1];
cameraPos[0]=px-400; //プレイヤーの斜め左上、mapWidthの半分がカメラをセットする位置になる。
cameraPos[1]=py-304; //同じくmapHeight/2
//最低でも一画面分は表示されるように微調整。
int mWidth=mapSize[0]*32;
int mHeight=mapSize[1]*32;
if (mWidth<=MAP_WIDTH_MIN) mWidth=MAP_WIDTH_MIN;
if (mHeight<=MAP_HEIGHT_MIN) mHeight=MAP_HEIGHT_MIN;
//画面端まで到達したらそれ以上スクロールしないようにロックする。
//それ以上行くとチップを敷いてない所まで見えてしまう。
//上限がxはmapWidth-800 yはmapWidth-608。1画面分の余裕が必要になる。
int maxPosX=mWidth-MAP_WIDTH_MIN;
int maxPosY=mHeight-MAP_HEIGHT_MIN;
if (cameraPos[0]<=0) cameraPos[0]=0;
if (cameraPos[0]>=maxPosX) cameraPos[0]=maxPosX;
if (cameraPos[1]<=0) cameraPos[1]=0;
if (cameraPos[1]>=maxPosY) cameraPos[1]=maxPosY;
time++;
if(time % 6 == 0){
} // end if
if(time % 2 == 0){
}else{
}
g.setColor(Color.black);
g.fillRect(0, 0, 800, 800);
//プレイヤーよりも奥に描画したいので、まずマップチップを描画する。
maptipPaint(g);//この内部も変更している。すぐ後で解説する。
//g.drawImage(imageShips[muki], x, y, 32, 40, this);
int picSize=32;
int oxy[]=gData.pPlatform.getxy();
//カメラによる座標修正を加える
oxy[0]-=gData.cameraPos[0];
oxy[1]-=gData.cameraPos[1];
以下略…
//カメラによる修正値を加える
int zx=x*32-gData.cameraPos[0];
int zy=y*32-gData.cameraPos[1];
g.drawImage(gData.maptipGra,zx,zy,zx+32,zy+32,dx,dy,dx+32,dy+32,this);