[過去ログ]
DXライブラリ 総合スレッド その5 (1001レス)
DXライブラリ 総合スレッド その5 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
466: 名前は開発中のものです。 [sage] 2010/01/03(日) 11:10:30 ID: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); http://echo.5ch.net/test/read.cgi/gamedev/1259912953/466
467: 名前は開発中のものです。 [sage] 2010/01/03(日) 11:12:21 ID: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); こんな感じにすると若干思っているのとずれるんですよね…。 当たり判定なので左上の座標と右下の座標を取得するところまでは考えたのですが、 どのようにしたら実情にあったマップとのあたり判定になると思いますか? http://echo.5ch.net/test/read.cgi/gamedev/1259912953/467
470: 名前は開発中のものです。 [sage] 2010/01/03(日) 11:44:39 ID:WXd0Gz3I >>469 うまく言えないのですが、ぶつかるべきところでぶつからないで食い込んで止まったりする、という感じでしょうか・・・。 あと、通行可のはずのところに入れなかったり。 マップに入れるところ、入れないところを作りたいのですが。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/470
480: 名前は開発中のものです。 [sage] 2010/01/03(日) 15:24:02 ID:WXd0Gz3I あたり判定みたいに右下と左上のみの判定じゃ難しいみたいですね。 なんとなくそれっぽい動きができればそれでいいのですが…。 switch-caseも一度考えてみます。 http://echo.5ch.net/test/read.cgi/gamedev/1259912953/480
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.028s