[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 11/13 16:36 / Filesize : 243 KB / Number-of Response : 900
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

DXライブラリ 総合スレッド



1 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 23:06:39 ID:Ns2HwhRB]
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。

DXライブラリの詳細ついては
homepage2.nifty.com/natupaji/DxLib/
を参照して頂きたい。

DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

434 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 03:28:54 ID:sanH/T6d]
アクション: しょぼんのアクション
シューティング: 龍神録、Galshell2、夜行蛾4
RPG: 星を見る人
アクションRPG:
レーシング:
格闘:
パズル:プリンセスラナ
シミュレーション:

今んとこ候補はこんな感じか。まぁ有料は入れなくていいと思う。買った人にしかわかんないし。

435 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 12:06:52 ID:hKPgrkB+]
誰かジョイスティック対応した斜め移動のコードを教えてください。
シューティング作ろうとプログラムを始めたばっかりの初心者なんでなかなか上手くいかないです。

keyでのキー入力の場合だとちゃんと斜め移動するんですが、GetJoypadInputStateを使うと上下左右移動しか出来ず、斜め移動を入力するととまってしまいます。

int plx = 200;
int ply = 400; //プレイヤー初期x.y座標の取得。


if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_RIGHT ) { //右ボタンが押されたら

plx++;
plx++;
plx++;
plx++;

if(plx >= 385){ //画面右端から左端へワープ。
plx=0;
}

}

こんな感じのコードを上下左右分作っています、これだと斜め移動は実装できないんですか?

こんな初歩的な事でつまずいてるとか完成まで物凄い時間かかりそう。

436 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 12:28:17 ID:fI2aJQcd]
プログラム的には問題ないように見える。

キーボード入力でうまくいくのに、ジョイスティック入力でうまくいかないのなら、
ジョイスティックが斜め入力に対応してないんじゃないかと思えるが……どうだろう。

普通のゲームをそのジョイスティックで操作してちゃんと斜めに動く?
もしそうならDXライブラリが対応してないジョイスティックがあるって事になるのかな。

437 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 12:29:53 ID:fI2aJQcd]
あ、GetJoypadInputStateはキーボード入力も同時に対応してくれるけど
キーボードならちゃんと動くって事だよね?

438 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 12:41:35 ID:hKPgrkB+]
>>436
logicoolの
ttp://www.logicool.co.jp/index.cfm/gaming/pc_gaming/gamepads/devices/4627&cl=jp,ja
コレ使ってるけど、斜め移動は普通に他のゲームではできます。

それとGetJoypadInputStateを使うとキー入力、ジョイスティック操作での斜め移動をしようとするとキャラがその場で止まってしまい。
GetHitKeyStateAll( Key );を使ってキー入力のみの場合だとちゃんと斜め移動が出来ます。

もしかしたらどっかのコードが違うのかなぁ

439 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 12:45:14 ID:fI2aJQcd]
んーじゃ、コードをどっか間違ってるんでしょうね。見てみないとわかんないけど。

例えば計算を間違ってて座標がプラスマイナス0になってるとか、
斜め入力した時に処理が別のとこに飛んでるとか。

440 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 12:46:35 ID:fI2aJQcd]
あ〜でもGetHitKeyStateAllだと上手くいってるのか……なんだろうね。

441 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 12:47:35 ID:hKPgrkB+]
初心者とは言えコードが幼稚すぎて晒すの恥ずかしいけど、一通り晒してみます。
void player_move(){ //プレイヤーの移動
GetJoypadInputState( DX_INPUT_KEY_PAD1 ) ; //ジョイスティックの状態を監視
char Key[256]; //キー状態の取得。
GetHitKeyStateAll( Key ); //ループ、キーの状態を取得
if(GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_R ){ //低速移動
if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_RIGHT ) { //シフトと右が同時に押された場合。
plx--;
plx--;
}
if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_LEFT ) { //シフトと左が同時に押された場合。
plx++;
plx++;
}
if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_UP) { //シフトと上が同時に押された場合。
ply++;
ply++;
}
if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_DOWN ) { //シフトと下が同時に押された場合。
ply--;
ply--;
}
}
ply++;
ply++;
ply++;

if(ply >= 430){ //画面下部へ戻す(ハミ出ないようにする。)
ply=430;
}

}

442 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 12:48:45 ID:hKPgrkB+]
//ここから高速移動。
if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_RIGHT ) { //右ボタンが押されたら
plx++;
plx++;
plx++;
plx++;
if(plx >= 385){ //画面右端から左端へワープ。
plx=0;
}
}
if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_LEFT ) { //左ボタンが押されたら。
plx--;
plx--;
plx--;
plx--;
if(plx <= 0){ //画面左端から右端へワープ。
plx=385;
}
}
if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_UP) { //上ボタンが押されたら。
ply--;
ply--;
ply--;
ply--;
if(ply <= 0){ //画面上部へ戻す(ハミ出ないようにする。)
ply=0;
}
}


文字制限があり、下ボタンが書けないですが、上記のコードと同じ感じです。



443 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 13:23:58 ID:Y9twlXWg]
>> if( GetJoypadInputState( DX_INPUT_KEY_PAD1 ) == PAD_INPUT_UP)
これなんだけど、
==で判定するんじゃなくて、
&で判定したら良いと思うんだけど、どうだろ。(他も同様に)
DX使ったこと無いんで知らないんだけど。


444 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 13:24:35 ID:ui07eI/H]
== で判定している時点でおかしい。
GetJoypadInputState() が斜めという状態を返すのに、
「斜め==右」と「斜め==上」の両方を満たしたりすることがあると思う?

445 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 13:31:28 ID:hKPgrkB+]
>>443-444
ありがとおおおお!
そうか、「==」で両方の条件を満たすモノかと思ってたけど検討違いだったみたいだ。

これで一つシューティングに近づけた!
敵移動ルーチンもがんばって作ります。


446 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 13:45:15 ID:pBagc6XR]
つーかDxlib.hくらいは読め

447 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 13:48:18 ID:epOoFIz5]
plx++;
plx++;
plx++;
plx++;

ここ何で plx += 4; て書かないの?

448 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 13:52:26 ID:hKPgrkB+]
>>446
リファレンス読んだんですけど、関数の使い方がまだ慣れていなくて。

>>447
そういう書き方もあったんですね、本当勉強になります。

449 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 14:03:28 ID:epOoFIz5]
homepage2.nifty.com/natupaji/DxLib/dxlecture_main.html
まずこういうとこで勉強しる。ゲームをつくるのに必須な事柄ばかり

450 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 15:46:09 ID:EwmM+mgV]
14歳シリーズ読む前に上の奴は目を通しておいたほうがいいね

451 名前:名前は開発中のものです。 mailto:sage [2008/07/15(火) 23:47:36 ID:kClkDntU]
DXライブラリ3Dのひと大学やめたって・・・
信用できなさすぎてワロタ

452 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 00:58:20 ID:i3IZPEwK]
自キャラが動いている画面部分に、ステータス表示などのウィンドウを開くには
どうしたらいいのでしょうか?ウィンドウを描画する部分は作ってみたのですが、
うまく消すことができません・・・どう考えてプログラムを組んだらいいのか教えてください



453 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 02:02:25 ID:sIK7J7gQ]
意味がわからん。
ウィンドウ描きたきゃ描けばいいし
消したきゃ描かなければいいだけでは。

毎回全部描き直してればこれですむが……?

454 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 08:44:26 ID:jVP8P/rT]
>>452
毎回、画面をクリアして(あるいは、色、画像で塗りつぶして)から、
キャラクタとかを描くようにしたらいいよ。
つまり、消す=表示しない

ウィンドウに関しても、表示する/しないのフラグを作るなり何なりして、
表示する/しないを切替えられるようにする、というのが一つの考え。

画面のちらつきが気になるならダブルバッファリングでもググッて頂戴。

455 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 12:47:22 ID:Hdj1AvWV]
>452
すぐ上の>449くらいは見てから聞きなさい。


456 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 12:48:19 ID:fyzf+eW+]
俺も>>452と同じ所が微妙に分からないんだけど。

メインループが書いてあるコードで
while(ProcessMessage() == 0 && GetHitKeyStateAll(Key) == 0){ //メイン処理
RefreshTime = GetNowCount(); //今の時間の取得
ClearDrawScreen(); //裏画面のデータの削除

img_01();  //背景の表示
img_s1();  //スコアボードの表示

player_move();  //キャラクター移動

enemy_move_01();  //下がって来きて、一定時間止まり上に上がる敵の移動
enemy_move_02();  //右から来て左に消える敵の移動

ScreenFlip() ; //裏画面のデータを反映
while(GetNowCount() - RefreshTime < 17); //1周の処理が17ミリ秒になるまで待つ
if (Key[KEY_INPUT_ESCAPE]==1) break;

このコードだとどうしてもenemy_move_main_01と02が画面外に消えたとしてもClearDrawScreenでは消えないし、もしenemy_move_main_01内でClearDrawScreen使ったとしても違うものが消えちゃう。
そうなると画像を選択してその画像だけを消すコードを追加した方がいいの?

457 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 13:03:06 ID:Q6JHVI1A]
>画面外に消えたとしてもClearDrawScreenでは消えないし

なんで?
画面外ならそもそも消す必要すらないのでは。

というか画面外なら最初から表示しなけりゃいいんじゃないのか……?

俺なにか勘違いしてる?

458 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 13:08:46 ID:fyzf+eW+]
>>457
書き方が悪かったのかな。

敵が画面上部の外から出てくる(表示されてない)

画面中央ぐらいまで下がってきて止まる(表示されている)

一定時間止まったら画面上部の外に出る(表示されていない)


ここで3番目の処理の時に画像を画面外で消さないと重くなって仕方ないんだけど、効率が良い消し方も分からん。
もしかしたら画像が残っている以前に移動のコードがアレなのかも分かんないけど。


459 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 13:29:57 ID:5ZyV7TA5]
敵の座標が0未満なら描画しなければいい
実際は敵の大きさを考慮しなければいけないが

460 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 13:31:50 ID:Q6JHVI1A]
うーん?

俺は「画面外のキャラ」はそもそも表示しないようにしてるんだが、そういう問題じゃない?

あるいは「画面外にでたら不要になるキャラ」なら、キャラ自体を消してしまえばいいんだし。

461 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 13:38:11 ID:Q6JHVI1A]
例えばこんな感じで ↓

//画面内だったら表示する
if( x + GH.width >= 0 &&
x < SCREEN_WIDTH &&
y + GH.height >= 0 &&
y < SCREEN_HEIGHT )
DrawGraph( x , y , GH , TRUE ) ;


# x と y はキャラの座標。
# GH.width GH.height はキャラの幅と高さ
# SCREEN_WIDTH SCREEN_HEIGHT は画面のサイズ

こうすれば画面外のキャラは描画処理を省く事ができるからその分処理は軽くなる。
描画処理は時間掛かるからね。

462 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 14:49:40 ID:i3IZPEwK]
452です。。。描画の仕組みがちゃんとわかってなかったようです
通常はループ処理の中で秒間何コマも書き換えを行ってるですよね、
それを忘れてフォトショップのレイヤー表示・非表示みたいな発想をしてました



463 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 15:13:16 ID:jVP8P/rT]
>>462
レイヤーを重ねて画面を作るという発想は間違ってないと思うよ。
それに画面外の画像についてはライブラリ側が勝手に判断して、描画する/しないを判断してくれるものだと思ってた。
(キャンバスのサイズ
そもそも、敵の数がハードコーディングできる位の量で、処理がそこまで遅くなるとも思えないので、
消えてる/消えてないとは別に理由があるような気がする。

もしかして、毎回LoadGraphScreenで画像を読み出していないか?とか。
homepage2.nifty.com/natupaji/DxLib/lecture/lecture5.html

464 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 15:38:24 ID:Q6JHVI1A]
スピードうんぬん言ってるのは>>456でしょ?

465 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 15:59:40 ID:jVP8P/rT]
ぐはw間違えたwww

466 名前:名前は開発中のものです。 [2008/07/16(水) 16:08:27 ID:uDKC+hAb]
DXライブラリ3D

復活

467 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 20:59:46 ID:5P2SX/d6]
>>466
fatalita.sakura.ne.jp/3DLib/
>大学はやめることにしました。
( ゚д゚ )

468 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 21:22:19 ID:MuiAAeME]
これは予想外といわざるを得ない

469 名前:名前は開発中のものです。 mailto:sage [2008/07/16(水) 23:10:22 ID:xs6cjDc7]
大学を辞めるにいたった理由は他の事にのめり込んだせいか?w

470 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 00:47:50 ID:s5cW2pVU]
大学やめる人間がライブラリ制作つづけられねぇだろ

471 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 00:49:37 ID:Ap/EhYGH]
トラブルがあって金が払えなくなると言う涙なしに語れない話かもしれないぞ

472 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 00:50:27 ID:uimy9tns]
なんでおまえらそんなに攻撃的なのw



473 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 00:57:00 ID:oEwgGZIt]
良くも悪くも一度でもコースから外れたやつには厳しいのが日本だからな

474 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 01:53:00 ID:+mkSl9PA]
まあ今何言われても機能とサポートが充実した状態を数年保てれば自然と利用者は増えるさ
というわけで作者頑張れ

475 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 01:55:32 ID:uimy9tns]
まあ犯罪者ですってんでもなければ、
成果物を利用させてもらうことには何の躊躇いも無いな
大学出るだけが人生じゃないしな

476 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 07:13:32 ID:SZKqta3R]
でも折角はいったんだから頑張って卒業した方がいいと思うなぁ。

477 名前:名前は開発中のものです。 [2008/07/17(木) 08:14:59 ID:tmKiyq5R]
作者頑張れ

478 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 11:20:01 ID:TlwjY+uU]
処理速度が画面上に敵を4〜5体表示するだけで致命的にガクガクになるんだけどなんでだろ?

479 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 11:28:27 ID:FcrOhhAY]
>>478
1. 毎回ファイル読み込みしてる
2. 裏でソフトのアップデートが始まっている
3. 敵の画像サイズが3200x2400フルカラーのビットマップ
4. 一つの座標に同じ敵を何十回も描画してる

5. 以前に開始したゲームが終了できていない。(タスクマネージャを確認)
6. 同時起動してるソフトが重い

480 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 11:34:48 ID:TlwjY+uU]
1. この記述が悪いのかな?やっぱりメモリから読み込んだ方がいいの?
LoadGraphScreen( move02.enx , move02.eny , "date/img/enemy.bmp" , TRUE ) ;

2.3は無い、画像は仮の画像だけど50*50のpngでやってる

4.ClearDrawScreen();で消す→画像の描写→ScreenFlip() ;って感じでやってるから多分大丈夫?だと思う

5.6も無いです。
やっぱり1番の問題なのかな?

481 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 12:14:25 ID:TqjgJuyg]
>裏でソフトのアップデートが始まっている
あるあるww

482 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 12:52:18 ID:pdRWIRiu]
>1. この記述が悪いのかな?やっぱりメモリから読み込んだ方がいいの?

当たり前だw

表示するたびに、いちいちディスクから読んでたらガクガクになるに決まってるだろ。



483 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 17:24:34 ID:d7rd6QL5]
マップの表示をいちいちファイルからやってたら死ねる

484 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 20:10:57 ID:2so4oodo]
ごく初歩のサンプルプログラムでもなければ、LoadGraphScreenの利用価値はまったくない。
LoadGraphScreenなんて関数はないと思っていた方がいい。


485 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 20:23:27 ID:s5cW2pVU]
作者さん乙

486 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 20:34:39 ID:HJmpynoy]
LoadGraphScreenって、例外的な使い方しかしないよな。

487 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 21:13:47 ID:uAQ9zE97]
俺のPCはハイスペックだからLoadGraphScreenでも問題ないよ

488 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 21:24:59 ID:WlLz+UQE]
どれだけアクセスの早いHDDなんだ。

489 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 21:29:56 ID:4zPgFuV4]
だからって使うメリットもあまり無いと思うが

490 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 21:31:24 ID:TlwjY+uU]
move01.eny++;
counter++;

if(counter > 100) move01.eny--;
if(counter > 300) move01.eny-=2;

if(move01.eny > 0)
DrawGraph( move01.enx , move01.eny , enemy_img , TRUE ) ;

アドバイス通りに書いたら安定した。
このスレはプログラム上級者が揃ってて初心者の俺にとってはありがたい

491 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 21:42:01 ID:d7rd6QL5]
いつの間にかプログラミングの館で新しく解説サイトできてるな
しかも結構おもしろそう
読んでくるわ

492 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 21:53:44 ID:d7rd6QL5]
DrawRotaGraphFってなんだよ\(^o^)/



493 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 22:08:06 ID:uAQ9zE97]
この手のプログラミング解説サイトって絵や図が足りないよな
最後に実行結果を動画にしてるのは評価できるけど

494 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 22:37:18 ID:WlLz+UQE]
絵や図を用意しようとすると労力が数倍に跳ね上がるからねぇ……。

495 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 22:44:28 ID:Hb7Xgjfk]
本買えよ


496 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 22:46:11 ID:uAQ9zE97]
サイト作るなら本買って構成とか真似してわかりやすくしろってことだな

497 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 22:48:53 ID:LH8MqGSK]
ってか、そんなに画像が必要か?

498 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 22:53:44 ID:uimy9tns]
只で見ておいてすごいことを言ってのけるなw

499 名前:名前は開発中のものです。 mailto:sage [2008/07/17(木) 23:11:28 ID:uAQ9zE97]
>とにかく「わかりやすい」をモットーに紹介しています。
ソースとスクリーンショットだけじゃこれ実現できねーよ
文章も校正してないしな

只で見て何も言わずに帰るのが本当に良い客なのだろうか

500 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 00:09:07 ID:6rtxrGUf]
うん みてろ

501 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 00:27:24 ID:R9DZM3Hc]
そんなに見づらい、わかりづらいなら
もっと図説が一杯載ってるサイトに行けばいいんじゃね?


502 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 10:08:40 ID:X7knEZGC]
書籍買って勉強してるんだが、ベクトルの話がちんぷんかんぷんだぜ・・・ライブラリが使えても
物理計算が理解できないと話しにならんな、、、ナイセキとガイセキって何が違うんじゃ!!!!



503 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 13:49:37 ID:hGQjyaE4]
画像消してるのにもかかわらずにページファイルが増え続けるんだけど
なんでだろ

504 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 13:55:56 ID:H/OXxpxC]
DeleteGraphしてる?

505 名前:名前は開発中のものです。 mailto:sage [2008/07/18(金) 14:07:21 ID:hGQjyaE4]
してなかった・・・。
してみたら超安定した

506 名前:名前は開発中のものです。 mailto:sage [2008/07/20(日) 01:47:16 ID:hsVM+X3h]
2D横スクロールアクションでキャラと地形のあたり判定を考えてます
背景(地形)に32*16もしくは32*32のマップチップ的なものを配置、
地形のチップの上にキャラが立ち、32ドット単位で移動するようにしたいのですが、
その時の判定で能率の良い方法はないでしょうか?

今はマッピングするときに使う地図情報配列と自キャラの位置を配列座標に変換したものを
比較して、自キャラ[X][Y]に対して、地図情報[X][Y+1]がマップチップなら移動できない・・・・・って手法を考えてますが、
これだと空中に浮かぶチップがあった場合の判定が煩雑になってしまい、
ジャンプしたときなど判別を都度追加しなければならず、効率が悪くて難儀してます

507 名前:名前は開発中のものです。 mailto:sage [2008/07/20(日) 08:01:47 ID:Rb93SROm]
>>506 なんか、微妙にDXライブラリと関係ないけど・・・・・
使っているデータ構造とかがどのようなものか?がわからないから
かなり憶測に基づいての回答だと言う事を念頭に置いてね。
自分が想定してるアクションってのが、聖剣伝説みたいな見下ろし型でのものだけど、
マリオなんか見たいのでも、似たような感じで応用すれば使えると思うよ。

まず、地図情報があると言うことだから、それを若干拡張してください。
 例:char DataMap[MAP_MAX_SIZE_X][MAP_MAX_SIZE_Y][MAP_MAX_SIZE_STRUCTURE];
で、一層目に普通のマップ情報、二層目に地上キャラクタの情報、三層目に空中キャラクタの情報
とでもして、check時に、
 普通は一層目が進行可なら二層目を調べる。
 ジャンプなどの場合は、一層目を調べてさらに三層目を調べる。
みたいなのでどう?

あと、効率が悪いと言っても基本的に変な総当たり式みたいな判定出ない限りは
大した効率さは考えなくていいと思うよ。


508 名前:名前は開発中のものです。 mailto:sage [2008/07/20(日) 08:54:56 ID:zgBZw03q]
>>506
空中に浮かぶチップがあった場合の判定が煩雑になる理由は?

509 名前:名前は開発中のものです。 mailto:sage [2008/07/20(日) 10:37:50 ID:d2RmswSs]
四角形と直線の当たり判定がどうもうまくいかない・・・
この前当たり判定のまとめサイトみたいなの見つけた気がしたんだが
どこにいったんだか

直線を(ax+by+c=0)として表現するっていうのができたらできそうなんだが、
2点の座標からa,b,c全部求めるのって無理じゃね

510 名前:名前は開発中のものです。 mailto:sage [2008/07/20(日) 11:14:01 ID:Tcsf7iZJ]
>>509
直線の方程式を y = Ax + B から展開していけば解けるよ。

511 名前:名前は開発中のものです。 mailto:sage [2008/07/22(火) 23:59:25 ID:M/E435KZ]
>>509
もう出来てるかも知れないが中学数学のお話だぞそれは
直感的に考えても点が二つあれば一本直線が引けるだろ
つまりは方程式も点が二つあれば求まるんだよ

512 名前:名前は開発中のものです。 mailto:sage [2008/07/23(水) 01:15:20 ID:GLsAu5Iz]
龍神録プログラミングの館ってできたのな。
こりゃ確かにコピーが作れる



513 名前:名前は開発中のものです。 mailto:sage [2008/07/23(水) 11:52:10 ID:82XNmZh+]
どこかおかしいと思ったら"r"でfreadしてた
今までうまく動いてたけどいきなり不具合が出たから迷ったぜ

514 名前:名前は開発中のものです。 mailto:sage [2008/07/25(金) 10:57:45 ID:YGbibhe6]
ちょっとしたことなんだけどさ

if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 ){ 以下略

でマウス左クリックを検出してんだけど、
これペンタブを検出してくれないんだな。

515 名前:名前は開発中のものです。 [2008/07/25(金) 15:19:27 ID:1Kbo7I82]
DXライブラリ3D
大学やめたのか


516 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 06:28:51 ID:L5kt2X8n]
大学どころか人生やめました

517 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 13:23:17 ID:IUb0Oqp3]
どうせゲ専にでも行くんだろ
業界が大卒以外取らないってのは、決して脅しの言葉じゃないぞ

518 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 13:28:45 ID:YzymVi7X]
>>517
JEXさんのこと全然知らないんだな
しかもどこのが会社が大卒以外取らないとか言ってんだよ

519 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 13:43:10 ID:yPJXRj/4]
任天堂

520 名前:名前は開発中のものです。 [2008/07/26(土) 15:43:58 ID:gmVyP22M]
誰か、14歳からはじめるC言語ゲームプログラミングでゲーム作っている人いますか?



521 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 15:48:40 ID:gx2oBCiZ]
ノシ

とりあえず熊キャラのところまでたどり着いた・・・・
三回読み直してようやく何をやってるのか、少しわかるようになった
良書と思うが、ライブラリの使用を作者の作ったヘルパー関数の利用で賄ってる部分が多いので、
初めての俺にはそこが難しい(かった)な

522 名前:名前は開発中のものです。 [2008/07/26(土) 15:56:30 ID:gmVyP22M]
P82のDXLib_VC2_24b.exeがどこにあるか分からないのですが
どこにあるのですか?
教えてください!




523 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 16:02:26 ID:gx2oBCiZ]
ちょっと今手元に本が無いから、なんのことやら・・・スマンネ

524 名前:名前は開発中のものです。 [2008/07/26(土) 16:09:33 ID:gmVyP22M]
そうですか
今、DXライブラリがどこにあるか分からなくてとても困っています。
とりあえず、教えてほしいのですが付属のCDでダウンロードできるんですよね?

525 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 16:12:35 ID:gx2oBCiZ]
うろ覚えだが、付属のCDはVisualStudioの奴だけで、
あとはサイトからダウンロードするんじゃなかったかい?
サンプルとライブラリはネットで落とした記憶が・・・

他にもゲーム系入門書を数冊買ったので、ごっちゃになってるかもしれないが・・・

526 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 16:13:53 ID:RMhYO7Z4]
>>524
調べる事も勉強になるから、それぐらいは自分一人の力で解決しないと先に進めないよ

DLと使用環境を整えるぐらいは一人でもいけるはず。

出来ないのならプログラムよりも先にパソコンの使い方とかを勉強したほうがいいかもしれない。

527 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 16:49:04 ID:T15EAVrC]
「CDでダウンロードできる」と言ってるあたり、まだ何も解ってないみたいだね。

2chくるより先に公式サイト見に行くべきだ。

528 名前:名前は開発中のものです。 [2008/07/26(土) 18:16:55 ID:gmVyP22M]
わかりました、公式サイトに行ってみます

529 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 19:19:12 ID:MaSVBvZq]
>>518
悪いけど、まともな企業になってきてる大手は原則大卒しか新卒ではとらないよ。
実績とかなにか、自分の力を証明できるようなもんがあれば別だけど・・・・・
まぁ、どうでもいいか。


530 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 19:28:02 ID:T15EAVrC]
それに、仮に大卒以外として採用されたとしても、待遇は天地の差がある。
給料はもちろん、回される仕事も大きく違う。
せっかく大学受かったなら、辞めないほうがいい。

531 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 19:30:34 ID:IJz7tQo6]
これが学歴厨か・・・
こっちで色々語られてるぞ

ゲームクリエイターになってみない?
pc11.2ch.net/test/read.cgi/gamedev/1111563948/

532 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 19:33:01 ID:YzymVi7X]
任天堂受けたけど、90人の枠に何万人もエントリーするあの倍率じゃ
大卒ウンヌンとかって話じゃないよw
とりあえず勉強してない奴は筆記試験からして最初っからすぐ落ちる。



533 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 20:35:44 ID:dHaaAq9w]
任天堂の技術系は東大か京大か東工大じゃないと話にもならんよ

534 名前:名前は開発中のものです。 mailto:sage [2008/07/26(土) 20:38:55 ID:0BMzZt8C]
高専は?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<243KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef