現在DXLIBにて戦略ゲームを制作しています。
表示した世界地図をマウスで動かす、「グーグルマップ」的な操作を目指していて一応出来ました。
しかし、
・マウスポインタがマップの描画領域を超えるような位置に来たとき、ポインタを引き戻してもすぐにマップがその方向に動かない…
・ソースコードがなんだかスッキリしない…
まだまだ初心者なのでなかなか思うように行きません。どうかお助けください。
また、ウインドウのサイズは800×600、表示する画像は1600×1200を使用しています。
申し訳ありませんがプログラム全体は省かせていただきます。
Mouse.Button[0]やMouse.xとかは「ゲームプログラミングの館」でのものと同じです、
mapxy.xとmapxy.yは
DrawGraph(mapxy.x,mapxy.x,マップのハンドル,FALSE);
としてマップを描画するためのXY座標のint型変数です。
int MapControl(){
static int nowX,nowY,nowMAPX,nowMAPY,OutFlag;
if(Mouse.Button[0] == 1){
nowX = Mouse.x;
nowY = Mouse.y;
nowMAPX = mapxy.x;
nowMAPY = mapxy.y;
}
if(Mouse.Button[0] > 1){
if(mapxy.x<-800 || mapxy.x>0 || mapxy.y<-600 || mapxy.y>0){
nowX = Mouse.x;
nowY = Mouse.y;
}
mapxy.x = (Mouse.x - nowX) + nowMAPX;
mapxy.y = (Mouse.y - nowY) + nowMAPY;
}
if(mapxy.x<-800){mapxy.x= -800;}
if(mapxy.x>0){mapxy.x= 0;}
if(mapxy.y<-600){mapxy.y= -600;}
if(mapxy.y>0){mapxy.y= 0;}
return 0;
}