DXライブラリ 総合スレッド その5at GAMEDEVDXライブラリ 総合スレッド その5 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト466:名前は開発中のものです。 10/01/03 11:10:30 WXd0Gz3I ちょっと相談なのですが、座標はfloat型で取得していて、 マップは20×15で通れるところが0、通れないところが1で2次元配列読み込み済。 自キャラは32×32の場合、DXライブラリのサンプルにあったマップとのあたり判定の例に従って float oldX,oldY;//移動前の座標 int key = GetJoypadInputState(DX_INPUT_KEY_PAD1); oldX = (*it).x ;//移動前のX座標 oldY = (*it).y ;//移動前のY座標 int x1 = (*it).x , y1 = (*it).y; int x2 = (*it).x+32 , y2 = (*it).y+32; //右下の座標(どこで使うか考えている) printfDx("%d,%d,%d,%d\n",x1,y1,x2,y2); 467:名前は開発中のものです。 10/01/03 11:12:21 WXd0Gz3I float df = GameFrame::IdouHosei(4); if(key & PAD_INPUT_UP) (*it).y = (*it).y - df; if(key & PAD_INPUT_DOWN) (*it).y = (*it).y + df; if(key & PAD_INPUT_LEFT) (*it).x = (*it).x - df; if(key & PAD_INPUT_RIGHT) (*it).x = (*it).x + df; if((*it).x<0) (*it).x=0; if((*it).x>608) (*it).x=608; if((*it).y<0) (*it).y=0; if((*it).y>448) (*it).y=448; x=x1/32; y=y1/32; if(map[y][x]==1){ (*it).x = oldX ; (*it).y = oldY ; } (*it).anim->draw(0, (*it).x, (*it).y); こんな感じにすると若干思っているのとずれるんですよね…。 当たり判定なので左上の座標と右下の座標を取得するところまでは考えたのですが、 どのようにしたら実情にあったマップとのあたり判定になると思いますか? 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch