1 名前:名前は開発中のものです。 mailto:sage [2008/10/25(土) 17:37:53 ID:BCFbbKco] Cを習得した程度のスキルでも、 GUIのゲームを比較的容易に作成する事を可能にする、 「DXライブラリ」に関するスレッドです。 DXライブラリの詳細ついては homepage2.nifty.com/natupaji/DxLib/ を参照して頂きたい。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。 過去スレ:DXライブラリ 総合スレッド pc11.2ch.net/test/read.cgi/gamedev/1197468399/
243 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 11:00:28 ID:oww0q0NN] >>242 なるほど、ありがとうございます。矩形なのでその辺は大丈夫です。 でもアクションゲームみたいに、リアルタイムにバックグラウンドをスクロールさせつつ、 拡大率を変えてバックグラウンド表示するのはその方法ではコストが掛かり過ぎて無理なようですね。 DrawExtendGraphの描画元矩形指定関数があれば一発なのに><
244 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 11:23:00 ID:qrB4r20j] 背景をスクロールさせつつ、拡大部分もスクロールさせるのかな。 それじゃ無理だね。 それならいっそ、 背景を普通の大きさで書く → 画面の描画範囲を設定(SetDrawArea) → 背景を拡大して書く ってやってみるのはどうだろう。 背景を二回描くから、やり方によってはコストかかるけど……。
245 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 12:23:15 ID:Otp3maXe] つDrawRectExtendGraph
246 名前:名前は開発中のものです。 mailto:sage [2008/12/11(木) 12:49:25 ID:oww0q0NN] >>244 そうですそうです、元画像の一部分を拡大表示したいんです。 >>245 おお!ありがとうございます。そんな関数があったんですねw 面倒でも自分でDxLib.hをチェックしないと駄目ですねw
247 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 18:14:48 ID:dqaLLhhf] 今 トルネコやシレンみたいな2Dダンジョン探索ゲームを 800 x 600 ウィンドウモードで作っているんですが 2Dゲームは 640 x 480 が基本だと聞きました。 800x600だと何か不都合でも起こるんでしょうか?
248 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 19:08:10 ID:e0uVhp4S] 32x32とか16x16のブロックがぴったり収まらない、とか。?
249 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 20:15:13 ID:dqaLLhhf] 画面下と右にブロックが半分だけ表示されるのは我慢しようと思います。 800x600だと特定の環境ではちらつきが酷いとかだったら嫌だなぁと思いまして
250 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 20:24:18 ID:yokHYtBf] >>247 処理速度の問題とユーザの環境の問題 ちなみにカラーモードも256色パレットモードが基本だった しかしそれは過去の話 今はPCのスペックは十分だし、800*600の画面モードの無いPCの方が少ないと思うから問題ないかと
251 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 21:25:42 ID:aXKygAOw] ちょっと便乗 CRT使いなんでわからないんだけど 液晶の場合、画面サイズに合わない画面モードの表示ってどうなるの? 1)全画面に拡大されてぼやける 2)表示分だけ使われて余白は黒塗りになる
252 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 21:28:59 ID:8ZHcqCMQ] >>251 A.液晶の設定しだい
253 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 22:00:48 ID:J3zydYCS] 初心者で悪いんだが質問。 うまく言えないんだけど player.cpp内でint宣言をして、void player()で増減させる。 そして 「enemy.cpp内」で「player.cppのvoid player()」で増減したint変数を使用して作りたい判定があるんだけど。 こういうのってやっぱり出来ないのかな?
254 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 22:09:20 ID:r3WCUutT] extern
255 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 22:12:35 ID:dqaLLhhf] player.cppでグローバル変数としてint宣言して enemy.cppの冒頭にextern宣言すれば判定にも使えるようになるよ
256 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 22:19:36 ID:J3zydYCS] >>254-255 ああそれ忘れてたww おもいっくそ素材ファイルの読み込みで使ってたのに ありがと、助かった
257 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 22:34:39 ID:ztObze9Y] -- player.cpp -- int i; void player(){ i += 1; } -- enemy.cpp -- extern int i; void enemy(){ if(i) ・・・ ;}
258 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 22:49:50 ID:aXKygAOw] >>252 即レスサンクス。 じゃあプログラムする側としては あんまり気にしても意味無いんだ・・ 勉強になりますた。
259 名前:名前は開発中のものです。 mailto:sage [2008/12/12(金) 23:04:32 ID:e0uVhp4S] >画面サイズ 最近流行りの低価格ノートPCとかだと、どんな感じなんだろう? 縦600くらい?
260 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 01:45:20 ID:E/1bppJy] if(enemy01_Life < 0){ DeleteGraph( enemy01 ) ; } else if(hitS < hit ){ PlaySoundMem( hit_test , DX_PLAYTYPE_BACK ); shotflag = 0; enemy01_Life -=1; } このコードで、最後のenemy01_Life -=1の判定を一回だけ判定場合ってどうすればいいの? ダメージ判定だけがどうしても残ってしまう
261 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 02:02:18 ID:Swo2xfir] >260 具体的に何がしたいが、何が起こってるのかを示せ。 コードにはコメントを入れろ。第三者には何をやってるか分からない。 んで、だ。 ショットが命中した時、 (1)ショット自体を消す(敵に当たると弾が消える) (2)敵ごとにカウンタを作っておき、「一度当たったら10フレームの間は無敵」とかにする (3)弾ごとに自分がどの敵に命中したかを覚えておき、2度目は命中扱いにならないようにする こんな感じ?
262 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 02:20:00 ID:E/1bppJy] >>261 玉の画像は消えるんだけど、当たり判定だけが「次にショットボタンを押すまで」残るんだ。 何がしたいかは、「玉一つにつき一回だけダメージ判定」をしたい。 ショットコード↓ if( Key & PAD_INPUT_A && shotflag == 0){ //ショットボタンが押されたら PlaySoundMem( p_shot_se , DX_PLAYTYPE_BACK );//ショット音を鳴らす shotX = PlayerX ; shotY = PlayerY ; //プレイヤーの現在位置を取得 shotflag = 1 ; //ショットフラグONにする } if( shotflag == 1 ){ //ショットフラグONになったら shotY -= SHOT_SPEED ; DrawGraph( shotX+10 , shotY , p_shot_img , TRUE ) ; if(shotY < SHOT_DELAY){ shotflag = 0 ; } } 判定コード↓ GetGraphSize( enemy01 , &SizeX , &SizeY ) ; //グラフィックのサイズを取得 hit = SizeX/2 ; //グラフィックの当たり判定(半径) hitX = shotX - enemy01X; hitY = shotY - enemy01Y; //三角形の斜辺を除くXYの長さ hitS = sqrt(hitX*hitX+hitY*hitY); //斜辺 if(enemy01_Life < 0){ //敵死亡してる時 DeleteGraph( enemy01 ) ; } else if(hitS < hit ){ //(ヒット時) PlaySoundMem( hit_test , DX_PLAYTYPE_BACK ); shotflag = 0; enemy01_Life -=1;
263 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 02:39:09 ID:DJ2YFwb1] >>262 判定のコードがifにかかってない if( shotflag == 1 ){ //ショットフラグONになったら shotY -= SHOT_SPEED ; DrawGraph( shotX+10 , shotY , p_shot_img , TRUE ) ; if(shotY < SHOT_DELAY){ shotflag = 0 ; } 判定コード↓ GetGraphSize( enemy01 , &SizeX , &SizeY ) ; //グラフィックのサイズを取得 hit = SizeX/2 ; //グラフィックの当たり判定(半径) hitX = shotX - enemy01X; hitY = shotY - enemy01Y; //三角形の斜辺を除くXYの長さ hitS = sqrt(hitX*hitX+hitY*hitY); //斜辺 if(enemy01_Life < 0){ //敵死亡してる時 DeleteGraph( enemy01 ) ; }
264 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 02:43:12 ID:DJ2YFwb1] なんか伝わる気がしないから書き方を変えると if(shotflagが真) { //ここに判定のコードも書く }
265 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 02:56:17 ID:E/1bppJy] えっと、つまり ショットコード内で if( shotflag == 1 ){ //ショットフラグONになったら この部分に判定コード(>>263 のGetGraphSize〜DeleteGraph( enemy01 ) ;) } を入れないとダメってこと?
266 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 03:06:51 ID:DJ2YFwb1] そう shotflagって弾があるかないかのフラグでしょ? 今のままだとshotflagが0の時にも判定される あといろいろ突っ込みどころがあるけど そういう書き方してると確実にスパゲティソースになる
267 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 11:56:05 ID:E/1bppJy] >>266 マジかw プログラム初心者で全然分からんから適当に組んでる 既にややこしくなってる
268 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 12:55:29 ID:6PMqtPt6] 動けば結構。 実際に作って慣れればいいのだ。
269 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 13:01:52 ID:E/1bppJy] >>263-264 そのとおりにやってみたけど やっぱり玉一つで「次にショットボタンが押されるまで」の間に複数回攻撃判定が出ちゃう・・・。
270 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 13:08:45 ID:WaQfNGav] >>267 初心者なら仕方なら、一回スパゲティコード書いて捨てる経験もしてみるといいかもね。 それがいやならオブジェクト指向の簡単な本があるからそれ読んでみるといいよ。 オブジェクト指向とゲームは相性がよい部類。 ためしにオブジェクト指向で書き直してみようかと思ったけど、半分ほど書いた時点で 長くなった上に果たしてこれを理解できるのかという疑問がわいてきたので捨てた^w^)
271 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 13:10:15 ID:WaQfNGav] 仕方ならってなんだよOTL 仕方ない、ね
272 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 13:19:00 ID:klDdA96T] OOとゲームって相性いいかなぁ。 素人の俺がいうのもなんだけどむしろ相性はよくない方だと思うけど、経験が足りないからかな? 一応ゲーム作りはDXライブラリ使ってもOO(OO風ともいう)を意識して書いてるけど、 C++の便利な機能(クラスや継承程度)を使うくらいでこれぞOOって感じでもないなぁ。 C#でちょっとしたツールなんか作るとOOだなぁって感じるけど。
273 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 13:48:06 ID:WaQfNGav] >>272 ツールを作る件はオブジェクト指向じゃなくて提供されるオブジェクト指向ライブラリが優秀 ってだけだと思う。 >相性はよくない方 どの辺が?ならデータ指向で作る?手続き指向で?俺は絶対いやだけどなー。 パラダイムってのはつまるところコードの整理術なわけで、それを感じないってのは別に 不思議じゃないよ。 さっきでたコード、弾丸と敵との当たり判定がでてきだけど、 int dx = shot->getX() - enemy->getX(); int dy = shot->getY() - enemy->getY(); double distance = sqrt( dx*dx + dy*dy ); if( distance < HIT_SIZE ) { /*ヒット処理*/ } って書いてたらお前ちょっと表に出ろだけど、ちゃんとTell, dont ask の原則にのっとって書いたら if( shot->hitTest( enemy ) ) { /*ヒット処理*/ } 変更にも強く、なおかつコードはわかりやすくなる。
274 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 17:56:36 ID:E/1bppJy] もー全然できねーよおおおおおおお いっそコレ仕様にすっか 敵の端っこにショット当てた状態でショットボタンを押さないと一定時間大ダメージ! 画期的と言えば画期的だが生憎ただのバグだ。
275 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 18:54:39 ID:DJ2YFwb1] >>274 今じっくり見たけど >>262 のif( shotflag == 1 )のブロックを>>262 の一番最後で閉じるか else if(hitS < hit )のブロックの中でhitSを条件満たさないように変更する これで正常になると思うが、違ったらすまそ
276 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 18:56:46 ID:O5bnNqrG] shotflagっていうのは弾の生死状態を管理するフラグなんだから、 弾が生きているときだけ判定をすればいいわけだよね。 >>>264 が言う通り当たり判定をするブロックを if ( shotflag == 1 ){}で囲めば出来ると思うんだけどなあ。 弾が死んでても玉の座標は留まって、さらにshotflagが機能していないから(セットが上手く行っていないか判定処理に考慮されていない) 何度も当たっていると思われるんだけど。 てか敵をデタッチするのにDeleteGraph()で画像そのものを削除するって激しすぎないか?w if ( enemy_alive ) { Task(); } // 敵が生きているときのみ敵に関する処理を行う とかにした方が良いと思うんだが。
277 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 18:59:29 ID:O5bnNqrG] ごめん、if ( enemy_alive ) → if ( enemy01_Life >= 0 )
278 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 21:59:39 ID:E/1bppJy] >>274 だけど、ちょっと検証した 当たり判定は座標で行ってたから www.uploda.org/uporg1853070.jpg この画像の様に(hit>hitS)になってる時に判定が出て、その判定が次玉を出すときまで残るんだ。 だからこの画像はhitは21でhitSは13.9.....ってなってるので次に玉が出るまで(hitSの数値が変わるまで)凄い勢いでenemy_Lifeが減り続けてる 敵に当たった瞬間にhitSをリセットすればいいのかな?
279 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 22:22:05 ID:O5bnNqrG] もうソースうpしてくれよ
280 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 22:28:29 ID:E/1bppJy] www2.uploda.org/uporg1853197.zip.html パスは274 問題のソースはenemy_moveとplayerにあります。 初心者だからすげー読みずらいと思う
281 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 22:30:08 ID:DJ2YFwb1] >>275 では解決しなかったか?
282 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 22:32:35 ID:E/1bppJy] >>281 うん、その通りにやってみても何故か結果は変わらずだった
283 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 22:32:46 ID:O5bnNqrG] hitSっていうのは敵と弾との距離でしょ それは当たり判定をする必要があるとき、 つまり弾と敵が生きているときに毎フレーム計算すればいい 弾の座標を遥か彼方にリセットしたりhitSを直接いじくって 当たり判定が真にならないようにすれば確かに上手く行くだろうけど 本質的には当たり判定をする必要が無いときに判定しているのが問題なんじゃないの?
284 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 22:45:11 ID:E/1bppJy] >>283 毎回計算して判定してるんだけど ヒットした時に計算が次玉出すときまで止まっちゃう
285 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 22:47:31 ID:O5bnNqrG] >>280 全然修正されてないじゃないかw 「enemy_move.cpp」の GetGraphSize( enemy01 , &SizeX , &SizeY ) ; //グラフィックのサイズを取得 の前に一行追加して if ( shotflag == 1 ){ GetGraphSize( enemy01 , &SizeX , &SizeY ) ; //グラフィックのサイズを取得 とする。 次に、その下のほうの int Color ; の前に閉じ括弧を追加して } int Color ; とする。 つまり、当たり判定をしている部分を if ( shotflag == 1 ){ } で括る。 それとインデントをきっちりしないとネストレベルが分からなくなるよ。
286 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 22:53:39 ID:klDdA96T] >>273 んーていうかC#の件は、ライブラリが優秀で作りやすい=オブジェクト指向って事じゃなくて、 コントロール一つ設置してイベントを呼び出すってだけでオブジェクト指向を感じる。 もっと具体的に言えばイベントハンドラ(やデリゲート)がオブジェクト指向だなぁって。 提示してくれた下のコードも、それだけじゃオブジェクト指向を感じない。 結果的に言わんとしようとしてることはわかるけどね。 ただそれだけじゃただのサブルーチン呼び出し。 言いたいのはそのコードだけを見てオブジェクト指向じゃないって事じゃないし、 自分でゲーム作る時もオブジェクト指向で書きたいわけだけど、 概念的に無理やり感があるのと、非オブジェクト指向でも書けるってので、 GUIアプリと比べて相性がいい方ではないって事。
287 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 23:05:58 ID:E/1bppJy] >>285 おおおおおおお!!!ありがとおおおおお 一つのライフしか減らないwwwwwww すげー!ショットフラグがONの時にしか判定しないようにするってそういう事だったのかwww ちなみにプログラムの書き方?はこんな感じでいいのかな?
288 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 23:22:28 ID:HImZ/jwv] どうでもいいけど定数を#defineで書くのとconstで書くのってどっちがいいのけ? 俺は気持ち悪いからconstでやってるわけだが
289 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 23:33:22 ID:Swo2xfir] >288 ・歴史的な経緯とかはあるかも ・特に理由が無ければconstでいいんじゃね? ・defineじゃないと出来ないこと、スマートなこともあるから気をつけろ
290 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 23:34:35 ID:Swo2xfir] >287 とりあえず、何でもいいので1つ完成させてからじゃないと 定番の書き方とかは説明しても意味が無いし、おそらく理解できないと思う。
291 名前:名前は開発中のものです。 mailto:sage [2008/12/13(土) 23:42:11 ID:MCFYNnvA] #defineは計算式入れられるのがいいな 気を付けないと間違った結果が返ってくるハメになるが
292 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 00:49:54 ID:UsQn7VQk] >>287 おめでとう。お世辞にも綺麗なソースとは言えないけど、 モノとして動いているということはとても大事なこと、すごいことだよ。 作り続けていれば段々上手くなって行くはず。 あと>>285 の修正をした段階で、今度は敵の消滅タイミングがおかしくなると思う。 敵のライフが-1になった瞬間には敵は消滅せず、その後自機が弾を発射した瞬間に消滅する、っていう風に。 これを修正するには、敵をデタッチ(殺す)処理をしている部分を移動させればいい。 /* ↓elseは消し、必要なら if ( enemy01_Life >= 0 && hitS < hit ) などとする。しなくても出来るが。 または if ( shotflag == 1 ) のところに敵の生死チェックを入れる。即ち if ( enemy01_Life >= 0 && shotflag == 1 ) とする。しなくてもでき(ry */ if(hitS < hit ){ //敵の画像と自機の玉を直角三角形結んだ時の斜辺が当たり判定より小さい時(hit!!) PlaySoundMem( hit_test , DX_PLAYTYPE_BACK ); shotflag = 0; enemy01_Life -=1; if(enemy01_Life < 0){ //敵死亡してる時 /* この3行を */ DeleteGraph( enemy01 ) ; /* ここに */ } /* 移動 */ } まずはインデント(ソースコードの段落処理)から始めよう。
293 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 01:24:21 ID:2jf1rfQx] そこでPythonとrubyの登場ですね
294 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 07:22:24 ID:HIyGZizO] >>286 さっき提示したコードの価値をただのサブルーチン呼び出しとか 言っちゃってる時点でなんかもう全然わかってない。 あれはShotオブジェクトにEnemyとの当たり判定を”頼んで”いるんだよ。 この違いがわからないんならいつまでたっても素人のまま。 というか >もっと具体的に言えばイベントハンドラ(やデリゲート)がオブジェクト指向だなぁって。 デリゲートなんか関数型プログラミング言語の概念の拝借だよ。 これがオブジェクト指向!なんてデザインパターンこそがオブジェクト指向!というのと同じくらい笑えるんだが。 >概念的に無理やり感があるのと、非オブジェクト指向でも書けるってので、 >GUIアプリと比べて相性がいい方ではないって事。 どこが無理やりなんだよw さっきのコード、Enemy,Player,Shotというクラスを抽出できるけど、これのどこが無理やりなんだよ。自然だろうに。 それとGUIアプリだって手続き型で書ける。イベントハンドラやデリゲートはオブジェクト指向の一機能を使って 実装されてるけれど、それ自体はオブジェクト指向じゃない。だからVBでもGUIアプリが組めるわけだ。 ここまで言ってゲームをオブジェクト指向で組むのは向いてないと言うならもうしらね というかもっと勉強してくださいいやマジで
295 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 09:52:32 ID:1zOFBaLD] C#6年やってるんだけど未だにオブジェクト指向わからねえ。 でもゲームとオブジェクト指向は相性いいと思うよ。
296 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 11:03:33 ID:DFScKmBl] イベントを使ってたところをEventListenerとか使ってobserver剥き出しに変更したら オブジェクト指向になるのか? 実質的に全く等価なのに? >>294 の言うオブジェクト指向って何なんだ
297 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 11:38:14 ID:NFgVN8d3] オブジェクト指向って単純に、人が走っても車が走っても同じ「走る」だ、ってだけじゃねーの
298 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 12:16:50 ID:h39ltAFv] オブジェクト指向って考え方が出る前からプログラム作って遊んでるが 未だにオブジェクト指向が理解できん。 273で言うならちょっと表へ出ろレベル以下だ。
299 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 17:59:02 ID:17g8Fdx4] >>294 は釣りだよな?w 突っ込むところが多すぎるww 「ShotオブジェクトにEnemyとの当たり判定を”頼んで”いる」だけでオブジェクト指向とかww ところで、ゲームをオブジェクト指向で組むのは向いてないって話題は誰がしてるの?してない気がする。。
300 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 18:01:31 ID:17g8Fdx4] >>297 たぶんオブジェクト指向入門書にはそういう概念的な事が書いてあると思うけど、 オブジェクト指向って本当は概念の事じゃないよ。 もっと具体的なプログラミングの事。 「ShotオブジェクトにEnemyとの当たり判定を”頼んで”」も別にオブジェクト指向じゃないww
301 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 18:44:57 ID:CDnr1Yv3] >>300 そうなん? レシーバか引数が違えばそれは別物だっていう名前空間の概念がまずあって そいつを楽に実現するための補助がクラスやテンプレートやインターフェースなんだって認識だったが 具体的なプログラミングの事を言うなら言語がクラスベースかどうかで相当違ってくると思うし あと>>299 最後の行は>>272
302 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 18:58:29 ID:AhiFoxCU] 構造体に関数がくっついただけのクラスのインスタンスを生成して それで動かしたらオブジェクト指向。 そう思っている俺が通りますよ。
303 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 19:02:22 ID:ST598Jfh] 何もめてんだよ >>272 は基本的に用語を間違っているがそれに気付いていない で、親切に答えてくれた>>273 と会話がかみ合っていない >>272 はVBライクなコンポーネント貼りつけとプロパティ設定での プログラミングスタイルとオブジェクト指向を混同している また、Windowsのイベントドリブン構造を言語仕様と勘違いしてる -まとめ- Q.DXライブラリを使うとVBでアプリ作るみたいにコンポーネント貼ってプロパティ設定だけでプログラムできますか? A.できません Q.イベントドリブンがオブジェクト指向ですよね? A.違います Q.イベントドリブンでゲームプログラムは書けますか? A.書けます Q.オブジェクト指向でゲームプログラムは書けますか? A.書けます
304 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 19:18:54 ID:mrF69eoK] ん〜・・・? >>272 の >DXライブラリ使ってもOO(OO風ともいう)を意識して書いてるけど っていうのはDXライブラリ自体がC(非OOPL)で書かれてるけどって意味だろ >>303 こそ勘違いしてるだろ
305 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 19:22:31 ID:17g8Fdx4] 厳密に言えばC/C++使ってる時点でピュアなオブジェクト指向は無理だけどな。 メッセージ呼び出しっていう機能はないし、それに似た機能はメソッド呼び出し(=関数呼び出し)でしかないし。 組み込み型もオブジェクトじゃないしいきなりint main(){}で始まるしww
306 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 19:33:16 ID:5menpJL8] 幸せって何ですか?
307 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 20:33:18 ID:P8eg6rH1] オブジェクト指向ってそんなに高度な事なの? それとも人それぞれ考え方が変わるモノなの?
308 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 20:46:29 ID:uHyIUedU] CしかわかんなくてもDirextXゲームプログラムがさっくりできちゃうのがウリの DXライブラリのスレでオブジェクト指向を熱っぽく語る男の人って……
309 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 21:04:56 ID:SEtb8HBj] ____ / \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ < 厳密に言えばC/C++使ってる時点で | |r┬-| | ピュアなオブジェクト指向は無理だけどな。 \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) ____ /_ノ ヽ、_\ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // だっておwwwww | :::::::::::(⌒) | | | / ゝ :::::::::::/ | ノ | | | \ / ) / ヽ / `ー'´ ヽ / / バ | | l||l 从人 l||l l||l 从人 l||l バ ン ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
310 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 21:23:33 ID:a4AnO2Cl] DXライブラリで質問が・・・ あ、スレ間違えました!すみません
311 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 21:47:10 ID:17g8Fdx4] >>309 int main()ってオブジェクト指向的になんなの?www
312 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 22:41:43 ID:ST598Jfh] >>304 何がん〜・・・?だ そんな事だから >>286 >んーていうかC#の件は、ライブラリが優秀で作りやすい=オブジェクト指向って事じゃなくて、 >コントロール一つ設置してイベントを呼び出すってだけでオブジェクト指向を感じる。 とかマヌケな事を書いてしまうのさ >>303 のまとめでいいんだよ RADツールと言語の区別もついてない質問に対して、みんなにちゃんと答えてもらってる事をまず理解するべきだな 元々スレ違いだ、感謝こそすれ相手を見下すとか勘違いすぎるんだよww
313 名前:名前は開発中のものです。 mailto:sage [2008/12/14(日) 23:20:03 ID:17g8Fdx4] なんか常に話がちょいズレの人いるな
314 名前:さらに話がちょいズレの人 mailto:sage [2008/12/15(月) 00:08:20 ID:JJfbOdAj] >>303 には、同意だけど。 OOなんて元の発生が3つぐらいあって、 さらに様々な言語にそれらのOOが混同されながら導入される過程で どんどんと複雑に入り組んでいってる。 (しかも、良くも悪くも元がProgramming言語における概念だから、 普通の言葉に意味を汲み出す過程で色々とノイズや過不足が起こる。 さらに、OOAだ、OODだなんだので純粋なOOよりも とりあえず使える道具としてのOOが今のメインストリームだと思うし。) だから、結果的には、人によってOOの概念も色々な違いがある。 あと、そんな訳だからと言う訳じゃないがCだって、OOPLは可能。 ただし、言語的なサポートが対応してないから、 様々な工夫をする必要があったりする。 また、逆の意見としても>>305 のint main()で始まるからオブジェクト指向じゃない。 ってのもどうかと思う。 OSも含めたアプリケーションをProgramとみるならば、 int main()は、ズバリそのアプリの呼び出しメッセージと見做しても誤解ではないしね。 あと、>>301 の言ってる事は別にOOじゃないと思うぞ。 それらは単に多態性とかであって、OOとしてあったら好ましいが、 さらに>>300 のプログラミングの概念と具体的なプログラミングが別モノっぽいのも違うんじゃない? 基本アセンブリでやるでもない限りは、プログラムは概念に概念を積み上げた産物だし、 それらの概念を如何につかうか?どのように解釈するか?がプログラミングでしょ。 だからこそ、gotoは悪!!やJavaにはポインタはありません!!みたいな話も出てくるわけでww
315 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 00:20:00 ID:xNu63hXk] 俺は別にピュアだか厳密だか理想的だかなOOじゃなくても それなりに作れてメンテできればいいかな ピュアなのがいい人はその人が納得する言語なりなんなりを使えばいいし
316 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 00:48:36 ID:syJyrDB+] ついこの前DXライブラリでゲームを作り始めた初心者なんですが。 時間のとり方について質問があります ttp://homepage2.nifty.com/natupaji/DxLib/function/dxfunc_other.html#R7N1 のサイトを見て時間所得して表示までできたのですが、ボタン(たとえばスペースボタン)を押して時間を最初からやり直すのはどうすればいいでしょうか?(キー入力状態の取得はできています) 日本語わかりずらかったらすいませんm(_ _;)m
317 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 00:52:41 ID:r0Y4Aqo3] int ゲーム内ではこっちを使う; ゲーム内ではこっちを使う = GetNowCount(); if (ボタンが押された) ゲーム内ではこっちを使う = 0;
318 名前:317 mailto:sage [2008/12/15(月) 00:57:14 ID:r0Y4Aqo3] 間違えた。正しくは int ゲーム内ではこっちを使う; int 前にリセットした時間; int now = GetNowCount(); ゲーム内ではこっちを使う = now - 前にリセットした時間; if (ボタンが押された) { ゲーム内ではこっちを使う = 0; 前にリセットした時間 = now; }
319 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 05:27:51 ID:dny0TB5O] >>148 いや、スレチでもないぞ。ライブラリ作者の古い作品だから
320 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 11:37:12 ID:gYDVxSnY] >>273 if( shot->hitTest( enemy ) ) { /*ヒット処理*/ } って書くとたしかに変更に強くわかりやすくなるけどそれがOOだっていうのは尚早だよ。 hitTest()の中身は結局上と同じ事してるんだから。 だからその部分がOOだって言われるとただのリファクタリング手法でしかない。 もしその部分だけでOOだっていえるならGUIアプリだって TextBox tb = new TextBox; list.add(tb); ほら、同じ。 でも両方ともただオブジェクトを渡してるって事実しかないよ。 それを推しておきながらデリゲートだけじゃOOじゃない!っていうのは横暴だなぁ。 ちなみにVBは今はOOPLだよ。 OOは議論が起きるくらい曖昧なところもあるけど、やっぱりカプセル化・継承・ポリモーフィズムの3つは最低限主張すべきだね。 個人的にはわざわざなんでカプセル化なんてあるのか疑問だけどw(隠蔽や最小の原則なんかは構造化言語からずっとあった)
321 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 11:46:55 ID:gYDVxSnY] >>303 煽るわけじゃないけど流れを読んできてなんでいきなりWindowsのイベントドリブンが出てくるのかなって思ったんだけど、 きっと>>305 のメッセージ呼び出し機能って言葉からそう思ったのかな? たしかにイベントドリブンもメッセージっていうけどOOのメッセージっていうのは全く別物だよ。 純粋なOOPL(Smalltalkなど)ではメッセージ機能っていうのがあるんだ。 メソッド呼び出しに似てるけどちょっと違う。 C++ではメンバ関数、Javaではメソッド呼び出しで実現してるけどね。 詳しくは自分で調べてみて。
322 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 13:36:35 ID:Mi5wQEEl] >>321 >>286 >コントロール一つ設置してイベントを呼び出すってだけでオブジェクト指向を感じる。 >もっと具体的に言えばイベントハンドラ(やデリゲート)がオブジェクト指向だなぁって。 いや、Windowsのイベントドリブン構造の事だ 読めばわかる
323 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 17:20:30 ID:k3xYLtfr] オブジェクト指向は僕達の心の中にあります
324 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 18:27:06 ID:VbZykIE5] 俺の中でオブジェクトっつったらスプライトの事だ!
325 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 20:55:40 ID:0kk0L8Su] じゃあ俺は、この形。 int WINAPI WinMain(うんたらかんたら〜){ Application App; App.Run(); return 0; } Applicationのインスタンスが生成されてる間はアプリが生きてる。 App破棄と同時にアプリも終了する、この形がいちばん美しいと思う。
326 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 21:40:30 ID:fyQ9eFTJ] >>325 シングルスレッドであれば、確かに良いアイディアだと思う。
327 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 21:43:08 ID:WW1gkqvT] そこまでやる必要あるか?
328 名前:名前は開発中のものです。 mailto:sage [2008/12/15(月) 23:22:35 ID:A6pVWDv7] >>326 中でタスクマネージャー的なものでCPU毎に負荷分散させているかもしれんぞ?
329 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 00:20:42 ID:fzHt/ZSS] >>325 のやりかたにどこかまずいところあるの?
330 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 00:26:55 ID:JBSSxUHl] >>324 用語が適当すぎるよな。 メモリを占拠した実体→「オブジェクト」 コンパイルして出来るファイル→「オブジェクト」 自分自身で処理させる論理機構→「オブジェクト」 名前付けたやつちょっとツラ貸せっていうか 昔、書籍読んだときさっぱり意味わからんかったぜ・・
331 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 00:44:36 ID:o3pFEybH] メモリを占拠した実体ってインスタンスのこと?
332 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 01:58:01 ID:r2TMQqJU] 変数じゃないの?変数もオブジェクトだよね
333 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 04:02:55 ID:dNyohwYS] >324はもっと誉められていいと思う
334 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 11:37:43 ID:IA9CyF+N] 昔読んだ本には、OOPは オブエクとは「物」と訳される。曖昧さの象徴である。 頭の中でイメージしなさい。 物と呼ばれる、段ボール箱「みかん箱」がたくさんある。 みかん箱の中身は隠されている、知らなくて良い。 みかん箱を紐で結ぶ事が「プログラム」である。 みかん箱には切替スイッチが付いている、それで位置、色、大きさが変化する。 みかん箱が「オブジェクト」である。
335 名前:名前は開発中のものです。 mailto:sage [2008/12/16(火) 14:57:03 ID:j+OyGE8J] 基本的にOOやマイノリティ言語のウンチクや自分語りはスレ違いだな
336 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 01:37:25 ID:SDA7SaR9] >>334 簡単に言うと バカでも切り替えスイッチをポチって押せば変化する事が出来る。 けどその変化する「仕組み」を理解する必要は無い。 って事? オブジェクト指向あんまよく分からないけど、そうなると定数#defineって簡単なオブジェクト指向に入るの? 例えば #define SPEED 25//数値を変えると速度が変えられます。 ってあったら数字を変えるだけで変化が実装できるし。 なんか違うかw
337 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 02:09:42 ID:adQIUXL6] >>336 それだけだとただのブラックボックス化。 OOの一部ではあるけどCの関数だってブラックボックスでしょ?
338 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 02:33:05 ID:S1ZUobQv] グラフィック表示させる関数いろいろあるじゃない DrawGraphとかDrawTurnGraphとかDrawExtendGraphとかDrawRotaGraphとかDrawRotaGraph2とかDrawModiGraphとか あれみんな同じ重さなのかな あと、やっぱ画像の大きさと重さにも関係あるのかな あと、同じ四角のグラを表示させるのでもその四角のグラ用意して読み込んで表示させるのと DrawBoxで表示させるとでは重さは変わらないのかな
339 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 02:38:22 ID:S1ZUobQv] 自分でOO使ってゲーム作ろうとすると結局グローバル多用したりパブリック多用しちまうんだよなあ
340 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 02:53:08 ID:dezoAnwU] >>336 >>337 ttp://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
341 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 02:59:26 ID:dezoAnwU] >>338 自分で実際に比べてみればいいんじゃね
342 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 03:20:54 ID:adQIUXL6] >>338 ”重さ”ってなんだ?^^; ソース見てベンチ測って見ればいいじゃん。
343 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 06:22:20 ID:S1ZUobQv] なるほど その発想はなかったわ そんなこといままでしたことなかったからな 面倒臭さと相談してやるかどうか考えてみる
344 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 07:31:49 ID:dezoAnwU] >>343 やるならGetNowHiPerformanceCount()を使うのはどうだ? で、計測した方法と結果をここに書けば聞きっぱなしじゃなく他のやつの参考にもなる
345 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 08:18:15 ID:/BQwBqZh] DXライブラリでスムーズに最大値合成できませんかね? 「画像を減算合成→重ねて加算合成」で実装すると、色深度が16ビットの時汚くなるし、描画コストも倍になるんですが……
346 名前:名前は開発中のものです。 mailto:sage [2008/12/17(水) 20:28:28 ID:S1ZUobQv] VC6.0でLONGLONG型表示させるには%I64dでよかったかな
347 名前:名前は開発中のものです。 mailto:sage [2008/12/18(木) 10:36:19 ID:Gli++Azx] sprintfの話? __int64 を使うならそれだね。
348 名前:名前は開発中のものです。 mailto:sage [2008/12/22(月) 14:30:15 ID:3lSGgVQC] DXライブラリいいね! DXライブラリ3Dとは別ものなのかね?
349 名前:名前は開発中のものです。 mailto:sage [2008/12/22(月) 14:38:38 ID:fWgsLNUU] 3Dの方は派生verだな
350 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 10:53:03 ID:0Fgrfb5X] ゲームプログラムってMSXのころBASICでやってた程度だけど DirectXっつーやつはすごいな ダブルバッファリングっつーのがあれば MSXのころ悩んでたことがほとんど悩まなくていいじゃんね。 スクロールすら画像を移動するだけって最強すぎ。
351 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 12:05:58 ID:UbzH2xVf] >>350 ちょっ、MSXの頃だってダブルバッファリングしてたっつうのw MSXはページ切り替えできたから、最高に楽だったわ まあ、ハードウェアスクロールがあればもっと良かったが仕方ない
352 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 12:16:16 ID:0Fgrfb5X] >>351 そうか それはすまんかった あー。そういえばあったような気がしないでもないな。 でも俺の技術では処理速度が遅くてスプライトを動かす程度しかできなかった スクロールとかもってのはか。
353 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 15:26:44 ID:9N5u30T9] してたっけ。 もう覚えてないやw
354 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 16:45:08 ID:SQBujvLn] つーか、毎回全画面書き換えに耐えられないからページ切り替えはヘルプ画面とかで 利用してた気がしないでもないが。
355 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 17:12:48 ID:VOrvPW1P] タイトル画面を一瞬で表示するために使ってた。 あとはAVGの絵や3D迷路の表示とか。 アクション系のゲームには使わなかったな。
356 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 17:42:12 ID:1h1OeV87] ページを切り替えないと、 ロゴとかが生成される様子が眺められるんだよな。あれはあれで楽しかった。
357 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 17:47:08 ID:0Fgrfb5X] やっぱりいろいろ工夫する必要あったよね。 でもDXライブラリ使ったらそんなことまったく考えなくてよかったから カルチャーショックだった。
358 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 19:15:26 ID:5et0/vdD] 流石に時代は変わったわ。 ま、MSXBASICのノリでかる〜く作っちゃえ。
359 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 20:09:58 ID:LP/OttsW] なんだこの40代スレ
360 名前:名前は開発中のものです。 mailto:sage [2008/12/23(火) 22:47:31 ID:fMIdyvOB] How many pages ? ■
361 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 00:56:47 ID:DPn+CnyU] MSXが導入されて、それまでのマシンで頻発してた 「雑誌掲載のソースコードを打ち込んでも自分のマシンだと動かない」っていうのが 少なくなったって印象があったなあ。 まあ、MSX自体のバージョンアップがあって、その栄光も一瞬だったんですけどね! >359 まだ20代の真ん中くらいだよ!
362 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 01:58:38 ID:fELrH+/v] Windowsが導入されて、 「自分で作ったプログラムが他人のPCでは動かない」っていうのが 少なくなった…………かな?
363 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 05:58:03 ID:IOaM1VJp] 昔はスペックのわりにマシンも高価だったし CPUやビデオをアップグレードするには、PCをまるごと買い換えるのが基本だったり お殿様商売の時代だったなあ
364 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 06:59:35 ID:S9NW4iC4] >>350 >>351 MSX1なのか2なのか2+なのかターボRなのかどのスクリーンモードなのかで話が違ってくるし ここはDirectXのスレじゃなくDXライブラリのスレだぜ!
365 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 09:24:20 ID:WpOVuCI5] VECTOR3 hoge; hoge = mL.GetCameraEyePoint(); としてVECTOR3の中身をとりだしたいのですが hoge.x とかいうような形でとりだせないものでしょうか?
366 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 09:43:56 ID:WpOVuCI5] VECTOR3 cc; cc.x=5; mL.printf("cc.x=%d", cc.x); としてもcc.x=0って表示されてしまいます。
367 名前:名前は開発中のものです。 mailto:sage [2008/12/24(水) 09:51:25 ID:WpOVuCI5] すみません。 mL.printf("cc.x=%f", cc.x); にしたら表示されました。
368 名前:名前は開発中のものです。 mailto:sage [2008/12/28(日) 11:21:41 ID:DBaYT0uR] DXライブラリの描画をウィンドウハンドルを渡して とあるウィンドウ内に表示することはできないでしょうか? こんな感じで blogs.wankuma.com/yo/archive/2008/01/25/119183.aspx
369 名前:名前は開発中のものです。 mailto:sage [2009/01/04(日) 19:04:03 ID:X40+Kh+H] 更新が止まってるようだけど DXライブラリ3Dって完成したの?
370 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 13:47:48 ID:hCfaSDI/] 失礼ですが質問です。 DXライブラリでプログラムを作って起動し、終了させたのですが、 なぜかウィンドウは消えてもタスクバーに"DxLib"が残ってしまいます。 閉じようと何度も試しましたが消えてくれません(タスクマネージャでもダメ)。 以前同じことが起こった時はパソコンの電源をスイッチから直接切らないといけませんでした。 何か解決策はないでしょうか。 このトラブルが発生した時は自分の失敗で無限ループを脱せず、 ツールバーのデバッグの停止を使って終了させました。 たぶん原因はこれだと思います。
371 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 14:31:31 ID:etDOrpmF] DxLib_End() を呼ばなかったからに1票
372 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 15:06:35 ID:hCfaSDI/] >>371 一応プログラムには書いてありますが、 その無限ループが発生したループ内では通ってないと思います。 これが原因なのでしょうか。 しかしDxLib_End()を通ると即プログラム終了だと思っていたのですが・・・
373 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 15:15:38 ID:aPIdrXEx] DxLib_End()はライブラリの終了であって、 ちゃんとその後ループから抜けてプログラム自体終了(WinMainからreturn)してるの?
374 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 15:16:28 ID:va+Hleat] >何か解決策はないでしょうか >たぶん原因はこれだと思います。 >これが原因なのでしょうか。 ソースも晒さず、これだ、あれだと聞き返されても返答が難しいよね >失礼ですが質問です。 失礼だと思ったので、回答は出来かねます
375 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 16:13:33 ID:hCfaSDI/] >>374 私に誠意が足りませんでした。申し訳ございません。 どう書けばよいのか分からないのですが、 WINMAINの中でreturnさせる直前にDxLib_End()を置いています。 DxLib_End()は一度限りでいいと思っていましたがもしかして違ったいたのでしょうか。 私が尋ねたかったのは、プログラムの起動中、 もしくは無限ループで抜け出せない時にデバッグの停止を行うと、 上述のトラブルが発生するのでしょうか、ということです。 分かりづらくて本当に申し訳ございません。 ソースに関しては、プログラムの内容について尋ねていたつもりではなかったため、 晒さずに漠然とした質問になってしまいました。この点に関しても私に落ち度がありました。 抜粋するのが適当だとは思いますが、ソースを全部晒しておきます。 ttp://www6.uploader.jp/dl/falljohn/falljohn_uljp00026.zip.html ・・・喧嘩腰に見えるorz 敬語って難しいです。
376 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 16:20:42 ID:hCfaSDI/] これではただの丸投げですねorz int WINAPI WINMAIN( 略 ){ (ここにプロトタイプ宣言した関数) ←ここの中で無限ループが発生している DxLib_End(); return 0; } という風にはしています。 ソースでは一応ですがループを自分で抜けられるようには少し変えています。
377 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 18:20:18 ID:P66gcfVh] ソースのヒドさがなんか好感もてるなw >(ここにプロトタイプ宣言した関数) ←ここの中で無限ループが発生している > >DxLib_End(); それだと、 そのループから処理が抜けない限り、絶対にDxLib_End()には辿り着かない そんでデバッグツールでの停止ではもちろんDxLib_End()が呼ばれず、それが問題だというのは一応あってるかもしれない
378 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 19:02:24 ID:KsfcQKrh] Flashのムービークリップや、 JavaScriptのsetIntervalのように 毎フレーム実行させるようにセット・解除できるような機能はないでしょうか?
379 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 23:22:56 ID:etDOrpmF] >>376 ソース見るのだるいから見ないが、 ループを抜けられるようにしてあるなら、ループを抜けてみてプロセスが残ってないか確かめればいいじゃないか。 プロセスがしっかり終了してればDxLib_End()が呼ばれてなくてそれが問題だったって分かるんじゃないか?まぁ、これだけじゃそうとも限らないが。 それでもし終了できていたらDxLib_End()を書いたものと書かないものとを比べればちゃんと分かるが。 で、それが分かればおのずと質問に答えられると思うが。 ただ、ProcessMessage()だっけ?で処理してくれるような終了の仕方(ってある?)の場合には、そこらをしっかり書けばちゃんと終了できると思うが。
380 名前:名前は開発中のものです。 mailto:sage [2009/01/05(月) 23:59:30 ID:V4nq/52k] >>376 while(CheckHitKey(KEY_INPUT_SPACE)==0){ battle(); WaitKey(); } ScreenFlip(); WaitKey(); DxLib_End(); return 0; } これだとProcessMessageで-1引いてもループ抜けられないような気がする。 whileの条件式にProcessMessageの判定加えたらいいんでは。 あと抜けた後のWaitKeyは、強制終了後も参照されてしまうのでやめたほうがいい。
381 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 00:18:40 ID:F/Rau1w+] >毎フレーム実行させるようにセット・解除できるような機能はないでしょうか? 何を毎フレーム実行させたいんだ? というか質問は一つづつにしろよ
382 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 07:35:09 ID:Oinf+8tR] >>381 情報が足りませんでした。申し訳ありません。 JavaScriptでは、 var set = setInterval(function(){ 〜〜処理〜〜 }, 1); のようにすると、1ミリ秒ごとにfunctionを呼び出すことができます。 また、clearInterval(set);で解除することもできます。 同じように毎フレーム実行させることはできるでしょうか。 whileに全て入れるのが面倒なのです。
383 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 08:50:13 ID:35IX/qYC] >>379 ,380 アドバイスありがとうございます。 ProcessMessage()を完全に忘れていました。 まだまだ基本がなっていないようなので、しばらくROMって学んでいこうと思います。
384 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 09:59:47 ID:eUx/xd8R] >>382 どうも、聞きたいことがよく分からん。 while文に入れるのが面倒なほどに大量に関数があるのか? 複数の関数を一つの関数の中にまとめて、まとめた関数をwhile文の中においておくってのじゃダメなんか? それとも、while文に全て入れるのが面倒じゃなくて、 フレーム管理とかプログラムの状態遷移が分からないってことか? ってか、それはライブラリというより言語の使用じゃないか? もし仮にDxライブラリで出来たとしても、登録、解除のし忘れとかでバグの原因になりそうに思えるんだが。
385 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 11:50:37 ID:WsDU+BU3] 設計の問題であってDXライブラリとは関係ないな for (int i = 0; i < enemyCount; i++) enemy[i].Update(); こういうようなことを言ってるの?
386 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 15:00:44 ID:Oinf+8tR] >>384 whileに全て入れるのが面倒に感じていましたが、言われてみるとそうですね。 >>385 毎フレーム実行させるという意味でこちらにきましたが、観点がずれていたようです。 while文の中にforループを入れるという発想はありませんでした。試行錯誤してみようと思います。ありがとうございました。
387 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 15:06:41 ID:WsDU+BU3] >>385 みたいなのって定石だから 試行錯誤するよりも初心者サイトでも見て素直に真似した方がいいよ
388 名前:名前は開発中のものです。 mailto:sage [2009/01/06(火) 20:56:28 ID:Nr8kFssc] >>377 少なくともVSの「デバッグの停止」ならDxLib_End()が呼ばれなかろうとなんだろうとちゃんとリソースを解放してくれるはず。 >>370 がいつまでも終了しなかったのはexeを直接起動したかリリースビルドだったのでは? >>380 WaitKey()は別に問題ないよ。 あとScreenFlip()がWhileの外にあったら画面更新されないから中へ。
389 名前:名前は開発中のものです。 mailto:sage [2009/01/11(日) 09:44:15 ID:fWlpK7Co] DXライブラリを使用つつ、DirectXを直接使用することは出来ないでしょうか? ○○->(うんたらかんたら) という処理が入っていると、エラーが発生して終了してしまいます。
390 名前:名前は開発中のものです。 mailto:sage [2009/01/11(日) 11:16:24 ID:yJOODiUh] >389 その例文だと全く意味が伝わらない
391 名前:名前は開発中のものです。 mailto:sage [2009/01/11(日) 14:03:14 ID:fWlpK7Co] >>390 わかり難くてすいません…… DirectXを直に使いたい所があるので以下のコードを追加し呼び出した所強制終了が発生したので、 やはりDXライブラリを使用しながら直接DirectXを使う事は難しいのでしょうか? #include <d3d8.h> void aaa(){ LPDIRECT3DDEVICE8 FogDev; D3DCOLOR FogCol; float FogStart; float FogEnd; FogCol=0xffffff; FogStart=100; FogEnd=300; //この中をコメントアウトすればエラー無し //逆に一つでもあるとエラーで落ちてしまう…… //================================================ FogDev->SetRenderState(D3DRS_FOGCOLOR,FogCol); FogDev->SetRenderState(D3DRS_FOGSTART,*((DWORD*)&FogStart)); FogDev->SetRenderState(D3DRS_FOGEND,*((DWORD*)&FogEnd)); FogDev->SetRenderState(D3DRS_FOGVERTEXMODE,D3DFOG_LINEAR); FogDev -> SetRenderState(D3DRS_FOGENABLE,true); //================================================ }
392 名前:名前は開発中のものです。 mailto:sage [2009/01/11(日) 14:50:36 ID:2fY4/RNq] 質問ですが、ウィンドウモードにした時の左上のウィンドウアイコンは変更出来ますか?
393 名前:名前は開発中のものです。 mailto:sage [2009/01/11(日) 16:25:19 ID:rRSsOCCS] >>391 参照エラーかな? DXライブラリ側でLPDIRECT3DDEVICE8って持ってなかったっけ? と無責任な事言ってみる。 DXライブラリのソース確認してみて。 >>392 出来るよん
394 名前:名前は開発中のものです。 mailto:sage [2009/01/11(日) 18:28:35 ID:fWlpK7Co] >>393 ヘッダファイルを確認した所、LPDIRECT3DDEVICE7に関しての記述はみられましたが、 LPDIRECT3DDEVICE8についての記述はありませんでした。 ライブラリ初期化の前に読んだ所起動すらしなかったので、やっぱりDXライブラリとの競合ですかね……
395 名前:名前は開発中のものです。 mailto:sage [2009/01/11(日) 20:07:47 ID:fWlpK7Co] どうやら単純にコードが悪かった様です。 スレ汚し失礼しました……
396 名前:名前は開発中のものです。 mailto:sage [2009/01/16(金) 16:45:35 ID:EID2Tgc4] 前うpして感想頂いて、とてもやる気が出たので、 こんな感じの体験版となりました。 ttp://tikuwa.net/file/up7821.zip.html DLKey:dx
397 名前:名前は開発中のものです。 mailto:sage [2009/01/16(金) 23:45:16 ID:c/8VRMs/] 頑張ってるじゃん BGMやSEも自作? 引用があれば著作権等の明記はしっかりしておいた方が良いよ
398 名前:名前は開発中のものです。 [2009/01/16(金) 23:47:43 ID:iRSkofRl] DXライブラリ3Dのサイトが消えてるな
399 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 00:09:20 ID:zPKek+/O] ほんとだ、今見てみたら消えてるな
400 名前:名前は開発中のものです。 [2009/01/17(土) 00:17:49 ID:h2yGMjkV] DXライブラリでタイトルバー消すことって出来る? イメージ的にはこういうものを作りたいんだけど www.geocities.jp/tjschallenger/TJS0320.html www.geocities.jp/tjschallenger/img/TJS031701.png ↓ www.geocities.jp/tjschallenger/img/TJS000301.png
401 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 00:30:31 ID:r/BmSdjn] >>400 ttp://studiokingyo.fc2web.com/dxlib/kaibou/k_shiyou.html で紹介されてる方法で駄目なら、ちょっと工夫が要る気がする
402 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 01:42:14 ID:A53qKgs6] >>397 自作なので大丈夫かとは思います。
403 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 01:46:05 ID:hNEzfB40] 自作なのか……すげぇ。
404 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 01:57:18 ID:A53qKgs6] あ、DXライブラリとPNG読み込み機能の著作権表記してない…これはマズったかも…。
405 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 09:58:07 ID:OLTrE10N] >396 すげえ どんどん敵が固くなるw 敵がワイドショット撃ってくるあたりから先にいけん
406 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 10:33:37 ID:POC77fOB] >396 相変わらず難し過ぎる……w ところでなんかボスのライフが下がり切らない内に倒せたんだけど。制限時間? あとグレイズタイプって何かと思ったらサイヴァリアなのね。
407 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 11:55:31 ID:A53qKgs6] >>403 どれも芋臭い曲ばかりですけどね…。 >>405 殆ど自機狙いなので直前に避けるとやりやすいと思います。 >>406 サイヴァリアの快感を再現してみたかったんです。 ボスはかすりで永遠に稼げるのと、ショット弱体化の対策として、 ワインダーを放ち終えた2分で自滅するようにしてみました。
408 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 13:56:30 ID:f9VOjqEO] ループ前にメニューバー作ってループの命令に解像度変更機能を書いてみたんだが、 どうもフルスクリーンだけ正常動作しない 一応、ソース書いておく if(CheckMenuItemSelect_ID( 14)){ //起動時、フルスクリーン化 ChangeWindowMode( FALSE ) ; //フルスクリーンモードで起動 MAP_W = 640-SPAN_LR*2 ; SPAN_LR =128; SetGraphMode( 1024 , 768 , 32 ) ; SetMenuItemMark_ID(11, MENUITEM_MARK_NONE); SetMenuItemMark_ID(12, MENUITEM_MARK_NONE); SetMenuItemMark_ID(13, MENUITEM_MARK_NONE); SetMenuItemMark_ID(14, MENUITEM_MARK_CHECK); //SetAlwaysRunFlag(TRUE) ;//ウインドウがアクティブではない状態でも処理を続行するか SetDrawScreen( DX_SCREEN_BACK ) ; // 描画先画面を裏画面にセット } 文字は表示されてもグラフィックは読み込まれない 左上隅に表示されるんだが、自分は中央拡大描画を求めている
409 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 14:27:27 ID:CHF9ChFj] >>404 お前何か勘違いしてないか?知識なんて使って減るもんじゃないから只だと思ってんだろ? 人に物を訊くってのがどういう事だか、自覚してる? 知識ってのはな、社会人に取って金と同じく貴重な財産なんだよ。使っても減らないけど、教えたら広まった分だけ価値が下がる。それを分けてくれって言ってんの自分でわかってる? 社会で必要とされる知識ってのはな、本になんか載ってない事ばかりなんだよ。全部人から人へ、直接のコミュニケーションを介して伝わって来たモンなんだ。 そういうノウハウを分けてもらう申し訳無さみたいな物が、伝わって来ないんだよ。お前の態度からは。 猿だって仲間から餌を分けてもらう時は申し訳無さそうな顔するんだよ。ヘラヘラ笑いながら近づいてったら殴り殺されんぞ。 猿だったら今頃とっくに死んでんだよお前。そんな態度で今まで。何回も言ったよな。謝る時は申し訳無さそうな顔をしろって。 そういう学校じゃ受けられない教育を受けておきながら、社会人を経験しなきゃ得られない知識を貰っておきながら、 何にも生かせてないんだよ今のお前は。学生のサークルごっこじゃないんだから。もっと四六時中危機感を持って生きてなきゃ駄目だよ。いい加減いつまで学生気分じゃ。
410 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 14:35:00 ID:r/BmSdjn] 誤爆なのかそうでないのか……w
411 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 15:00:14 ID:A53qKgs6] >いい加減いつまでも学生気分じゃ。 耳が痛い話です。
412 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 15:06:33 ID:B1CiFUTT] 人生一勝勉強です。
413 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 16:00:07 ID:IVDG90gp] アンカミスだろw
414 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 16:46:40 ID:UCl/dEbD] ボクは社会人になってから学生時代以上に学生気分です。
415 名前:名前は開発中のものです。 [2009/01/17(土) 23:46:21 ID:h2yGMjkV] ウインドウモードで起動して マウスの左クリックを監視するようにしました その際、ウインドウの範囲外をクリックしてもマウスの左クリックを認識してしまいます その解決策として ウインドウの左上の座標(x,y)からWindowの大きさ(X+width,Y+height)までの間でクリックされた時のみクリックを監視するという方法をとろうと思っています そこで質問なのですが ウインドウの左上の座標を取得する関数は存在するのでしょうか? また、無い場合は何か他に代用できる関数は標準ライブラリなんかに入っているでしょうか? あと、ウインドウがアクティブかどうか判断する関数ももしあったら教えてください 一応調べたのですがヒットしなかったためよろしくお願いします
416 名前:名前は開発中のものです。 mailto:sage [2009/01/17(土) 23:53:38 ID:m/2DoB9T] 全部Win32APIにある
417 名前:名前は開発中のものです。 [2009/01/17(土) 23:57:48 ID:h2yGMjkV] >>416 ありがとうございます見つかりました 下のは GetActiveWindow() でいけそうですね 上も調べてみます。ありがとうございました
418 名前:名前は開発中のものです。 [2009/01/18(日) 01:29:33 ID:W8VFm9RV] 度々すいません >>415 はアドバイスのお陰で全て解決しました ところで、作成したexeを起動するとLog.txtというものができるのですがこれは仕様なのでしょうか? logファイルを作成しないように設定することは出来ないのでしょうか? よろしくお願いします
419 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 01:46:03 ID:bv5ORrRe] リファレンスを log で検索してみた?
420 名前:名前は開発中のものです。 [2009/01/18(日) 19:14:35 ID:d7+8UZEG] Dx_Lib() より前でSetOutApplicationLogValidFlagを呼びださなければなら無かったのですね 解決しましたありがとうございました
421 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 19:22:47 ID:Dn7rF8in] dxlibって英語の使い方が変だよね LogValidとか
422 名前:名前は開発中のものです。 [2009/01/18(日) 20:26:55 ID:d7+8UZEG] もしかしてめちゃくちゃ初歩なのかもしれないけど 他のツールで作ったソフトの内部でDXライブラリを呼び出すことって出来るんですか? 例えば、ノベルゲーム作成ツールでゲームを作って、ところどころでDXライブラリで作ったゲームを組み込む みたいな感じで ノベルのほうで普通にDXライブラリ製のソフトを呼ぶと窓が起動してしまいますよね? ノベルのほうと同じ窓でゲームを実行することってできないのでしょうか? 意味がよく分からなかったらすいません
423 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 20:58:55 ID:N4guzxX8] たぶん無理だと思うが
424 名前:名前は開発中のものです。 [2009/01/18(日) 21:03:33 ID:BZ0GBkU2] >>422 何が言いたいのかはわかるけど、残念ながら恐らく不可能。 両方でしっかりデータの受け渡しができれば、携帯アプリの前編後編みたいにすることは出来るかも知れないけど、 現存のツールではそこまでの機能は無いと思うし……。
425 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 21:11:32 ID:Dn7rF8in] プロセス二つ作ってパイプで通信すればいいじゃない
426 名前:名前は開発中のものです。 [2009/01/18(日) 21:29:03 ID:d7+8UZEG] >>423 ,424 そうですか・・・ あまり知識無いんですけど、描画先のウィンドウハンドル(ここではノベゲー)を取得して、内部でDXライブラリ製のソフトを呼び出した時 ウインドウを新規で作らず、いまあるウインドウを描画先に指定(取得したハンドルを用い)みたいなことができれば可能なのかな? よくわからないorz >>425 具体的にはどういうことでしょうか? ぐぐったら分かるかな アドバイスありがとうございます
427 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 21:39:59 ID:GlhQpd6d] プラグイン形式的なDLLを作成すれば可能
428 名前:名前は開発中のものです。 [2009/01/18(日) 22:57:46 ID:d7+8UZEG] >>427 ありがとうございます やることとしては>>426 に書いたとおり >描画先のウィンドウハンドル(ここではノベゲー)を取得して、内部でDXライブラリ製のソフトを呼び出した時 >ウインドウを新規で作らず、いまあるウインドウを描画先に指定(取得したハンドルを用い)みたいなことができれば可能なのかな? 描画先を既存のウィンドウにすればいいんですよね これってどうやるんだろう・・・・
429 名前:名前は開発中のものです。 mailto:sage [2009/01/18(日) 23:10:15 ID:3xnYsDJW] >>422 できるぞ、(ただし、元のプログラムが自作かせめて、DLLを使えるのが前提だが。) >>426 >ウインドウを新規で作らず、いまあるウインドウを描画先に指定(取得したハンドルを用い)みたいなこと・・・・ は、難しいと思う。 見た目的には、同等の事も可能だと思うが、実際にそのウィンドウに・…はややこしいと思う。 (内部的にその元アプリがどんな事してるか次第だけど、DXlib使うとDX内処理もあるから フック掛けて完璧に使えるとは思えないから。) >>425 じゃないけど、参考になりそうな。 ttp://funini.com/kei/vs/named_pipes.shtml ttp://www.fides.dti.ne.jp/~tokai/vc/vcpipe.html ttp://msdn.microsoft.com/ja-jp/library/cc430103.aspx ttp://msdn.microsoft.com/ja-jp/library/cc429587.aspx ttp://msdn.microsoft.com/ja-jp/library/cc429021.aspx ttp://www.02.246.ne.jp/~torutk/cxx/sharedmemory/win32_shmem.html ttp://www.alpha-net.ne.jp/users2/uk413/vc/VCT_FileMapping.html
430 名前:名前は開発中のものです。 [2009/01/18(日) 23:14:26 ID:d7+8UZEG] >>429 ベースプログラムは吉里吉里かSystem4.0を考えてるので多分dllの読み込みは可能かとも居ます 実際色々プラグイン公開されてるし 色々ありがとうございます 調べてみます
431 名前:名前は開発中のものです。 mailto:sage [2009/01/19(月) 10:34:52 ID:X5SZs/u2] >>396 亀だがやってみた とりあえず途中から敵固すぎワロタ ボンバーなしじゃ無理な気がww 俺のシューティングは随分昔にシューティングスレに投下してから弾幕に凝っててあんまり見た目の進歩がないぜ
432 名前:名前は開発中のものです。 mailto:sage [2009/01/19(月) 17:31:41 ID:yZM1xSvo] >>431 固さは面とレベルの兼ね合いにしたいと思います。 最近見かけばかりに力を入れてて肝心のゲーム内容は…。
433 名前:名前は開発中のものです。 mailto:sage [2009/01/19(月) 17:42:09 ID:IkXU3fd8] 星のパーティクルがすてき。
434 名前:名前は開発中のものです。 mailto:sage [2009/01/19(月) 20:32:05 ID:j6ExWMod] シューティングってこんなに作るの難しかったんだな ゼビウスみたいのなら楽勝だろとか思ってました、ごめんなさい
435 名前:名前は開発中のものです。 mailto:sage [2009/01/20(火) 11:58:06 ID:dMyWKq6o] 初心者です 質問なのですが、ゲームのBGMで 最初に戻って繰り返すときBGMをとぎれてしまわないようにする方法はありますでしょうか 例えばRPGの戦闘音楽のようにずっと放置していてもきれいにループするような方法です
436 名前:名前は開発中のものです。 mailto:sage [2009/01/20(火) 12:40:01 ID:/e+EiVUH] 曲の途中で違和感のない位置に飛ばせばいいと思う。 俺はやったことないけど homepage2.nifty.com/natupaji/DxLib/function/dxfunc_sound.html#R8N13 これできれいにループするんじゃない?
437 名前:名前は開発中のものです。 mailto:sage [2009/01/20(火) 12:51:49 ID:dMyWKq6o] >>436 ありがとうございます!勉強してチャレンジしてみます!
438 名前:名前は開発中のものです。 mailto:sage [2009/01/20(火) 15:22:07 ID:A5DSi9Sd] >435 あと、姑息な手段で申し訳ないが MIDIのようにサイズを気にしなくて済むようなものなら、最初から10分続くファイルにしてしまうという手もある。
439 名前:名前は開発中のものです。 mailto:sage [2009/01/21(水) 22:18:20 ID:2s5lyHkK] PlaySoundMem()でループ再生フラグを指定すればいいよ。 >>435 がファイル形式を言ってないのでわからないけどwavなら綺麗にループする。
440 名前:名前は開発中のものです。 mailto:sage [2009/01/22(木) 15:31:01 ID:Xr8Aa3cY] >>439 たぶん>>435 が使っているファイルは曲の最初と最後が繋がってないやつなんだろう。 だから、普通にループ指定すると音が途切れずにループしない。 けど、市販ゲームでもこういうBGMあるし、俺は気にしないけどな
441 名前:名前は開発中のものです。 mailto:sage [2009/01/22(木) 17:11:41 ID:q+tQcJ7A] >>435 無音時間の全くない完全なシームレスループにしたい場合、下のページが参考になると思います。 ttp://www13.plala.or.jp/kymats/study/MULTIMEDIA/waveOut_multibuf.html API使わないといけないのとWAV限定ですが。
442 名前:名前は開発中のものです。 mailto:sage [2009/01/22(木) 17:15:00 ID:9/RQfEqV] >>441 FF10のジェクト戦みたいにボーカルいれた音楽をBGMとして使えそうだな すげえ
443 名前:名前は開発中のものです。 mailto:sage [2009/01/22(木) 17:34:21 ID:Bh2KGHfp] >>440 「最初に戻って」って書いてあるからなぁ。 でも途切れる方法が書いてないところが色んな憶測を呼ぶよね。 まぁここまでで解決方法出たと思うからいいんだけどさ…。
444 名前:名前は開発中のものです。 mailto:sage [2009/01/26(月) 16:05:31 ID:2mzhNCi2] DXライブラリ(2.25)のプロジェクトがコンパイルできない。 '/O2' と '/RTC1' は同時に指定できません ってコンパイルエラーが出る。 プロジェクトの設定でO2→Odにしてるんだけれども。 RTC1の方を切ればコンパイルできるんだけど、なんでだー!
445 名前:名前は開発中のものです。 mailto:sage [2009/01/30(金) 19:51:30 ID:Wy6ip41+] フルスクリーン化ではなく、ウィンドウモードでの最大化って どうやったらできるんでしょうか?
446 名前:名前は開発中のものです。 mailto:sage [2009/01/31(土) 06:27:02 ID:mi0nZoft] 起動時に設定ファイルなり引数なり読み込んで解像度変更させちゃえば?
447 名前:名前は開発中のものです。 mailto:sage [2009/01/31(土) 08:53:12 ID:dFEgAXD4] >>445 は画面サイズを可変にしたいということ? どこかにそれっぽいサンプルがあったような……。気のせいかな。
448 名前:名前は開発中のものです。 mailto:sage [2009/01/31(土) 09:07:06 ID:KRmQ80Gs] SetWindowSizeChangeEnableFlagで可変設定、 SetGraphModeで直接指定ができるね なんとかして使ってるモニタの解像度を取得して当て込めば出来るかも だけど処理速度は厳しいだろうな
449 名前:名前は開発中のものです。 mailto:sage [2009/01/31(土) 10:47:56 ID:rbcO49fB] ウィンドウのサイズを変えたいのじゃなくて 右上の最大化のボタンを押せば、標準的なアプリと同じような 動作にしたいです、 画面全体にきっちり広がって間違ってマウスでドラッグしても動かないような感じです
450 名前:名前は開発中のものです。 mailto:sage [2009/02/01(日) 00:40:50 ID:XJc1/NhO] えーと、それで、何がしたいの・・・?
451 名前:名前は開発中のものです。 mailto:sage [2009/02/01(日) 10:34:54 ID:lmI58fq8] >>449 普通にフルスクリーンモードじゃなくてウインドゥモードにすれば いいだけじゃないの? そういう関数あったと思うけど。
452 名前:名前は開発中のものです。 mailto:sage [2009/02/01(日) 12:40:27 ID:8EnnwsB0] デフォルトでは画面の端っこにマウスポインタを当ててもサイズは変えられないし 最大化ボタンも押すことができない これを変えたいってことなら サイズの手動変更の場合は>>448 あとはSetUseASyncChangeWindowModeFunction()で最大化ボタン有効化だと思うんだが ちょっとこっちの使い方が分からないorz
453 名前:名前は開発中のものです。 [2009/02/01(日) 22:16:17 ID:2n+Oqc2F] 縦シューを作ろうと思ってるんですが、 480x640で起動することってできますか?
454 名前:名前は開発中のものです。 [2009/02/01(日) 22:20:08 ID:90n+ELwG] >>453 homepage2.nifty.com/natupaji/DxLib/function/dxfunc_graph.html#R4N1
455 名前:名前は開発中のものです。 [2009/02/01(日) 22:30:43 ID:2n+Oqc2F] >>454 できた! ありがと^^ 起動時に640x480になってるのが気になるけど、まいっか
456 名前:名前は開発中のものです。 [2009/02/01(日) 22:34:51 ID:90n+ELwG] >>455 もっと早い段階で呼び出せば良いよ DxLib_lint()より上で呼べば最初からそのサイズになる
457 名前:名前は開発中のものです。 mailto:sage [2009/02/04(水) 01:44:28 ID:igrRGuw3] DXライブラリで同人ゲームを作ろうと思っています。 C++でプログラミングするにあたって、横スクロールアクション(マリオとかロックマンみたいな) の作り方のサンプルを紹介してるサイトってないですかね? ↓シューティングゲームについては四聖龍神録さんのページが非常に役に立ちました! dixq.net/rp/
458 名前:名前は開発中のものです。 mailto:sage [2009/02/04(水) 09:38:48 ID:2Cf0XhT+] >>457 公式HPのサンプル
459 名前:名前は開発中のものです。 mailto:sage [2009/02/04(水) 14:27:42 ID:CO3XfILg] 応用力の無いやつや
460 名前:名前は開発中のものです。 mailto:sage [2009/02/04(水) 16:43:08 ID:KduT8vdn] >>457 C++でのサンプルはどこにもない。と言い切っていい。 JAVAだが、考え方としてはいいかもしれないのでこれを見て、自分で考えてはどうか。 javagame.skr.jp/index.php?FrontPage これもC++ではないが、考え方としては(以下同文 itpro.nikkeibp.co.jp/article/COLUMN/20060228/231306/?ST=swd-tech やはり、自分で考えて試行錯誤するしかないのではと思う今日この頃
461 名前:名前は開発中のものです。 mailto:sage [2009/02/04(水) 21:32:21 ID:6meQrl/q] 最初はグローバル変数使いまくって 次に構造体をグローバルにして使いまくって 次に構造体をポインタで書き換えるようにして 引数に構造体のポインタがどんどん増えていき 次に各構造体の先頭のポインタをまとめた構造体をつくってそれを引数にしたんだけど だいたいみんなこんな感じ?
462 名前:457 mailto:sage [2009/02/04(水) 22:20:44 ID:igrRGuw3] >>458-460 レスサンクスです! >>460 まさにこういうページ探してました! 横スクロールと敵の制御とか参考になりまくりです。 言語は問わないんですが、STGの情報は多いのにACTはなかなか無かったので。 ↓自分でも探してたんですが専門学校(?)のゲームの作り方ページもよかったです。 rina.jpn.ph/~rance/directx8/ Web上だとなかなか情報が無いから、専門学校の 教科書が欲しいなんて思っちゃいました。笑
463 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 03:42:29 ID:GjXLMUdb] >>461 前から気になってはいたんだけど、構造体とかグローバルで使うのって何かまずいことでもあるの? ポインタにする利点をずぶの素人の俺にも分かり易く教えて欲しい。 引数で構造体を直に渡してなければ余り関係ない気がしてるんだけど。
464 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 07:27:08 ID:rTUW0rFP] グローバルな変数は、他で書き換えられるかもしれないことを いちいち考えないといけないんだよな プログラムの複雑さが増すので乱用は慎しめと言われてる
465 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 08:09:33 ID:ojur6QxZ] はっきり言ってしまえば、そのプログラムを自分しかさわらなくて、 注意して組む自身があるならグローバルでも問題ないと思う。
466 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 08:48:42 ID:9t4FKbe4] >>465 俺は、あえて 「昨日の自分は他人」だと思って、 可能な限り、必要性のない限り グローバル変数は使わない方がいいと思うけどね。 (特に、携帯機器とかメモリ節約とか求められてない時は余計に。) >>463 “普通の”ポインタの利点は、微妙だな。ただ、まだまだある所じゃ、速度的に値のコピーよりも 参照して行った方が効率が良かったり、処理の記述がしやすくなったり。 ただ、あるClassのポインタ(関数ポインタ含む)は処理の委譲に頻繁に利用される。 利点として、全体像が綺麗にできるし、コードの混雑が大きく減る。 cf.Strategy パターン Decorator パターン 双方向リスト 動的確保
467 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 09:31:40 ID:Qc5+f5Cj] >>463 グローバル構造体自体は普通に使うよ。 グローバルクラスが普通に使われるように。 C++においては構造体=クラスだからね。 問題は、構造体に使われるpublic変数なんだと思う。 GetXX(),SetXX()にすればいいって問題でもないとは思うけど、もしクラスならメンバ変数は基本的にみんなprivateでしょ?
468 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 10:35:01 ID:4io8tQ0w] 何言ってるかさっぱりわからん俺のソースは絶対他人には見せられんな。
469 名前:名前は開発中のものです。 mailto:sage [2009/02/05(木) 17:44:21 ID:B8Cz6uqn] >>463 461です 俺は今年からプログラミング初めた素人 まだグローバル変数使って困ったことはないけど 勉強しつつゲーム製作やってるから今はポインタ使って試してる 次はクラスってのを使ってみる予定
470 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:33:01 ID:O6HFVvT0] DxLibでaviを再生させる関数ってありますか???
471 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:35:30 ID:O6HFVvT0] >>470 すいません DXライブラリで検索したら即効見つかりました お騒がせしました
472 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 00:57:03 ID:O6HFVvT0] すいません 下のようなコードで何か問題ってありますでしょうか 動画が真っ黒の画像で再生されてしまいます test.aviはexeファイルと同じディレクトリにあります #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } PlayMovie( "test.avi" , 1 , DX_MOVIEPLAYTYPE_BCANCEL ) ; DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 }
473 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 08:46:48 ID:7KSAHxxq] >>472 原因を調べるにはまずどこがおかしいか調べようぜ PlayMovieの戻り値は調べた? まあおそらくtest.aviが開けないんだと思うけど。 exeと同じディレクトリでもカレントがそことは限らないよ、どうやって実行した? フルパスで指定してみるのがいいかもね
474 名前:名前は開発中のものです。 [2009/02/06(金) 10:04:24 ID:T3lftGPa] >>472 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } if(PlayMovie( "test.avi" , 1 , DX_MOVIEPLAYTYPE_BCANCEL ) ==-1) {MessageBox(NILL,"ファイルが開けません","読み込みエラー",MB_OK);} WaitKey(); DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 } こう変えて確認してみたら? PlayMovieは、ファイルの読み込みに失敗すると-1を返す(成功は0) もし、これでMessageBox表示されたら上手くファイル指定ができてないってこと もしかしたらコーデックなんかの問題もあるかもしれないけどそこは分からない あと、PlayMovieはそこでムービー停止するまで処理とまるんだっけ? そうじゃないならムービーの再生が終わるまで処理終わらないようにする工夫が必要 どれもこれもリファレンスにあるから一度目を通してね
475 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 10:36:49 ID:7KSAHxxq] つーかこれ公式のヘルプのサンプルそのまま貼り付けただけじゃないか。 これで問題ありますか?って、、、、 今後もサンプルがうごかないたびにコメントごとそのまま貼り付けるつもりか。
476 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 10:44:57 ID:RXpavouu] 公式ページにカレントディレクトリの説明がないからだろ フルパス指定を推奨しろよ
477 名前:名前は開発中のものです。 mailto:sage [2009/02/06(金) 22:13:54 ID:bune21hQ] 実行させてないけども、472のプログラムって一瞬で終わったりはしないのか・・
478 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:40:47 ID:9/tOLDQP] 一応、ムービーは最後まで流れたよ。 ファイルが無いときも黒画面のフルスクリーンまでいって帰ってくる
479 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 00:50:47 ID:XZUozGI6] >>472 音は鳴ってるの?
480 名前:472 mailto:sage [2009/02/07(土) 12:23:31 ID:m2CcO09N] すいません 解決しました 原因は動画のサイズが大きかったことでした 試しに400*300の小さい動画を再生したところ画面左端にきちんと表示されました
481 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 16:43:56 ID:5JGvk0Ld] ほー大きいと駄目なのか
482 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 18:57:56 ID:fLtGYl8p] 大きいってどれくらいだろう。
483 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 21:03:54 ID:lpCM/pFJ] 謎がふかまるばかりだ
484 名前:名前は開発中のものです。 mailto:sage [2009/02/07(土) 23:54:45 ID:winQ4pAR] 画面から一部はみ出てるから表示されないじゃね
485 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 20:19:32 ID:1pnOXqGt] 背景の画像と前景の人物画の輪郭をアンチエイリアスで 合成するにはどうしたらいいですか?
486 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 21:02:42 ID:r4CYwpcr] アルファブレンドの出番かな? ファイル名_a.拡張子で指定。プログラムは変更不要で元ファイルといっしょに読み込む。 グレースケール(白黒)で256階調。 0(黒)が完全透過で255(白)がマスク、中間値で半透明処理できる。
487 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 21:16:29 ID:hQLvxnkO] 前景に普通にアルファチャンネル付き24bit-PNG使うだけじゃなくて?
488 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 21:39:39 ID:kpyVvUs4] png扱えるならそれが一番楽だな
489 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 22:04:30 ID:1pnOXqGt] ありがとうございます アルファブレンド試してみました ファイル一つ用意するだけで出来たんですね 美しい描画に感動しました アルファチャンネル付きpngは今から作ってみます 作ったことないからグーグルから始めますが 今日中にがんばってみます
490 名前:名前は開発中のものです。 mailto:sage [2009/02/09(月) 22:37:00 ID:1pnOXqGt] アルファチャンネル付きpngすぐ出来た ありがとうございました
491 名前:名前は開発中のものです。 mailto:sage [2009/02/10(火) 01:17:10 ID:4F920hOP] 俺はもう何でもかんでもアルファチャンネル付きPNGだ。便利すぎ
492 名前:名前は開発中のものです。 mailto:sage [2009/02/10(火) 10:00:17 ID:XFgx+1B+] だな
493 名前:名前は開発中のものです。 mailto:sage [2009/02/10(火) 10:05:10 ID:rFLiGfwY] pngって使用制限あるんだっけ? pngを知ったら他の形式なんてとても使えたものじゃない。
494 名前:名前は開発中のものです。 mailto:sage [2009/02/10(火) 11:14:35 ID:vQYvbazz] スピードに問題はないの?<アルファチャンネル付きPNG
495 名前:名前は開発中のものです。 mailto:sage [2009/02/10(火) 20:29:18 ID:tnQHyXfF] 読み込んだあとは一緒だから全く問題ない
496 名前:名前は開発中のものです。 mailto:sage [2009/02/10(火) 22:37:01 ID:vQYvbazz] そうなんだ。 透過処理ってなんか重そうだから多用しないようにしてたんだけど、心配なかったのか。
497 名前:名前は開発中のものです。 mailto:sage [2009/02/11(水) 01:39:50 ID:EiHo01Mu] png使ったら著作権表記が必要じゃなかったっけ?
498 名前:名前は開発中のものです。 mailto:sage [2009/02/11(水) 02:00:10 ID:v+EsJNk0] pngはgifの特許がらみがウゼーって事で作られたものだから その辺の表記なんたらは何にも必要ないよ
499 名前:名前は開発中のものです。 mailto:sage [2009/02/11(水) 03:56:50 ID:abcckAid] pngそのものの著作権じゃなくて 読み込んで表示させるプログラムの著作権じゃない? >・下記の機能を使用した場合は、配布するソフトウエアのドキュメント等に各機能に応じた > 著作権表示を含めてください。 > > PNG 画像を読みこむ機能を使用した場合 > > libpng Copyright (c) 1998-2004 Glenn Randers-Pehrson. > zlib Copyright (C) 1995-2004 Jean-loup Gailly and Mark Adler. homepage2.nifty.com/natupaji/DxLib/dxlicense.html
500 名前:名前は開発中のものです。 mailto:sage [2009/02/11(水) 08:50:36 ID:swUZoApZ] >>496 >>495 はアルファブレンドとアルファチャンネル付きPNGが一緒ってことじゃないかな? 透過処理は普通の描画に比べたら遅いよ。
501 名前:名前は開発中のものです。 mailto:sage [2009/02/11(水) 09:51:46 ID:1w4T1utS] ああ、なるほど。 491がなんでもかんでもって言ってるから 普通の描画と同じくらい軽いのかと思ってしまった。
502 名前:名前は開発中のものです。 mailto:sage [2009/02/11(水) 10:55:48 ID:n8G83FSO] TGAだったら外部ライブラリ使ってないから著作権表記の必要はないよ 圧縮アルゴリズムが単純だからPNGよりファイルサイズが大きくなるけど・・・
503 名前:名前は開発中のものです。 mailto:sage [2009/02/11(水) 19:22:37 ID:AZ7K07ik] さっき何気なく3D版の公式見てみたら・・・
504 名前:名前は開発中のものです。 mailto:sage [2009/02/11(水) 19:36:20 ID:qrNBhwtd] 終了か
505 名前:名前は開発中のものです。 mailto:sage [2009/02/11(水) 21:30:38 ID:EO0e2yUS] 透過処理はそんなに重くないよ
506 名前:名前は開発中のものです。 mailto:sage [2009/02/12(木) 04:09:43 ID:T7mGdx78] 3D版まだ落とせるとこない?
507 名前:名前は開発中のものです。 mailto:sage [2009/02/12(木) 09:22:15 ID:g2cVI1Rq] 直リンで落とせるんでない?
508 名前:名前は開発中のものです。 mailto:sage [2009/02/12(木) 10:15:43 ID:S0rR+p5u] かゆい うま を思い出したwww作者どうなったんだw
509 名前:名前は開発中のものです。 mailto:sage [2009/02/12(木) 15:51:55 ID:T7mGdx78] ファイル名が分からない…
510 名前:名前は開発中のものです。 mailto:sage [2009/02/12(木) 19:27:06 ID:g2cVI1Rq] だいたいなんで今更3D版がほしいんだ?
511 名前:名前は開発中のものです。 mailto:sage [2009/02/12(木) 19:28:31 ID:V7VMrK+q] なにが今更なの?
512 名前:名前は開発中のものです。 mailto:sage [2009/02/12(木) 19:45:30 ID:g2cVI1Rq] 公式が死んでるのに今更そこまでしてほしがる理由は何だろうと単純に思った。
513 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 04:49:14 ID:qd9k9XJd] きっと、開発を引き継いでくれる猛者なんだと予想
514 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 08:52:43 ID:gm7Wlof8] "今更"って主観に左右されると思う
515 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 09:20:00 ID:Tj50RFPE] >>512 前に使ってて一時期離れてたとか DXライブラリの事を最近知ったなら今更とか関係ないし てか、なんでそな事を疑問に思うのか疑問だ
516 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 09:31:26 ID:gsDT3swS] ちょうどサイトが死ぬ頃にきたもんだから、何かこう「今更かよ!」的な印象を持ってしまった。 失礼した。
517 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 10:00:20 ID:KHzspSCY] んーー???
518 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 10:08:42 ID:Gs8dKfU5] 情弱死ねって事でしょ
519 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 13:24:47 ID:OFBqMPYi] とりあえず、webarchiveあたりからリンク引っ張ればいいじゃん
520 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 17:52:53 ID:gamtZzLZ] DXライブラリ初めてつかってみたんだけど、なかなかいいね。 面倒なDirectX初期化周りやレンダリング処理を全部任せられるのがすごく便利。 今まで何度も1人でゲーム作ろうとしてゲームのライブラリ化までで燃え尽きてたけど、いけそうな気がする。 ただ、メッセージプロシージャ周りを完全に独立させて、他に譲渡できればいいんだけど、 DirectXの特性上難しいのが残念かな。 ウィンドウモードでデバッグウィンドウ周りを実装してたときに感じた愚痴です。
521 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 19:27:10 ID:6Q+KDpbI] 3Dの方が更新されてたが、作者どうしちまったんだ?気でも違ったか?
522 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 19:33:25 ID:OFBqMPYi] 人生の方が狂ったんじゃ
523 名前:名前は開発中のものです。 [2009/02/13(金) 20:41:49 ID:Br6f/DrZ] 00o.sakura.ne.jp/index.html 3D版の作者のサイト、移転してたんだ
524 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 21:15:25 ID:vieAChNU] >>523 日記の内容からして もうDXライブラリの方は手をつけないんだろうか
525 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 21:54:45 ID:KHzspSCY] このスレ見てなかったっけ? そのうち書き込むんじゃない?
526 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 22:01:18 ID:6Q+KDpbI] >>523 ああ、移転だったのか。 あんなイカレた閉鎖文なんか載っけてどうしたのかと思ったよ。
527 名前:名前は開発中のものです。 mailto:sage [2009/02/13(金) 22:26:23 ID:Tj50RFPE] 要望に答えるのが日常になって自分の作りたい物に時間や気力を使えなくなったから 過去を全部捨てて仕切りなおしたって感じだな もうライブラリとかそう言うのは作っても公開しない気がする
528 名前:名前は開発中のものです。 mailto:sage [2009/02/14(土) 00:37:02 ID:vEcxeBnT] DXライブラリ3Dは公開される気配はなさそうだし、終了のお知らせか・・・
529 名前:名前は開発中のものです。 mailto:sage [2009/02/14(土) 02:11:46 ID:ioBOninz] まあこうなるとは思ってたよ DXライブラリ3Dのソース見てみたらモデルの扱いにD3DX使ってて まともなライブラリに至るにはまだまだ先の長い状態だったしな・・・
530 名前:名前は開発中のものです。 mailto:sage [2009/02/14(土) 13:24:54 ID:esml8/+n] いや、作者はどこか意志が弱そうだから、 また公開してくれるまで諦めるな。
531 名前:名前は開発中のものです。 mailto:sage [2009/02/16(月) 13:18:58 ID:xQ8BZc1p] 人様が作っている物をタダで利用させてもらってる以上、こういう事態は仕方ないと思うよ
532 名前:名前は開発中のものです。 [2009/02/16(月) 17:21:56 ID:2DsBHdnG] 今、3D版のサイト見たら DXライブラリ3Dファイナルパック というのが、公開されてるんだが fatalita.sakura.ne.jp/3DLib/
533 名前:名前は開発中のものです。 mailto:sage [2009/02/16(月) 17:48:01 ID:i1Y9wFn0] >>532 >※このサイトは2,3日以内に自動的に閉鎖されます このスレ見て一時的に公開?w
534 名前:名前は開発中のものです。 mailto:sage [2009/02/16(月) 18:15:06 ID:2i4RbFSc] でもこうやって出来る限りの配慮をしてくれるのはありがたい 非常に乙でした
535 名前:名前は開発中のものです。 mailto:sage [2009/02/16(月) 21:10:15 ID:yCP91q6a] とりあえずウィルススキャンはクリアした
536 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 14:12:08 ID:VEVhf4mN] てか自動的に閉鎖ってできるのか
537 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 15:16:32 ID:Zl2geQsR] 今北 関数リファレンスページにあるリンクされてない関数ってサンプルがないだけで使えるんだよね? SUGEEEE
538 名前:名前は開発中のものです。 [2009/02/17(火) 16:23:49 ID:5nIY3uJB] DXライブラリ3D作者 おつかれさま いろいろ勉強させていただきました
539 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 16:43:07 ID:vyYC8Vig] DXライブラリ3D辞めたのか。うーん。これからどうしよう。 SlimDXに行くかな
540 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 16:47:15 ID:gK6Z/ZXS] SlimDX使えるような人ならDXライブラリの世話になんかならんw .NET言語で書けること以外は生DirectXと同じだぞ
541 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 17:10:56 ID:nPVB/UbL] まあおかげDirectXのドキュメントが役に立つわけだがw
542 名前:名前は開発中のものです。 mailto:sage [2009/02/17(火) 20:02:40 ID:/uggH+y6] DXライブラリ3D作者ありがとう、感動した。 おつかれさまでした。
543 名前:名前は開発中のものです。 [2009/02/18(水) 01:28:08 ID:p5LpkikR] etGraphMode(800,600,32); if( DxLib_Init() == -1 ){return -1 ;} int t,g; g=LoadGraph("a.png",TRUE); SetDrawScreen(DX_SCREEN_BACK); for(t=0;t<150;t++){ DrawGraph(GetRand(800),GetRand(600),g,1); ScreenFlip(); WaitTimer(10); ProcessMessage(); } 単純に画像を全画面にランダム表示するプログラムなのだがここで問題が・・・ Radeon系のグラボで実行すると画面がおかしくなるんです SetScreenMemToVramFlagでグラホのメモリを使わない設定にするとまともに表示します DXライブラリはRadeonの相性悪いんでしょうか ちなみに実行したパソコンのグラボはラデX1950Proと3870で ドライババージョンは1.2.2545 38946です
544 名前:名前は開発中のものです。 [2009/02/18(水) 01:28:34 ID:p5LpkikR] 最初のSぬけてた
545 名前:名前は開発中のものです。 mailto:sage [2009/02/18(水) 02:19:01 ID:8ojm5TEP] 「おかしく」の内容がわからないけど たとえばSetGraphMode(640,480,16);にしても起こる?
546 名前:名前は開発中のものです。 [2009/02/18(水) 04:12:49 ID:p5LpkikR] >>545 色を変えてもちらつきます・・・どうやら色問題でもなさそうです で試行錯誤していろいろやってみたけど SetDrawScreen(DX_SCREEN_BACK); というの行を削除して 実行するとまともにちらつきがなく1枚ずつまともにきれいに表示された (理由はよくわからないけど・・・) あ 肝心なDXライブラリはVer2.25です
547 名前:名前は開発中のものです。 mailto:sage [2009/02/18(水) 07:25:00 ID:TxKBLHeJ] >>543 全文かいてないからどうおかしくなるのか分からないけど、それだとすぐに終わらない? SetGraphMode(800,600,32); if( DxLib_Init() == -1 ){return -1 ;} int t,g; g=LoadGraph("a.png",TRUE); SetDrawScreen(DX_SCREEN_BACK); while(ProcessMessage() == 0) { for(t=0;t<150;t++){ DrawGraph(GetRand(800),GetRand(600),g,1); } ScreenFlip(); } DxLib_End(); return 0; これでもだめ?
548 名前:名前は開発中のものです。 [2009/02/18(水) 08:16:18 ID:476p40bE] ラジオン自体、DirectXの規約にこだわり過ぎているからな テクスチャサイズは2の累乗とか特殊なウィンドウサイズに対応してないとか
549 名前:名前は開発中のものです。 [2009/02/18(水) 08:38:08 ID:p5LpkikR] >>547 すいません自己解決しました^^; どうやらDXライブラリのプログラム上ではなく ATI Catalystのグラフィック設定がおかしかったようです・・・ 3Dアンチエイリアス設定を「管理しているアプリケーション」を選択して 設定して実行すると 画面に残像現象がおきて変になるようです そこの設定を 2x4x6x(どれでもOK)を選択すればちゃんと表示されました
550 名前:名前は開発中のものです。 mailto:sage [2009/02/18(水) 19:23:35 ID:m9ZprRI/] ファイナルパック逃したああああああああああ
551 名前:名前は開発中のものです。 mailto:sage [2009/02/18(水) 19:41:11 ID:VJaNf5ax] >>550 ^q^9m >改変して二次公開したりしても別にかまいませんが、その際は二次公開の旨を分かる位置に掲載してください。 >なお、DXライブラリ3Dは著作権は原則フリー(常識の範囲内で)なので商用・非商用・自作ライブラリへの組み込み、 >全てにおいてあなたのやりたいようにやってください。 その内誰かうpしてくれるよw
552 名前:名前は開発中のものです。 [2009/02/18(水) 21:08:45 ID:CQ81txgw] >>550 うpロダにあげたよ >二次公開の旨を分かる位置に ミスったな 一応ここで二次公開って言っておけば大丈夫かな? uproda55.2ch-library.com/s/gogo000065.zip.shtml
553 名前:名前は開発中のものです。 mailto:sage [2009/02/18(水) 21:30:08 ID:VJaNf5ax] >>552 それは中身改変してる場合じゃね?>掲載
554 名前:名前は開発中のものです。 [2009/02/19(木) 07:50:51 ID:pIWtXiH1] 何故か3Dモデルがポリゴン欠けしてしまうよ
555 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 11:33:29 ID:f0/T9Pla] それ以前にさ、モデルを100分の1くらいに縮小して表示したら変なことにならないか? もうこれでずっと悩んでるんだが
556 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 15:13:01 ID:U9UHVYOh] ヒント 有限な計算精度
557 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 16:41:47 ID:4ok3CY5Z] 縮小するなら、縮小専用のモデル(ビルボでも可)を用意してあげれば?
558 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 19:45:08 ID:f0/T9Pla] どうしよう二人の言ってることがさっぱり分からん。 ニコ動に抵抗がなければ5:20あたりから見てくれないか。 ttp://www.nicovideo.jp/watch/sm6061026
559 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 19:51:00 ID:f0/T9Pla] ↑ログイン形式だったの忘れてた。聞かなかったことにしてくれ。
560 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 19:57:29 ID:qMcuPVNK] ライブラリ3DはDXアーカイブファイルとFileRead_系の関数が使えないのかああああああああああ
561 名前:名前は開発中のものです。 [2009/02/19(木) 20:18:13 ID:bxQhZGhK] File_Read系は #include<stdio.h> で好きなだけ代用できるじゃないか intじゃなくてFILFポインタになるけど アーカイブは探せばいくらでもあるから代用できる ……はず
562 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 21:11:58 ID:uEbxvwJb] >>558 うはー、DXライブラリ3Dってこんなの作れるのか。
563 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 21:35:14 ID:lOZWd07N] DXライブラリ3Dを持ち上げては「閉鎖もったいない!」「また公開されるべき」と色んなスレで書き込んでるIDが同じヤツ作者? それにあわせて作者が同じ日に公開とか自演ぽくね? 閉鎖なのか公開なのかはっきりしろよ・・・ 大学続けようとおもいます→大学中退しました→ 夢があるからです→夢から冷めてきました→ 興味が薄れてきました→PC壊れたので・・・→閉鎖します
564 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 21:40:51 ID:uEbxvwJb] んな事自演しても意味ないと思うけどな〜w
565 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 21:48:49 ID:tJ+D/Bvq] ii2.matrix.jp/news/archives/index.html
566 名前:名前は開発中のものです。 mailto:sage [2009/02/19(木) 21:49:12 ID:TRLSeDgG] >>563 アホ? これ以上のバージョンうpは無いと思ってればいいだろ 閉鎖されてから落とせなくて探してる奴が居ただけだ ファイナルを何時から準備してかは知らんがな てか、こんな過疎板に自演して作者に得があるのか?
567 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 00:24:59 ID:8YD/yL0t] 2Dの方で努力に見合った対価が得られなかったのかな?
568 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 00:29:18 ID:ysEz7dEP] DXライブラリ3Dだけど個人的には飽きっぽいのに根気が要るライブラリ公開なんてするなよと思った 無料だから文句は言えないけど、飽きたから管理止めますとか、無責任なことには代わりない もうこの作者のことは信用できない
569 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 01:17:54 ID:A+5UBWwG] 文句言いまくりですねw
570 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 05:50:40 ID:8tyTE/rK] まあ擁護してる奴は作者だろうな
571 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 07:41:19 ID:8YD/yL0t] 仮に飽きたからでも一身上の都合と言うのが大人だよな
572 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 07:43:53 ID:8YD/yL0t] 麻生じゃないけど世の中思った事をそのまま口にすると損する事が多いらしい
573 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 07:44:51 ID:jFTkkFCI] >572 そらそうだw
574 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 08:28:32 ID:8h4MKZuU] 麻生は口滑らしすぎだなw
575 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 09:06:13 ID:aIKFY2CZ] 欲しい物が手に入ったら叩き始めるとかもうね
576 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 09:48:35 ID:KdVzxEPs] 小泉さんは思ったこと口に出したからこそ成功できたタイプ
577 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 10:58:30 ID:8YD/yL0t] 飽きたから止めますってなんて言われたら今までのファンは凹むもんさ 有料でもいいから続けてみては?
578 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 12:26:01 ID:aZHJViPQ] >>576 どこがだよwww むしろ、逆だろ。ほとんど何も言わなかった。 で、喋る時は、あらかじめブレーンが考えた フレーズで乗り切る。 だから、絵が欲しいTVには喋ってる所で、内容がぶれようがない。 変な編集かませる余裕を作らず、ちゃんとメガホンとしてマスコミを利用してた。
579 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 12:38:02 ID:jFTkkFCI] メディアの使い方が上手かった、これだけは間違いない
580 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 13:08:33 ID:3qadtHxy] DXライブラリ3Dの作者は信用できないのは間違いない それ以上にDXライブラリの名前使ったのに逃げたのが許せない
581 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 14:12:22 ID:KdVzxEPs] >>578 私の内閣では通用しない 感動した そして解散を決めたときの名演説 いまさらかつての人気を貶めようとしても無駄ですよ
582 名前:名前は開発中のものです。 [2009/02/20(金) 15:48:19 ID:D8Q9D5Jt] DXライブラリ DXライブラリ 関数リファレンスページ dxfunc2.htm(ファイル名) には詳しい説明がなくて メニュー関係関数がいまいち使い方がわからない
583 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 16:36:00 ID:8h4MKZuU] あー、なんか >それ以上にDXライブラリの名前使ったのに逃げたのが許せない これはわかる 名前がまったく関連性のないものだったらよかったのにね
584 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 17:24:08 ID:MS2hL7JC] メニュー関係関数って何
585 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 17:24:10 ID:2MhbVJBH] 集客のためだったんだろうよ。
586 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 18:29:28 ID:kcT2uiGI] メニュー関係の関数は本当に全然わからんよね 関数の数も多ければ、引数についても説明不足でなにがなんだか分からないよ。まじで。 自分はResourceから作ってます。 IDR_MENUってのがメニューリソースでこんな感じ SetUseGDIFlag(TRUE); //GDI利用 SetUseMenuFlag(TRUE); //メニュー利用 LoadMenuResource(IDR_MENU); //リソースからメニューを読み込み SetDisplayMenuFlag(TRUE); //メニューの表示 注意を1点だけ。 Windowモードだと問題ないけど、フルスクリーンモードだと、 そのメニューからDialogBoxなりMessageBoxを呼ぶと、 一見ちゃんと表示されたようになりますが、処理復帰後、 その後、メニューが隠れて見えなくなります。
587 名前:名前は開発中のものです。 mailto:sage [2009/02/20(金) 18:30:55 ID:kcT2uiGI] あ、あとメニュー作成はDxLib_Initの前でOKです
588 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 01:04:15 ID:3rVkBDkP] >552 今DLしました ありがとうございます!
589 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 09:46:45 ID:73or/HL/] >>552 超ありがとう。 マジで。 おかげで開発引き継げられるわ。
590 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 10:07:29 ID:QPv83g/e] >>589 引き継いでもいいけどDXライブラリ3Dという名称はやめてくれ
591 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 10:35:53 ID:73or/HL/] >>590 わかるけど 変えたら変えたで問題じゃね?
592 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 11:17:25 ID:Vvb1WGeN] 俺ももうDXライブラリ3Dという名前はやめてほしい 完成度が高くて初心者でも分かる程度になってから名乗って欲しい
593 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 11:52:48 ID:YY9Vv2Rq] DXライブラリ3Dの作者叩く奴等は最低だと思う。 どこのチョンだよ。 見てて恥ずかしい。
594 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 12:04:32 ID:Vvb1WGeN] 勝手にDXライブラリ名乗って売名したうえに ユーザーから賞賛されないって逃げたのは誰だよ ホンディーって名乗ってホンダっぽさだして 富士山移して日本っぽさだして売名してる現代車と変わらないのは作者だろ しかも、性能まで劣ってるというとこまで同じだし 叩くというかもう出てこないで欲しい
595 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 12:37:57 ID:73or/HL/] 行動せん奴よりは100億倍マシだがな
596 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 12:41:31 ID:Vvb1WGeN] 行動の方向性が悪けりゃ邪魔にしかならない そして、作者は現に逃げた 大学からも ライブラリからも サイトからも
597 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 12:45:53 ID:Wn6D0K7q] ml::だけは格好悪すぎるから変えてくれ
598 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 12:46:30 ID:Vvb1WGeN] あと作者はあのサイトとあの名称を捨てただけで活動してるみたいよ? ブログっぽいのに書いてあった その宣言と同時に突然DXライブラリ3Dの書き込みや動画投稿増えてるからなー 何をいわんとするかは察してくれ
599 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 12:49:09 ID:Vvb1WGeN] >>597 あれはセンスないよなmL.とかないわーって思った。 普通に dxlib3d. とか略してdx3dなり関連性だせばいいのにな そもそも初心者向け狙ってクラス前提はどうかな・・・ 表面層ですべて関数化したほうがDXライブラリっぽくていいのいね
600 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 12:56:14 ID:YLpnm94h] プログラマなんだろ? 自分でやれよ。 うだうだうるさいな
601 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 12:57:32 ID:73or/HL/] クラスやだやだと思っていたクチだが いざ自分がクラスを覚えるとやっぱクラスじゃなきゃやだな。
602 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 12:58:37 ID:YLpnm94h] あのライブラリは終わったんだからさっさと切り替えろよ ここは Dxlibのスレだ
603 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 13:10:33 ID:Vvb1WGeN] 確かにまったく関連ないからね、関連持たせたい人いるようだけど
604 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 13:16:06 ID:dxxV1Mry] DXライブラリのひともこんな奴らがユーザーかと思ったらやる気なくすわな。 なんかあったらどうせ同じように叩くんだろ? で、お前ら1本くらいゲーム完成させたのかよ? できてる奴は晒してくれ。できてない奴は3d叩いてないで、一緒に精進しようや。
605 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 13:24:03 ID:73or/HL/] むしろ何をモチベーションに頑張っているのか知りたい。 一銭にもならんのに世の中には奇特なひとがいるものだなと思っている。 使うほうとしては助かるが。
606 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 13:27:49 ID:Vvb1WGeN] やる気勝手になくしてろよw なんかあったら同じように叩くに決まってるだろwそれが悪いのか? 一銭にもならなくても集客や勉強にはなるからな それを先に期待して失敗したライブラリもあるようだがw
607 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 13:33:11 ID:YLpnm94h] >>606 pc11.2ch.net/test/read.cgi/gamedev/1233739646/ こっちだけでやってろよ
608 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 13:43:26 ID:Vvb1WGeN] 3D版をよく宣伝しておいてあげるよ 色んなとこでなw よかったなJEX
609 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 14:09:34 ID:jnbX56Cw] おまいら、DarkGDKを使え!3Dが簡単だ クラスもOOPも必要ない DXライブラリだけの知識で充分だ DarkGDK www.microsoft.com/express/samples/gamecreators/default.aspx
610 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 14:22:42 ID:dxxV1Mry] IDにdx出たらなんか嬉しいわ。 フリーソフト全般に言えることだが、モチベーションはユーザーの笑顔だよ。 勉強も兼ねて作ったソフトでも他人が喜んでくれると嬉しいじゃん。 でも勘違いしないでほしいのは、「奉仕」ではなくて結局は自分が嬉しいからということ。 だから>>606 みたいなコはツクールでも他のライブラリにでも行けばいいのは確定的に明らか。 …作者乙みたいになっとるorz
611 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 14:27:52 ID:Vvb1WGeN] だから、DXライブラリとDXライブラリ3Dはまったく関係ないだろ その話題をだすなホンディー野郎が
612 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 14:51:46 ID:9LkGvvey] 無関係なのに名前だけで信者が勝手に宣伝してくれる東方のようだ
613 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 18:11:06 ID:ZosdmEGc] この過疎スレでまっかっかとはこれいかに
614 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 19:22:29 ID:qDaUhwJp] ID:Vvb1WGeN
615 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 20:09:47 ID:YRfeqJWH] DXライブラリPortableなるものもあるし、どうなってるんだ
616 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 22:42:10 ID:SXUTviSw] 本家の雑談掲示板で 投稿者:管理人 投稿日:2008/12/02(Tue) 03:41 > PSPで使えるDXライブラリ風のライブラリに取り組んでいます。 > DXライブラリPortableというそのまんまな名前です。 DXライブラリの名を冠するのでしたらDXライブラリのプログラムがそのまま動く方向で・・・ 嘘です ( いえ、***さんなら可能かもしれませんが・・・ ) というか、似てる度合いにもよりますが、なにもセンスの無い名前( DXライブラリ )を使う必要は無いのでは(^ ^; ; 遠回しな表現だが、DXライブラリの名が乱用されることに困惑している プログラミング云々以前に、奥ゆかしい心を持つのが大事だと思うよ 渦中の人物さんも、とうに終わったことを批判してる皆様も |ω・)。oO(・・・なんて言ってみたいね)
617 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 23:09:02 ID:73or/HL/] >なにもセンスの無い名前( DXライブラリ )を使う必要は無いのでは(^ ^; なにを今更かもしれんが 「DXライブラリ」という名前は本当、どうにかならんかったのかな。 一般名詞なのか固有名詞なのか紛らわしい。
618 名前:名前は開発中のものです。 mailto:sage [2009/02/21(土) 23:32:02 ID:Vvb1WGeN] >>617 と、JEXが名前のせいにしています
619 名前:名前は開発中のものです。 mailto:sage [2009/02/22(日) 01:09:22 ID:iXJQLcV6] >>617 DirectXの公式ライブラリだと思ってる人も居るしね でもこの微妙な名前のお陰で検索で迷うことが無いw(似た名前を誰も付けないから必ずトップに来る) しかしDX(デラックス)ライブラリなのか"D"irect"X"ライブラリなのかどっちなんだ
620 名前:名前は開発中のものです。 mailto:sage [2009/02/22(日) 01:48:46 ID:MYCg5Ttv] >616 遠回しな否定にちょっと笑った >617 遠い昔に、同じようなことを(仲間内でだが)ツッコんだ記憶があるw
621 名前:名前は開発中のものです。 mailto:sage [2009/02/22(日) 10:47:40 ID:SOgPp2Su] 東方二次創作で東方○○○(漢字三文字)って名前にするような感じだな
622 名前:名前は開発中のものです。 mailto:sage [2009/02/22(日) 18:24:12 ID:D+em7cNw] なんか根本的に違う
623 名前:名前は開発中のものです。 mailto:sage [2009/02/22(日) 23:59:26 ID:T9mimNJt] DXライブラリとは直接関係無いかもしれませんが質問させてください。 今2Dのゲームを作り始めたばかりです。 座標系の変数にint型を使っていますが計算や関数に通すと小数点以下が切り捨てられ若干正確さに欠けるてしまうのが気になります。 floatやdoubleを使えば正確さは取り戻せるのですが、 この先ゲームを大きくしていくにつれて浮動小数点型を使用するデメリットなどはありますか? たとえば大量の衝突判定を行う際の演算速度に影響しないかなどが気になるのですが・・・
624 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 00:01:18 ID:DH1AxR+6] そもそも小数点以下が切り捨てられるのが正確じゃないと考えるのがおかしい。 表示座標と内部座標について見直せ。
625 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 01:02:40 ID:pMCsbAxr] int型は整数をいれる変数です
626 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 01:16:14 ID:8ngKALzm] ちなみに内部的に浮動小数点で持っても別にいい。 表示の時は整数キャストしなさい。 切捨てが気になるなら四捨五入の関数やマクロでも使いなよ。 演算速度はint>float>doubleだが、 floatで座標を持たないといけない設計のゲームが、 演算速度の関係でint型に戻すとかは考えない方がいい。 作ってるゲームにもよるが、あたり判定はコストが掛かるところ。 演算速度が気になるようなら、基本的な衝突判定アルゴリズム(4分木空間分割)を使うがいいさ。 演算速度の問題はアルゴリズムが解決してくれる。
627 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 03:04:34 ID:E10pxrAS] 2Dゲームでそんなに正確さ求められるもんかねぇ。 それとは関係ない、こっちの話だが 俺の作ってる2Dゲー、今までは普通に動いてたのが PCに故障によって多少環境が変わったところ、 状況によって激重になるようになってしまった。 もともとそんなに高性能PCってわけじゃない(はずな)のに 非効率な組み方でちゃんと動いてたから安心してたんだが これはちょっと根本的に見直す必要があるのかもしれん。 画像のサイズを2のn乗にする事で多少改善した部分もあるが 画像とは関係なしに重くなる部分があるようなので それこそ以前勉強しようとして挫折した空間分割とか考える必要があるのかも……。
628 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 03:12:12 ID:8ngKALzm] まずはどの箇所でオーバヘッドを生んでいるのかを明確にしてからだな 当り判定なのか、描画処理なのか、読み書きなのかだ。 それぞれマイクロ秒単位(GetNowHiPerformanceCount)で処理時間を計測して、 ボトルネックになってる箇所があたり判定なら空間分割したらいい。 勉強するのが嫌なら、どっかその辺のライブラリ引っ張ってきたらいいさ。
629 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 08:31:25 ID:wwU8DbAV] 浮動小数点なんて使ってたら誤差がどんどん 広がっていきませんか?
630 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 12:31:35 ID:cbCnDoWc] 整数だと、何故正確じゃなくなるのかが分からないんだ。 誰かアドバイス頼む。
631 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 12:34:36 ID:s3UHHKOo] ミサイルの計算とか整数でやろうと思ったらものすごく頭使わないといけないと思うんだが
632 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 12:35:17 ID:D3Z7OH4U] ソースを貼るのが一番じゃね?
633 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 13:49:42 ID:cbCnDoWc] >631が質問者と同一人物かどうかは分からんけど 例えば、毎フレーム5ドットずつ動くオブジェクトがあるとする。 「速度アップ」というアイテムがあり、それを取ると移動速度が10%上昇する。 速度10%アップということは、速度が5から5.5になることを意味する。 だが、当然ながらint型では5.5という数字は表現できない。 無理矢理に5.5を表現しようとすれば、 フレーム毎に5ドット移動と6ドット移動を繰り返す……みたいなプログラムになるだろう。 でもこれはロジックとしては最悪だろうし、見た目にもガクガクしてしまう。 この場合、整数型で「速度10%アップ」なんていうアイテムの仕様が悪い。 もし一人で作っているなら、そのゲームの仕様を見直すべき。 これは極端な喩えだが、 そういう部分を考えずに、安易に浮動小数点にしよう!とするから問題が起こる。
634 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 13:54:01 ID:wvqDMdSg] 有効数字というのがあってだな
635 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 14:05:09 ID:2rXEX53B] スレチ
636 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 14:12:20 ID:cAIICXpl] >>627 減算とか特殊な描画モード使ってたり、大きいテクスチャ使ってると環境毎に差が出やすかった経験
637 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 14:14:52 ID:JKBRWfYb] ファミコン時代のマリオアクションのようなゲームなら整数で座標保持してOK どうせキャラは1ドットずつしか動かないだろう。 いまどきなシューティングしようとおもったら、 弾の移動なんかは、弾オブジェクトに加速度や速度をベクトルで持たせるだろうから、小数点使いなよ。 丸め誤差については値のとるべき範囲と計算式の展開方法を見直せ。 やれやれ。こんな質問じゃあDXライブラリ使用者の質が問われるぜ……。
638 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 18:54:46 ID:GQvUpA/G] double x = 0; for(i=0;i<10;i++) x += 0.1; とやってもx==1.0にはならないと読んで、 次アクション系作るときは座標を固定小数点にしようと思った。 たとえば上の計算の直後の x は0.9999になる場合がありそのときそれをintにキャストしたりfloorすると0.0になってしまう というのを(常識なのかもしれないが)それを読むまで知らなかった
639 名前:623 mailto:sage [2009/02/23(月) 19:27:59 ID:4Qo3h6rv] >>626 回答ありがとうございます。 衝突判定に試行錯誤する覚悟でfloatを使っていこうと思います。 >>633 たとえば、5ドットずつ動く弾をx軸から10度の方向に撃つとき、 sin10°*5だと1を割ってしまうので座標を整数で記述していると10度の方向に行かず水平に移動してしまいます。 intを固定小数点数的に記述する方法もあるにはあるのですが あくまでみなし少数なので注意してコーディングしないとバグが出る、要するに面倒くさいんです。
640 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 20:03:52 ID:JKBRWfYb] sin10°と書いた時点で浮動小数点使ってる。 まさか1周256°のsinテーブル保持するなんて、オールドテクニック使うつもりじゃないんだよね? 整数部と小数部を持たせる固定小数点だとfloat演算より余計にオーバーヘッド食うよ。 素直にfloatでOK。
641 名前:名前は開発中のものです。 mailto:sage [2009/02/23(月) 20:22:10 ID:JKBRWfYb] みんな知っていることだと思うけど、>>638 の誤差云々という話についても書いておく。 1.浮動小数点に関して、==で比較してはならない。 2つの浮動小数点数の差を取り、その絶対値が誤差限界より小さい時には、等しいものと判定するようにする。 2.浮動小数点同士の計算は一番最後に行う。 誤差の蓄積を防ぐため。上手いこと計算の順序を変える。 3.一時的に整数型を使う 0.1を10回足し算する計算を、0.1を10倍して1にしてから10回足して、その後に10で割る。 固定小数点の中でも、特に整数部と小数部を分けた固定小数点はバグの温床になりやすい。 正直いらんお世話だと思うが、1人でも悩んでいるのならとおもって書いておいた。
642 名前:633 mailto:sage [2009/02/23(月) 21:54:08 ID:cbCnDoWc] >639 整数だと正確さに欠けると言っても、その「正確」って言葉自体に色んな意味があると思うんだ。 (1)何らかの物理法則(嘘物理でもいい)をトレースする正確さ (2)プログラマの想定通りに動くという意味で正確さ 前者だと、intよりもfloat、floatよりもdoubleの方がより正確だろう。もちろん限界はあるけど。 後者だと、ちゃんと仕様を理解している限り正確さなんて変わらない。 なので、整数型だと正確じゃなくなる、という表現は誤解を招くかもしれない。 自分(>631>633)もそうだが、>624なんかも後者の意味で捉えたんだと思う。 >後半(>633へのレス)部分 要は、プログラム側で整数型を使うと決まっている時に、 整数で表現できない数字を使おうとするのが、そもそもの間違いってこと。 よく言われることとして、ゲームは物理シミュレーションではない。 物理法則を “正確” にトレースするより、物理法則に従ってるっぽく見えることの方が重要なわけだ。 >639の例なら、45度の角度なら水平に飛ぶことはないだろう。 もちろん誤差は出るが、その誤差に合わせてゲームの内容や難易度を調整すればいいんだ。 あ、浮動小数点を否定しているわけじゃないぞ。 最終的にはfloatとかdoubleを使うことになるだろうし。
643 名前:名前は開発中のものです。 [2009/02/24(火) 18:11:56 ID:ZuK8YWCV] はじめてここきたぜ、誰もいないかなぁ。 RPG作ろうと思って2週間くらい粘って 斜め移動とか歩くモーションとかは入れられるようになったんだ で、チップを使わずに、もしアイテムとか人が立ってたとしたら ある範囲まで近づいたら頭の上にでもアクションが出るようにしたいんだけど こうすると、いけるところといけないところの判定を作るのがごちゃごちゃになる。。 先人の知恵があれば、誰か。。
644 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 18:16:16 ID:jZRLhqc7] 判定とどう関係があるのかわからないんだが、 間に壁があったらアクションが出ないようにしたいってこと?
645 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 18:24:36 ID:ZuK8YWCV] おっ 壁の絵を描いたとする。 その壁の座標に沿って越えられないようにする。 ような感じなんだけど、チップでやれば、 チップ番号で判定してそこだけ通れないですむけど 壁が複雑な形(円状に、三角だとかだと、どうするのかなぁって。
646 名前:名前は開発中のものです。 [2009/02/24(火) 18:26:41 ID:ZuK8YWCV] 訂正orz 円状になってたり、角になってたり、 です
647 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 18:35:54 ID:CVLB4nkp] 壁ごとに判定するだけ
648 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 18:38:56 ID:ZuK8YWCV] つまり同じサイズの画像をつくって 通れないところはたとえば緑で塗りつぶして 座標と入力された方向に移動量を加算して 画像の1bitで判定してもし緑なら動作しないでおk?
649 名前:名前は開発中のものです。 mailto:sage [2009/02/24(火) 19:02:21 ID:dNVL6GY6] まずは壁(通れないところ)と通路(通れるところ)を別個で作る。 画像を使ってもメモリが許すなら>>648 の作り方でOK で、キャラと反応オブジェクトの間に壁があるなら非アクション。それ以外なら距離が近づいたらアクション みたいな感じでいいんじゃない?
650 名前:名前は開発中のものです。 mailto:sage [2009/02/25(水) 00:50:52 ID:d7hz7bDR] >>643 とりあえず、日本語を勉強しろ。 すげーわかりにくいぞ。 頭の上にでもアクションってんが、メタルギアソリッドの敵兵の気づき! みたいなのだとするとして、 1)アクション表示キャラの判定の選別が難しいのか? それとも、2)キャラの動きの判定(進入可能区域か否か)が難しいのか? その両方か?それとも判定じゃなくて、3)衝突反応に問題を抱えてるのか? どれだ? ※衝突反応・・・・壁に計算上はめり込む位置からの移動の時に、 垂直にぶつかったら、壁の前で停止、 斜めにぶつかったら、壁に沿って進行方向に近い向きに進む。 などの判定以降の処理。 とりあえず、 『実例で学ぶゲームAIプログラミング』に1)2)等については書いてあった。 たぶん、今後とも良い勉強になるとおもうから、お勧めする。 3)は、ひたすら細かい調整をしていくしかない。 基本は、幾つかの場合分けをして考えれば直ぐに分ると思う。
651 名前:名前は開発中のものです。 mailto:sage [2009/02/25(水) 01:12:39 ID:tDlRDwGK] >>650 2)だぜ。親切にありがとう。本屋で探してみる。
652 名前:名前は開発中のものです。 mailto:sage [2009/02/25(水) 02:31:40 ID:Z85CVAO2] キャラ同士を結ぶ線についての障害物可否判定かと思ったら、全く違って笑ったw
653 名前:名前は開発中のものです。 mailto:sage [2009/02/25(水) 03:43:37 ID:kcXQw5Ss] そういう意味だったのか。 全然わからなかったw
654 名前:名前は開発中のものです。 [2009/02/26(木) 12:21:47 ID:dehVPWYB] DXライブラリって描画先をテクスチャに出来なかったっけ? 描画先指定でグラフィックハンドルを指定したら出来なかったから気になったんだけど……
655 名前:名前は開発中のものです。 mailto:sage [2009/02/26(木) 16:44:08 ID:FCvuxnjL] 描画可能なグラフィックハンドルってのがある それじゃないと書き込みできないよ
656 名前:名前は開発中のものです。 mailto:sage [2009/02/26(木) 17:45:59 ID:dehVPWYB] MakeScreenってのかな? グラフィックと画面は別なのね……
657 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 06:25:11 ID:MX3xvzHi] ちょっと上の話題に関してなんだが 座標扱う時は素直にfloatでよかったのか 俺は小数点型だともしかしたら遅くなるかもと思い 座標計算には100倍したものを使い、表示するときに100で割って使ってたのだが (まあ10倍で十分かもしれんが) あと、どっかでfloat よりも double 使った方が良いと聞いたので、 俺は小数点型を扱う時には専ら double型を使ってるのだが
658 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 07:50:49 ID:KlYIcaW4] >>657 それが得策。floatは、使い方が難しい。 悪く言えば、既に過去の産物で、互換性のために残ってる・・・。 ぐらいに思い切ってしまった方が良いぐらい。 有効桁数が小さいし、感覚と違う所が強いから 小数点として扱う時は、意味も分らずにfloatを使ってると 変なバグに嵌りまくる。しかも、見た目間違ってない様なコードで嵌るからねwww 逆に、doubleだと、intよりも有効桁数が大きいから、 intで大丈夫な桁範囲を軽くカバーできるしね。 ボトルネックになってない所の計算だったら、正直doubleが無難だよ。 (あと、意外とdoubleの方が早かったりすることも多いから、 実測で比べるのは言うまでもないが。)
659 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 10:49:02 ID:tFIcInvl] 100倍よりも128倍したものを128で割る方がいいんじゃないかしらんと 確認もせずに想像で言ってみる。
660 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 19:35:42 ID:0AHSCy/i] 相手のレベルによっては100倍って説明した方がいい時おあるよね。
661 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 21:05:19 ID:EURlNcbt] DXライブラリっていう名前が問題なくね このライブラリ知る前から自前のライブラリもDxLibって付けちまってたし まぁ何年もまえの話だが
662 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 21:13:18 ID:ZQTPwJtl] DirectXのラッピングライブラリだからDXライブラリでいいんじゃね? ちょっとダサカッコイイ感じが対象者レベルにぴったりだし。俺含めて。
663 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 21:31:46 ID:lChaxYTz] やっぱりDirectX公式ライブラリと思われてしまっても仕方が無い。 が、いまさらオリジナルの名前に戻されてもね。 DXLibで十分や。
664 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 23:17:07 ID:0AHSCy/i] >661-663 その微妙な心境が手に取るように分かるぜw
665 名前:名前は開発中のものです。 mailto:sage [2009/02/27(金) 23:17:18 ID:+el9j4ty] 朧村正みたいなゲームも作れるよね?2Dだし
666 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 00:42:10 ID:aTuc4vAr] 作れるよ
667 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 06:17:37 ID:P7f9XrLx] DXLibに収録されてる非公開関数のリファレンスって無いのかな ウィンドウハンドルを取得する方法を探してたら、非公開関数で取得できるのを知って 他にも有用な関数がありそうなので気になったんだが
668 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 06:32:10 ID:TAywFnWh] 作者は非公開のリファレンスは書かないってよ。 利用する頻度の少ない関数を初心者に公開するには混乱の元というコンセプトらしい。 コメントとソースで自力で読むしかない。
669 名前:名前は開発中のものです。 [2009/02/28(土) 06:34:58 ID:LqQy7pZD] >>667 ttp://studiokingyo.fc2web.com/dxlib/kaibou/k_shiyou.html
670 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 06:54:33 ID:P7f9XrLx] >>668 非公開関数のリファレンスは書くつもりは無いのか わざわざ用意した関数のリファレンスを書かないのは勿体無い気もするが ヘッダ見たら色々あったけどコメントだけじゃ引数がわからないし、ソース読むしかないのね >>669 そこ見て非公開関数の存在を知ったんだけど、他にも説明のある非公式のサイトとかないのかな?
671 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 06:58:59 ID:TAywFnWh] 引数の名前と型を見てなんとなく分かると思う。 わかんなかったのはMenu関係かな。 どれが便利な隠れ関数なのか人によってまちまちだからな〜。 全部教えるわけにはいかないので、その都度聞いてくれ。 あと、大概公式の掲示板を関数名で検索すると作者がサンプルコード書いてあるよ。
672 名前:名前は開発中のものです。 [2009/02/28(土) 07:00:08 ID:LqQy7pZD] >>670 他のところは知らないかな もし需要あるなら非公開関数ちょっと調べてリファレンスでも作ろうか?
673 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 07:01:10 ID:TAywFnWh] >>672 俺からも ぜ ひ 頼 む
674 名前:名前は開発中のものです。 [2009/02/28(土) 07:06:17 ID:LqQy7pZD] >>673 でも、正直DirectX使えばなんとでもなるから、わざわざ推奨されない非公式関数発掘して制約多い状態でDxLib使うより その方が早い気もする 中見てないから分からないけど、ソースが綺麗だったらまだ救いようあるんだけどな……
675 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 07:19:28 ID:TAywFnWh] DXライブラリ使ってるのに、その上でDirextX直叩きする酔狂は居ないと思う。 リファレンスもあったら便利だけど、目ぼしい関数はチェックしてるからなぁ。
676 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 07:27:18 ID:P7f9XrLx] >>671 教えてもらえるなら助かるわ といっても、そこそこ量があるので使えそうな関数を探すのが難しそうだがw >>672 非公開関数をまとめてくれるのなら有難い
677 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 12:35:30 ID:1J8Bdlx6] >>672 結構需要あると思うし、個人的にもすごくうれしい
678 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 17:39:28 ID:mz4DlK2y] 詳しい説明は無くてもかまわないからリストだけでもあれば重宝します
679 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 18:56:21 ID:JPI33j26] >>666 ってことはDXライブラリでも極めれば市販ゲームレベルの作品が作れるって事だね
680 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 20:56:23 ID:GSZZUTVZ] 極端な話,DrawGraphさえあれば十分
681 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 21:06:52 ID:gSUwRndo] 画像ファイル一枚を分割してアニメーションさせるのと 全部別々のファイルを読み込んでアニメーションさせるのって負荷とか違うのかな? 後者の方がやりやすいんだがどうなんだろう
682 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 21:15:45 ID:GSZZUTVZ] 一度の画面表示に使用する画像の数はできるだけ減らした方が テクスチャの切り替えが減って効率は良くなる
683 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 21:20:02 ID:gSUwRndo] >>682 やっぱりそうなのか・・ パーツ分けがめんどくさいんだよなぁ
684 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 21:25:21 ID:GSZZUTVZ] 何のためにプログラミングやってんの それこそ機械にやらせればいいでしょ
685 名前:名前は開発中のものです。 mailto:sage [2009/02/28(土) 23:32:58 ID:gSUwRndo] >>684 フォトショで画像作ってるからPSDファイルなんだよね ヘボプログラマーなんでPSDファイルを分割するプログラムは作れないです・・
686 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 01:19:31 ID:Q0b0e5s4] 使ったこと無いから知らないけどさ、フォトショってマクロみたいな機能無いの?
687 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 01:43:53 ID:gJBH+jz2] >>686 あるよー でもマクロするほどの作業量でもないので手動でやります
688 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 04:00:52 ID:4UMfyekW] ん〜? 681と682の質疑応答の意味がよくわからん。 1ファイルを分割しようが、複数ファイルを読み込もうが使用する数は同じじゃないの?
689 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 04:46:48 ID:gjx3PjZU] 俺もわかんね。 同じじゃん。 どっちの方が管理が楽だろう?っていう人間の負荷の話ならともかく
690 名前:名前は開発中のものです。 [2009/03/01(日) 05:31:56 ID:idjBCaEs] >>681-689 一枚の画像を読み込み複数に分けハンドルを取得→PCが操作する画像は一枚 複数の画像を読み込みそれぞれをハンドルを取得→PCが操作する画像は複数 負荷が多いのは勿論後者 大げさだけど 一枚100MBの画像を一枚開くのと 一枚10MBの画像を10枚開くの どっちが早いか考えてみたら分かるんじゃないかな? まあ、数十枚の画像なら気にする必要はないんだけどさ 容量的にも、バイナリで開けば分かるけど、一枚ごとに色々付加されるから 200kbの画像を2つに分けて保存しても合計で220kbくらいになっちゃう(ものによって違うかな)
691 名前:名前は開発中のものです。 [2009/03/01(日) 08:23:41 ID:idjBCaEs] 今非公開関数まとめてたんだけど、すごくわかりやすいからわざわざまとめるほどでもない気がしてきた 作者が公開してないんだから公開するのも何かな…… 一応簡単に晒すけど…… 使い方(引数)、いつ呼ぶのか(DxLib初期化前か後か)、返値……ここらへんが分かれば良いんだよね? もしこの中で知りたいとか要望あるならHTMLにして、簡単なソースくらいくっつけてリファレンス化するよ 起動→終了で複数回DxLibを読み込まなければいけないとき(あるのか?)に使えそう int DxLib_GlobalStructInitialize( void ) ; // ライブラリの内部で使用している構造体をゼロ初期化して、DxLib_Init の前に行った設定を無効化する( DxLib_Init の前でのみ有効 ) int DxLib_IsInit( void ) ; // ライブラリが初期化されているかどうかを取得する( 戻り値: TRUE=初期化されている FALSE=されていない ) ファイルを検索して取得ウマー int FileRead_findFirst( const char *FilePath, FILEINFO *Buffer ) ; // 指定のファイル又はフォルダの情報を取得し、ファイル検索ハンドルも作成する( 戻り値: -1=エラー -1以外=ファイル検索ハンドル ) int FileRead_findNext( int FindHandle, FILEINFO *Buffer ) ; // 条件の合致する次のファイルの情報を取得する( 戻り値: -1=エラー 0=成功 ) int FileRead_findClose( int FindHandle ) ; // ファイル検索ハンドルを閉じる( 戻り値: -1=エラー 0=成功 ) ウィンドウから情報を引っ張り出す系の関数 int GetWindowCRect( RECT *RectBuf ) ; // ウインドウのクライアント領域を取得する→描画領域ね int GetActiveFlag( void ) ; // ソフトがアクティブかどうかを取得する→現在アクティブかどうかを調べる。-1が非アクティブ、0がアクティブとかだと思う(未確認) HWND GetMainWindowHandle( void ) ; // メインウインドウのハンドルを取得する→分かる人のために int GetNoActiveState( int ResetFlag = TRUE ) ; // 非アクティブになり、処理が一時停止していたかどうかを取得する(引数 ResetFlag=TRUE:状態をリセット FALSE:状態をリセットしない 戻り値: 0=一時停止はしていない 1=一時停止していた ) int GetMouseDispFlag( void ) ; // マウスを表示するかどうかのフラグを取得する
692 名前:名前は開発中のものです。 [2009/03/01(日) 08:24:40 ID:idjBCaEs] int GetMouseDispFlag( void ) ; // マウスを表示するかどうかのフラグを取得する int GetWindowCloseFlag( void ) ; // ウインドウを閉じようとしているかの情報を得る→本当に終了しますか?とか確認を表示するのに使えそう int GetWindowUserCloseFlag( int StateResetFlag = FALSE ) ; //×ボタンが押されたかどうかを調べる int SetDoubleStartValidFlag( int Flag ) ; // 2重起動を許すかどうかのフラグをセットする←複数起動させてもいいゲームならここを変更 マルチタスクのゲーム作りたいならここらへんが役に立ちそう int AddMessageTakeOverWindow( HWND Window ) ; // メッセージ処理をDXライブラリに肩代わりしてもらうウインドウを追加する int SubMessageTakeOverWindow( HWND Window ) ; // メッセージ処理をDXライブラリに肩代わりしてもらうウインドウを減らす 軽くみた感じ使えそうなのはこのあたりかな?
693 名前:名前は開発中のものです。 [2009/03/01(日) 08:37:37 ID:idjBCaEs] int SetWindowInitPosition( int x , int y ) ; // ウインドウの初期位置を設定する int SetNotWinFlag( int Flag ) ; // DXライブラリのウインドウ関連の機能を使用しないフラグ←これめちゃくちゃ便利でふいた int SetWindowUserCloseEnableFlag( int Flag ) ; // メインウインドウの×ボタンを押した時にライブラリが自動的にウインドウを閉じるかどうかのフラグをセットする←上記のGetWindowCloseFlagと組み合わせると幸せ int SetDXArchiveExtension( const char *Extension = NULL ) ; // 検索するDXアーカイブファイルの拡張子を変更する int SetBackgroundColor( int Red, int Green, int Blue ) ; // メインウインドウのバックグラウンドカラーを設定する←初期背景色は黒(#000000) int SetDragFileValidFlag( int Flag ) ; ドラッグ&ドロップかんれん // ファイルのドラッグ&ドロップ機能を有効にするかどうかのフラグをセットする int GetDragFilePath( char *FilePathBuffer ) ; // ドラッグ&ドロップされたファイル名を取得する( -1:取得できなかった 0:取得できた ) int GetDragFileNum( void ) ; // ドラッグ&ドロップされたファイルの数を取得する めんどくさいから、存在だけ書くけど 他にも、ツールバーにボタンを追加する関数とか ショートカットキーを追加する関数とか(←いくらでも代用可能だから使わない方がいいかも) メニューを作成する関数とか キー入力中、マウスを点滅させる関数とか ここらへんは人によってピンポイントに使えそうな関数ばっかだから、あんまりリファレンス化しても需要無い気がする 一応応用テクニックとして、HSPからDXライブラリを呼ぶ方法とかだったら需要ある? あるなら書こうかな 吉里吉里やNscから呼ぶことも出来そうだけど本体いじらなきゃ駄目っぽくてめんどくさい
694 名前:名前は開発中のものです。 [2009/03/01(日) 08:44:55 ID:idjBCaEs] たとえば、×ボタンで終了確認を出したいときとかは 〜略〜 SetWindowUserCloseEnableFlag( FALSE ); //×ボタンで自動終了しない while(ProcessMessage()==1)//だっけ? { ClsScreen(); game(); ScreenFlip(); if(GetWindowUserCloseFlag()==-1)//×ボタンが押されたら { if(MessageBox(NULL,"終了しますか?","終了確認",MBYESNO)==IDYES) //YES,NOでYESが押されたら break; } } 〜略〜 こんな感じにすればできる(と思う) 組み合わせだからなあ……リファレンス作るより小技をいくつか乗せた方が良いのかな?
695 名前:名前は開発中のものです。 [2009/03/01(日) 08:45:28 ID:idjBCaEs] ……朝から何やってんだ俺 悲しくなってきたから寝る
696 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 09:26:49 ID:k4cT38FB] おつかれさまです。ごゆっくりお休みくださいな。 リファレンスも欲しいけど、小技のほうがうれしいかも。
697 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 09:55:31 ID:gjx3PjZU] >>690 最初のファイル読み込みはともかく ハンドルに分けて使う段になったらどっちも同じじゃね? ×一枚の画像を読み込み複数に分けハンドルを取得→PCが操作する画像は一枚 ○一枚の画像を読み込み複数に分けハンドルを取得→PCが操作する画像は複数 >>691 乙
698 名前:名前は開発中のものです。 [2009/03/01(日) 10:04:25 ID:idjBCaEs] ああ、駄目だ >>694 だと×ボタンが押された時点でキューが送られちゃってるからDXライブラリの内部の構造的に終了確認はできない(終了確認が無限に出続ける) 「終了します」って有無を言わさぬ表示なら出来るけどね 中身見てるけど、終了キューを解除する関数は見あたらないし 独自に一度キューを取得して、ProcessMessageに投げる前に解除しちゃえば良いんだろうけど、そんなことすると初心者でも使えるって良点があじゃぱー >>696 どんな小技が良いかな? さっきあげた関数は単体で使えると思うし 今ソース見ながら色々いじってたけど それ以上のことやろうと思うと色々内部的に引っかかることに気付いた >>697 もう一度よーく読んでほしい
699 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 10:54:11 ID:gjx3PjZU] >>698 ごめん。 よく読んだ上で書いたけどわからない。 理解力なくてすまん。きっと俺が間違っている。 が、これは瑣末な問題なので暇なときにでも考えておくとして… >>693 >一応応用テクニックとして、HSPからDXライブラリを呼ぶ方法とかだったら需要ある? これ興味あるかな。
700 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 11:24:01 ID:oPHW1ePY] >>697 ハンドル分けたらだめ 一つのハンドルから転送元の領域を指定して描画するんだよ 同じテクスチャを連続して使うときは切り替えが行われないからその分効率が良くなる
701 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 11:38:25 ID:ey11ozVK] 質問掲示板の検索を使おう >>698 ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1089 >>699 ここのNo.4に書いてある高速描画云々のところ読めば分かる ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1162 読みこみ速度は同じだけど描画速度は 一枚の画像を読み込み複数に分けハンドルを取得 > 複数の画像を読み込みそれぞれをハンドルを取得
702 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 11:39:47 ID:a7Bg5ATd] HSPなんぞ使うなよ
703 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 11:44:24 ID:oPHW1ePY] なるほどLoadDivGraphでもいいのか
704 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 13:22:39 ID:gjx3PjZU] >>700 なるほど 理解したdクス >>701 読んでみる >>702 今更HSP使う気はないけどやり方にはちょっと興味が
705 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 13:39:31 ID:9rIzOA3I] >>691-694 乙 前にHSPから使ったりしてたけど、わざわざHSPから呼び出す必要があまり無いような気がしたのでVC導入したな
706 名前:名前は開発中のものです。 [2009/03/01(日) 14:11:25 ID:idjBCaEs] >>701 なるほど StateResetFlagは初期値FALSEになってるやつか、完全に見落としてたアリガトウ >>702 HSP使うメリットってなんだろう、(うろ覚えだけど)3D処理が簡単なDLLかなんかがあったよね? でも、それ使うなら最初からHSP使えばいいし…… 自分から言っといてなんだがメリット見えないやごめんw DXライブラリの可能性を追求しようと思ってドラッグ&ドロップで画像表示するアプリ作ろうと思ったらこんなに時間かかっちゃったよ やっぱりアプリ系はおとなしくWINAPI使うに限るorz www3.uploader.jp/t/nico/images/nico_uljp00021.zip ふ、と思ったんだけどこのスレ結構知識ある人多いしうpロダでも用意しとけばサンプル集みたいなの作れるしいいんじゃね? 人のソース見れるってのは、(俺含め)初心者にはとてもありがたいんだよね
707 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 14:27:12 ID:ZNmLTGrU] ソースうpは恥ずかしい…
708 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 14:51:26 ID:lYNtcth6] 自分の全裸うpするようなもん
709 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 15:45:22 ID:z/eFYQPp] 俺のは絶対人に見せられないソースだと自覚している。 一応動いているが、初心者どころの問題じゃない。
710 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 16:15:26 ID:xm1UJhmc] ソースは出来るだけ人に見せたほうがいいよ。 指摘されればどこが良くて悪いのかが分かって次に必ず生かせる。 リアル知人じゃなくて2chで晒すのがいいかはよくわからんが・・・ うpするのとは話がちょっと違うけどここでも読んでみるといい www.kojima-cci.or.jp/fuji/mybooks/cdiag/cdiag.0.6.html
711 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 16:37:16 ID:g9LGhZvF] 専ロダほしいな・・・
712 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 16:45:33 ID:c9LYSV+3] ドット絵でbmpで保存して使うのと きれいに書いたpngだとぜんぜん解像度違うような気がして変になっちまった。 ドット絵の設定ミス?それともpngにそろえるべきかな。。
713 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 18:31:12 ID:a1nbTQe/] ドット絵だからドットが見えるんじゃないのか??
714 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 23:17:37 ID:2a8K6SCC] 爆発のエフェクトなどを作成する際に グラデーションの画像を極座標変換?して 円形の画像を作成しているのだけれど、 これが何をやっているのかよくわからん。
715 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 23:25:10 ID:oPHW1ePY] つ高校数学の教科書
716 名前:名前は開発中のものです。 mailto:sage [2009/03/01(日) 23:54:03 ID:A8mpIuw8] 数学Cあたりだっけ
717 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 00:15:56 ID:ziDQhibJ] そういえば洞窟物語もDXライブラリ使ってるんだね
718 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 00:35:55 ID:hEBh+N4j] 公式掲示板か 多分違うと思うぞ Pixel氏が以前DirectX2だか3だかを使って作ったって言ってたし 何か勘違いしてああ答えたか、若しくは今作ってるゲームにDXライブラリを使ってるんだろう
719 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 01:43:24 ID:3riYRQc6] ウィンドウサイズのデフォルトは640*480だけど、これの変更はできる? フルスクリーンにしないといけないから制約はあると思うけど
720 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 01:47:07 ID:7FxY5OR7] Dxライブラリのファイルにデフォルトのサイズがディファインされてたから あれいじればできるんじゃね?
721 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 01:52:06 ID:x0I/gxMT] >>719 SetGraphMode( 800 , 600 , 32 ); で800*600になる
722 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 02:06:23 ID:3riYRQc6] >>720 ライブラリ書き換えるのはアウトだろ常識的に考えて…… そのせいでいつどこでバグが起こるかわからぬ >>721 サンクス 画面モードの変更で解像度が変えれるとは、単語検索で見つからないわけだ
723 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 02:13:56 ID:PBT6djln] リファレンス大した量じゃないんだから 一覧を一通り目を通せば済むだろ。
724 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 06:43:49 ID:+ax8ZdoD] おれなんかどんなことができるんだろうと、わくわくしながら 上から下まで読むんだけどなぁ・・・
725 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 08:17:17 ID:vDZSfAmr] >>718 でも文字表示とかDXライブラリっぽいよな
726 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 11:57:41 ID:6eQe3/TV] >別にDXライブラリに限らないけど、DXライブラリを知った時も リファレンスをさらさらっと流して、「これなら俺にも使えるんじゃないかな?」と思って 使い始めたな。 別に覚えなくても、一度目を通しておけば、 後になって「こういう事がしたいけど、それっぽい命令あったよな……」って 探しやすくなるしな。
727 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 20:14:38 ID:hc/QEiU+] アレだけ分かりやすくて運営管理もアレだけちゃんとしてるなんて今まで見たことないよな。 DirectXでゲームを作るっていうジャンルに関して革命的だし、最早XNAなんかも超えてると言っても過言ではない。
728 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 20:18:02 ID:qXNeI5og] ハンドルが全部intなのだけはどうかと
729 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 21:13:54 ID:Rv93cI1M] ほんとだよな。ちゃんと符号無しにしてくれないと。
730 名前:名前は開発中のものです。 [2009/03/02(月) 21:38:18 ID:3lZqI4Au] >>729 そこじゃねーだろwww
731 名前:名前は開発中のものです。 [2009/03/02(月) 21:42:53 ID:3lZqI4Au] typedefしなかったのは多分初心者への配慮だろうね
732 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 22:25:14 ID:ziDQhibJ] 画像をプログラムで制御(回転など)して動いてみせるのと 一枚一枚画像を作ってパラパラ漫画みたいにアニメーションさせるのとどっちが負荷低いかな
733 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 22:54:20 ID:qXNeI5og] パラパラ漫画方式の画像が一枚の画像にまとめてあるなら 原理的に変わらないはず
734 名前:名前は開発中のものです。 mailto:sage [2009/03/02(月) 22:57:12 ID:qXNeI5og] いや画像がまとめてあるかどうかはこの場合関係ないか まあ変わらん
735 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 01:09:39 ID:vuUaUlBc] その二つは比較すべきものじゃない気もするがw 回転ありの描画命令よりは回転なしの方が負荷は軽いだろうけど、 大した差じゃないみたいだし、好きにしていいんじゃないかな。
736 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 02:53:14 ID:l+63ggMa] 画面上の殆どのパーツが回ってるぜ!とか 512x512のパーツが回ってるぜ!とか 回転角度に応じて256パターンの画像を用意しました! みたいな変なことやってなきゃ大丈夫だろう
737 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 03:53:26 ID:wZU6jxH0] メモリに優しいのがプログラムで制御かな。後者はあまりオススメできない。 パラパラ漫画が全部VRAMに乗るとは限らないし、 1フレーム1枚のように別テクスチャ作るのであればさらに重くなる。 1枚でまとめる場合も、作成できるテクスチャサイズ制限があるハードウェアが過去にあり、 (Voodoo時代ではテクスチャサイズが256*256が最大であった) そのような場合、DXライブラリではテクスチャ分割が行われるので、 大きなテクスチャを作るとパフォーマンスが犠牲になります。 なので、回転・反転・拡大縮小などといった Direct3Dによるハードウェア支援で記述できる内容であるのなら、前者の方がパフォーマンスがよくなります。 ちなみに後者で実装するのであれば、テクスチャのサイズは正方形が望ましいですよ。
738 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 04:22:48 ID:l+63ggMa] ただし、斜め向きとかにした場合、 最初から画像を用意しておいた方が綺麗に見えることは多々あるな。 プレイヤーキャラの画像など、 重要そうな部分だけパターンを用意しておくのも悪くない。
739 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 09:38:20 ID:HSt7mZci] >>737 >正方形 一辺の長さが2の倍数の正方形ね
740 名前:名前は開発中のものです。 mailto:sage [2009/03/03(火) 14:11:43 ID:lmHLCC6G] >>739 > 2の倍数 2の累乗ね
741 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 10:39:32 ID:IqyXTxRb] ん……? グラフィックハンドルがintって事は、持てるグラフィックハンドルの最大数は約32000って事?
742 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 10:43:25 ID:OmVViNLo] いやintは2*(10^9)くらいまで その前にメモリがなくなるだろうけど
743 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 16:29:04 ID:aWTUpMQ1] 東方の弾幕とかって1つ1つの弾にハンドラ持たせてるの?
744 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 17:38:35 ID:IqyXTxRb] >>742 intってそんなに長かったっけ? >>743 ちゃんと1つずつID割り振って読み込んでるみたい。
745 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 18:29:44 ID:Q764ubCY] 32bit機での 符号無しintは2^32 符号ありintは2^31(符号に1bit使用) プログラミングしてるなら知ってて当然だろ…
746 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 18:29:46 ID:zCrgAKk6] >>744 おまえさんのいってるのは short int
747 名前:名前は開発中のものです。 mailto:sage [2009/03/04(水) 19:26:33 ID:IqyXTxRb] なるほど…… なんで勘違いしてたんだろう……
748 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 00:07:34 ID:aVo6G4mJ] >>743 何を言ってるんだ? 東方はDXライブラリ使ってないぞ
749 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 10:15:06 ID:MO3/QFgO] こんにちは^^ 透過処理というのをしたんですけど 下記のコードだと正常に透過処理されます。 LoadGraphScreen( 0 , 0 , "back.bmp" , FALSE ) ; LoadGraphScreen( 0 , 0 , "char.png" , TRUE ) ; しかし LoadGraphScreen( 0 , 0 , "char.png" , TRUE ) ; LoadGraphScreen( 0 , 0 , "back.bmp" , FALSE ) ; とすると透過処理されません なぜでしょうか?
750 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 10:26:43 ID:ddVb/3t1] >747 旧VBのIntegerが16bitなのと混ざってない? >745 ハードは関係ない。コンパイラが決定する。 16bitアプリを32bitハードやOSで走らせても intが勝手に32bitになったりしない。 処理系にあわせて決定するのが自然なだけ。
751 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 11:04:56 ID:B3wyDoGN] >>749 はい? え? back.bmp を透過処理なしで描いた上に、char.png を透過処理ありで描いたらそりゃちゃんと透過処理されるだろうけど char.png を透過処理ありで描いた上に、back.bmp を透過処理なしで描いたらそりゃ上書きされるだけだと思うんだが……。
752 名前:名前は開発中のものです。 mailto:sage [2009/03/05(木) 12:34:23 ID:+9ctDc2h] >>750 あー、昔に見た資料がかなり古いものだったから間違って覚えてたのかも
753 名前:名前は開発中のものです。 [2009/03/06(金) 21:17:00 ID:pmzRauOh] ある画像だけの透過と、透過の度合いを設定することはできますか? リファレンス見る限り見当たらないのですが
754 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 21:34:26 ID:+Tdk650S] その画像を描画する前にSetDrawBlendMode 透過の度合いはPal引数 クラス使って透過率とグラフィックハンドルをまとめて管理するようにするといい
755 名前:名前は開発中のものです。 [2009/03/06(金) 21:46:01 ID:pmzRauOh] >>754 即レスありがとう^^ うまくできました!!
756 名前:名前は開発中のものです。 mailto:sage [2009/03/06(金) 23:45:45 ID:HF/v1JaI] DXライブラリ3Dの開発引き継いでる奴いないの?
757 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 00:24:08 ID:3MouTLA1] 2Dゲームでも背景は3Dにしたい・・・ 本家DXライブラリにテクスチャ付モデルとフォグ表示機能だけあれば最高なんだが
758 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 01:56:55 ID:JfYg6t6e] シューティングの背景用にDXライブラリで自前の簡易モデルを描画する仕組みを組んだけど、 意外と簡単に組めたよ。 ポリゴン事に情報を配列に落として、座標を変換してVERTEX配列に入れてから描画。 フォグは出来なかったから単色背景+奥の頂点を透過で誤魔化してる。
759 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 07:03:57 ID:pCqKP5AO] クラスのコンストラクタでLoadGraphするとハンドルが取得できてないみたいだけど 仕様ですか? 他で初期化するから別に問題ないけど。
760 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 08:46:35 ID:9xqjyk6r] そのコンストラクタを呼ぶタイミングがまずいだけだろ でもLoadGraphみたいな失敗しやすいものをコンストラクタで使うのはあまり好ましくない
761 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 13:25:49 ID:d6ZakwC3] C++のコンストラクタはオブジェクトが出来上がる前の不安定な状態だからメソッド呼んだりはしない方がいいよ。
762 名前:名前は開発中のものです。 mailto:sage [2009/03/07(土) 20:23:03 ID:83odH6gl] それ俺がよくやった失敗だけどLoadGraphするまえにDxLib_Initやってないんじゃまいか
763 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 01:02:04 ID:sz9LKWkI] >>761 んなこたないw
764 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 01:07:09 ID:PVP1w5NP] >>758 .r==x r==x /三/.|/三/ | (三(/(三(/_/ l ̄¨'| ̄ ̄¨| l;::::::::|:::::::::::::l l;::::::::|:::::::::::::l l;::::::::|:::::::::::::l l;::::::::|:::::::::::::l l;::::::::|:::::::::::::l l;{==}!::{==}:::l r|:::::::::::::::::::::::| _ノ  ̄`ー--、,;;l~ヽ ,∠==、ヽ `i'ー- . l / ヽ| 「`'ー、`ー、 .ノ l ミ| / `ー、ヽ /j R|イ ー-ァ、. Y゙ { [`ュハハハr''~] ̄ ___ノ ソースうpお願いします!!!!!!!!!!
765 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 02:05:16 ID:Os5GQobq] >>764 今PC故障中で携帯から書き込んでるので、一週間後位になるけど…… 龍神録プログラミングの館に似たような内容の講座があったので、 それを参考にした方が早いかも? 自分のソースと比べた所、アルゴリズムは大差なかったし
766 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 03:07:46 ID:PA5CtbPk] >>760 >>762 それだわ。 メインループの外だったよ。
767 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 07:29:17 ID:CGpW+st2] >>763 そうなの? 憂鬱本かなにかにコンストラクタで複雑な処理はやめたほうがいいって 書いてあったから信じてたよ。
768 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 11:20:16 ID:lUOcnlf/] 使うほうが失敗したときに面倒でしょ、コンストラクタだと
769 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 11:49:19 ID:8uH2yrBU] 例外処理を全面的に取り入れてるならコンストラクタで失敗してもおk 失敗したら絶対に例外を投げること そうでなければダメ
770 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 13:15:29 ID:sz9LKWkI] >>767 言語仕様的にはまったく問題ない >768が言ってるように、 その本には別の理由でやめたほうがいいって言ってるんだと思うよ ただし、staticなインスタンスは例外で この場合、mainが呼ばれる前のスタートアップルーチンで インスタンスが生成されるのでコンストラクタでは 初期化以外のことをやるとまずい
771 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 15:28:40 ID:Os5GQobq] 東方の新作が発表される度に自作のゲームとシステムが被っててヘコむ……
772 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 15:35:38 ID:26PtmX+G] >771 それを気にしてたら、世の中作品なんて生まれない。 大丈夫、何ら問題ない。思う存分やれ。キミは盗作じゃない。 ……自分のやりたいことを、他の人が作ったのでそれで満足しちゃったなら知らんw (こっちもよくある話だけどな!)
773 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 17:25:05 ID:tah76f/h] 弾幕シューは東方だけじゃないしね
774 名前:761 mailto:sage [2009/03/08(日) 18:12:09 ID:pjH2xL1q] >>770 俺も>>767 のように憂鬱本で読んで信じてきたんだけど、後学のために教えて欲しい。 まず憂鬱本にはこんな風に書いてある。 ・コンストラクタやデストラクタはあまり難しい処理をするのは考え物。 1・返り値を持つことが出来ない。 2・インスタンスが完全な状態ではない。 3・外部変数としてクラスインスタンスがある場合、コンストラクタやデストラクタはmain()の走る前、後になる。 >>770 さんが言っているのは3の場合で、この本によると 「ポインタとして宣言しておきmain()が走った後でその中でnewする」 という解決策が書いてある。 で、問題の2にははっきりと 「コンストラクタ、デストラクタが走っているときは、インスタンスは完全な状態ではない」 と書いてあり、 「実は内部的にはそのインスタンスの使用するメモリの取得/解放とそれに伴う複雑な作業も行っている」 「インスタンス自体がまだ生成途中であり、内部的にはまだ不安定な状態」 と書いてあります。 問題点は、 「このような状態で他のクラスのインスタンスのメンバ関数を読んだりすると巡り巡ってまだ生成途中の自分自身のメンバ関数が呼ばれるかもしれないから」 との事です。 C#なんかではコンストラクタでのメソッドの呼び出しなども保障されてますが、C++では言語使用的には保障されていない、と解釈したのですがここらへんどうなんでしょうか?
775 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 19:09:05 ID:CrTNgcou] この際、本家DXライブラリにDXライブラリ3Dを機能統合してしまっても良いんじゃないか? 今どき2Dだけじゃなぁ
776 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 19:25:34 ID:tHlNETTL] >>775 いや、意味が分らん。 碌にDirectXすら使えない人間が3Dに手をだしてどうしたいんだ? むしろ、本家は本家であの程度でまとまってるからこそ良いライブラリだろ。 もっと色々とやりたかったら海外の3Dライブラリをあさればいい。高機能の多いぞ。 (まぁ、普通に日本語対応がメンドイけど。)
777 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 19:52:53 ID:CrTNgcou] っていうか、DXライブラリ3Dの開発を継続してほしいJEXさん
778 名前:名前は開発中のものです。 mailto:sage [2009/03/08(日) 23:53:47 ID:Os5GQobq] >>772 ,773 弾幕毎に名前付けてるから、気を付けないとまんまになっちゃうんだよね もう開き直っちゃおうかな……
779 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 00:24:37 ID:y+3gsDNg] どうせやるなら「白い弾幕くん」くらい自由度上げてみたらどうだ
780 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 05:38:20 ID:xYWyf4vJ] 縦弾幕だったらどうやったって東方っぽいって言われるのがオチだから、 変なこと気にせず好きにやっちゃえYO!
781 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 13:06:42 ID:Ge4atQjd] 東方のオマージュである、と明記しちゃえば変な因縁はつけられなくなると思う
782 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 13:28:18 ID:1MIteGpr] 自分で考えて実装した者に対して なんという屈辱を。
783 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 14:58:21 ID:Yq7DJGmB] パクってないんなら堂々としてればいいじゃない ここで愚痴る前にちゃっちゃと完成させて もう東方に先を越されないようにすればいいじゃない
784 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 15:06:44 ID:mr6tRDyA] 先を越されたから愚痴ってるんだと思うがのw
785 名前:名前は開発中のものです。 [2009/03/09(月) 15:12:00 ID:anLE8kz6] 新しいの出るごとに被るというと 低速移動時に敵を貫通するとかボム使うとパワーが減るとかその辺りか?
786 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 15:54:45 ID:z4EGzSSU] 別に愚痴のつもりじゃありませんでした こうやって悩むのもゲーム制作の楽しさの一つなので…… 気分を害されたのならすいません >>785 点レートアイテムとか、特殊アイテムを取るとボーナス敵が出る点が……
787 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 17:01:47 ID:GzA1DnX1] どんなシューティングでもお前。。。
788 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 18:04:17 ID:dWRPooR0] Q.○○のパクリですか? A1.はい、参考にしました。 →盗作イクナイ! 俺の好きな○○を汚すな! ○○の公式サイトのBBSに通報(?)書き込み A2.いいえ、オリジナルです。似ているのは偶然でしょう。 →嘘を言うな、正直に言えよ A3.いいえ、○○ではなく△△のパクりです。 →そんなん知らねーよ! △△も○○のパクりだな! 実際にあるから困る。
789 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 18:28:11 ID:aHHsyNV0] 結論:気にせず作れ 作ることにも価値がある
790 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 18:40:02 ID:6kYj4gTE] >>788 どっちかと言うと、この手の奴で、実際にパックたりしてなかったら、 何も答えないのがベスト。ただただ、事務的返しで流すべし。 あと、>>786 みたいのは 東方以前からあるのばっかじゃねぇかよwww それこそ、ファミコン全盛の時代(のアーケード)から・・・・ 「今更それを先を越されたとかwww」 と言われるのが落ちじゃね?
791 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 18:51:35 ID:z4EGzSSU] んー、今更だけど自分で気にしすぎだった気がしてきた 前作が東方をリスペクトしたものだったので、今回も素直に断り書きを入れてみます
792 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 19:02:29 ID:dWRPooR0] パロディにまで昇華させてしまうという手もあるな。
793 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 21:33:00 ID:Zw6a9bk0] siv.creation.googlepages.com/home 知ってるとは思うがこれにはずっと期待してる
794 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 22:34:04 ID:GzA1DnX1] 押しっぱをできなくするようにしたいけど char a[256] GetHitKeyStateAll(char *a) つかうとうまくできねぇ。。 ポインタをctrcmpやるのはおかしいの? それとも配列に入ってるのがおかしいの? 俺の頭がおかしいの?
795 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 23:19:34 ID:2qC8QqlY] >>774 遅レスだがコンストラクタについて幾つか書きます。 さすがに長文書いてコメントが無いのは可哀想だったから。 昔の言語仕様ではコンストラクタではインスタンスの生成途中であるから複雑な処理を書かないようにしていた。これは慣習・慣例の部類の話。 コンパイラの亜種が多くて、C++の仕様外の範疇での動作はどのようになっているのか分からない時代だったからという背景もある。 自分はコンストラクタに初期化処理を噛ませる横着な書き方をしていたときに先輩に指摘された事は、1,2,3以外にも、、、 ・クラス設計者とクラス利用者は同じでない ⇒利用者がstaticで外部変数なインスタンスを生成するかもしれないから、 mainよりも先に呼ばれる処理に複雑な記述を置くべきでない。 つまり、利用者の立場になって明示的に初期化処理を宣言するべき。(手を抜くな) ・戻り値を持たない件に関して、例外処理を使うのは怠惰な手段である。 ⇒try-catchを用いるのは、デバッグの最終手段である。(例外処理はネストできない為) 例外処理は一般的にコンパイラの最適化の阻害となり遅くなる要因となる。(ジャンプテーブルを生成する為) つまり、保持値チェックにはassert使えというお話。 ⇒メモリ確保に失敗する危険性をもっと認識するべき 特定のハードウェアを対象にする場合、大概は独自のメモリアロケーター(dlmalloc等)を実装していることが多く、 new失敗の可能性(インスタンス生成失敗)は大いにある。 とのことでした。 >問題点は、 >「このような状態で他のクラスのインスタンスのメンバ関数を読んだりすると巡り巡ってまだ生成途中の自分自身のメンバ関数が呼ばれるかもしれないから」 >との事です。 これには同意です。 だから「コンストラクタに記述するのはせいぜいメンバ変数に対して初期値の代入ぐらい」に留めている人が大半で自分もそうしています。 いや〜、バグの無いプログラムって難しいですね。
796 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 23:31:07 ID:2qC8QqlY] >>794 上手くできないってどういう意味? char m_cKey[2][256]; //キーバッファ とでもして 毎フレーム void GetAllState(){ memcpy(m_cKey[1],m_cKey[0],256); ::GetHitKeyStateAll(m_cKey[0]); } を呼んで、 int GetKeyPress(int KeyCode){return m_cKey[0][KeyCode];}//キーが押されているかどうか int GetKeyDown(int KeyCode){return (m_cKey[0][KeyCode] && !m_cKey[1][KeyCode]);}//キーが押された瞬間 int GetKeyUp(int KeyCode){return (!m_cKey[0][KeyCode] && m_cKey[1][KeyCode]);}//キーが離された瞬間 とでもすればおk 前フレームとの差分で押された瞬間と話された瞬間を検出するべさ
797 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 23:31:59 ID:6kYj4gTE] >>794 エスパーじゃないんで、 何をやって何ができないのかすら分らん。 とりあえず、×ctrcmp =>○strcmpだと過程しても検討範囲外。 ポインタの使い方とか、関数の使い方は大丈夫だと仮定してもだ・・・・。 そもそも、そのchar a[]が何を入れるか理解してるかい? そいつらに入るのは、あるキーが押されてるかどうかのon offフラグであって、 押されてるキーがchar型として'o'みたいに入るわけじゃないぞ。 押しっぱなしは、基本的には、 char NowKey[256]; char OldKey[256]; // ....somewhere to initilaize Nowkey[] and OldKey[], to 0. GetHitKeyStateAll( NowKey );//Now get putting on key if( NowKey[ KEY_INPUT_Z ] == 1 ) { if( OldKey[KEY_INPUT_Z] != 1 ) { PutOnFUNCTION(); // only not on putting Z_KEY. OldKey[KEY_INPUT_Z]=1; } //There is No doing on putting Z_KEY. } else { OldKey[KEY_INPUT_Z]= 0 ; //No to put Z_KEY, initialize OldKey[] to 0. } な感じに書く。
798 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 23:42:23 ID:YtHLVg0L] 推しっぱをできないようにするなんて int pushOK = 0; とか用意しといて if (a[チェックしたいキー] && pushOK) {押したときの処理} if (!a[チェックしたいキー]) pushOK = 1; とかやればいいじゃない (※厳密な文法に突っ込むのなしね、あと変数名が良くないことにもね)
799 名前:名前は開発中のものです。 mailto:sage [2009/03/09(月) 23:49:28 ID:GzA1DnX1] あぁ。詳しくなくてすまん。ありがとう。 でも、なんとか、動作はしたぜ。
800 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 00:11:41 ID:Y5ijcxK4] LoadSoftImage()でPNG-8のパレットが取得も設定もできん…。 パレットはBMPしか有効じゃないんか。 透過色設定とパレット変更を同時にしようと思うと、PNG-8がベストな選択だったんだけど、 さてどうするべか……。
801 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 00:43:20 ID:liOB0hIm] どっかの時点でBMPに変換されるんだろうけど その時点じゃまだなんだろうかね。 てかそんな命令あったのか……。
802 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 01:39:41 ID:Y5ijcxK4] PNGについてはlibpng使ってるっぽいからなぁ。 パレット変えられないのは困ったぜ。
803 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 02:42:45 ID:f5O5uX62] libpngって最近脆弱性が発見されたよね
804 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 05:14:32 ID:Y5ijcxK4] パレットアニメーション諦めて、アルファブレンディングで代用できるんかな……。 例えば、パレットアニメーションで void PatteGradation(int red,int green,int blue,float ratio) { int new_red,new_green,new_blue; int* p = m_pPalette; //元のパレット配列[3*256] for (int i=0;i<256;++i) { new_red = *p + (int)((red - *p)*ratio); p++; new_green = *p + (int)((green - *p)*ratio); p++; new_blue = *p + (int)((blue - *p)*ratio); SetPaletteSoftImage(m_nSoftHandle,i,new_red,new_green,new_blue,0); } } という感じで指定の色(red,green,blue)にratioの比(0〜1.0)で近づくエフェクトを考えているんですが、 これと同じ機能をブレンドモードを変更することで代用可です? 上手い演算具合が見つからない。
805 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 05:17:44 ID:Y5ijcxK4] あ、一個p++抜けてた。 でも、伝えたいことは伝わったはず。
806 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 05:52:02 ID:6T+yw6I/] フェードイン?
807 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 06:29:38 ID:Y5ijcxK4] そうですね、指定色へのフェードイン・フェードアウトという感じです。 SetDrawBright()では黒フェードが出来ますが、それの多色化&抜き色対応版です。
808 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 09:58:02 ID:1/mzBUbU] 2パターンだけ作って重ねてアルファを変えていくのが効率いいんじゃないかな
809 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 11:39:59 ID:xhsEfov4] >>793 ゲームパッドがX-BOX専用コントローラーしか使えないとか論外すぎる。
810 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 15:29:37 ID:AMym+srg] >>809 つ www.4gamer.net/games/027/G002741/20090227065/
811 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 16:10:09 ID:qoncgAvF] 使う側ならともかく、作って配布する側ならそれは解決にならんでしょ。 まあ自分で対応のパッド追加できると思うけどな。
812 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 16:12:21 ID:xhsEfov4] >>810 いや、そういう問題では・・
813 名前:名前は開発中のものです。 mailto:sage [2009/03/10(火) 21:25:09 ID:LXtgug0h] >>809 やっぱり白黒2値のパターンが別途居るようですよね……。 PNG使ってるのに、わざわざマスク画像が必要なのがめんどくさいと敬遠しているんですよ。
814 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 00:49:09 ID:SDHRypL0] あれGraphLockって関数がいつのまにか消えたのか、と思って検索したら出た hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=1044 >GraphLock は現在のPC環境に適していないので非公開関数にすることにしました これってどういう意味なの?非対応な環境が多いの?詳しい人教えて 一応コピペ 宣言 int GraphLock( int GrHandle , int *PitchBuf , void **DataPointBuf ) ; 概略 グラフィックメモリ領域のロック 引数 GrHandle : ロックするグラフィックのハンドル(または画面の識別子) PitchBuf : ロックするグラフィックの1ライン辺りのバイト数を保存する変数へのポインタ DataPointBuf :グラフィックデータのあるメモリへのアドレスを保存するポインタへのポインタ 戻り値 0:成功 −1:エラー発生 宣言 int GraphUnLock( int GrHandle ) ; 概略 グラフィックメモリ領域のロック解除 引数 GrHandle : ロックしたグラフィックのハンドル(または画面の識別子) 戻り値 0:成功 −1:エラー発生
815 名前:名前は開発中のものです。 [2009/03/11(水) 12:48:22 ID:4qWzS982] >>814 対応してないとかじゃなくて、単に古くて多用されない技術だからじゃないかと無責任に予想
816 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 23:25:34 ID:tpGaQ5tp] 使えたら部分的なぼかしとか波紋とか屈折描画とかできて表現の幅ひろがりまくりんぐなのに・・・
817 名前:名前は開発中のものです。 mailto:sage [2009/03/11(水) 23:28:32 ID:jT1zwAC2] シェーダサポートフラグですね。わかります。
818 名前:名前は開発中のものです。 mailto:sage [2009/03/12(木) 00:06:32 ID:5lgaab4l] >>816 いいなぁそういうの使ってみたい。
819 名前:名前は開発中のものです。 mailto:sage [2009/03/12(木) 14:35:44 ID:hH9qj7K7] 歪みはテクスチャに背景を描画→2Dポリゴンで挑戦中
820 名前:名前は開発中のものです。 mailto:sage [2009/03/12(木) 23:20:03 ID:TV/Jr7F7] >>814 からの流れに関連してるかわからないけど、 ちょっと前に気になった事があるので質問させてください LoadGraph系統以外で作成したグラフィックハンドルから グラフィックデータのメモリを参照し、編集する事ってできないんしょうか? SoftImage系の関数で同じような事はできるみたいだけど、 これは画像ファイルから取得したもののみですよね。。
821 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 00:27:53 ID:CMJVUsQ6] >>820 MakeXXXColorSoftImageじゃあかんの?
822 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 00:43:55 ID:GbqqCgmR] Easy3D正式版きてるな
823 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 01:09:59 ID:H+Qfngp2] >>820 ありがとう、今気付いたんだけど先に用途を書くべきでした。 例えば>>816 の波紋を実現しようと考えた時、 「このエフェクトをかける前までに描画された画面から エフェクトをかけたい矩形のグラフィックを取得して、 これを元にピクセルを書き換える」 という処理を考えてみたんですが、GetPixelは重いようなので、 なら直接メモリを参照できないかと思った次第です。 MakeXXXColorSoftImageで作成するのはソフトグラフィックハンドルなので、 ここを描画先にしたりはできませんよね。。?
824 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 01:19:10 ID:H+Qfngp2] >>823 訂正:ソフトグラフィックハンドル->ソフトイメージハンドル あと「描画先」と書いたのは、「DrawGraph等で描画できる描画先」という意味です。 直接グラフィックハンドルをソフトイメージハンドルに変換できる方法があればよいのですが。 そもそもこの考え方自体がアホなんでしょうか。。。
825 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 03:43:56 ID:CMJVUsQ6] >>824 画面全体にエフェクトを掛けたりするのに有ると便利だが、ちょっと調べてみたが出来ないっぽいね。 そもそもLoadGraphやMakeGraphはVRAMに転送した時点でPC環境に依った画像フォーマットに変換されちゃうから、 そこからソフトイメージハンドルを生成するとなると、コンバーター(デコーダ相当)が必要になる。 DXライブラリの作者としては手間が掛かるから、要望が無い限り実装を見送っていると予想している。 優しい作者さんなんで、要望送ってみてはどうかな? 現状で対応するとなると、どうしても遅くなるが、 画面サイズと同じ大きさにMakeGraphした裏画面領域をSetDrawScreenして、 一連の画像を転送し、GetPixcelとDrawPixcelするのがベストな選択かねぇ。 SaveDrawScreenを使ってbmp保存して、そこからSoftImageを作るという最終手段もある。(とても遅い)
826 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 03:50:25 ID:CMJVUsQ6] >>823 ああ。書いてておもったが、SaveDrawScreenがあるから、デコーダ処理は既に内部には出来てるのか。 作者に要望だすと、すぐに実装してくれると思うよ。
827 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 04:00:17 ID:HX55tf54] 解説 グラフィックデータのあるメモリ領域には『ロック』をしなくては アクセスする事が出来ません。 細かい事は抜きにしてとにかくWindows 環境ではメモリの管理が厳重なので malloc関数 などで確保したメモリ 領域のように簡単にはアクセスは出来ないようになっています。だから 『ロック』という作業を行い直接アクセスできるようにします。 グフィック領域に直接アクセスする利点はDrawPixel や GetPixel 関数を使用するよりも処理が速い、等があります。 ロックの説明をはじめる前に注意なのですが、ロックを行った場合は 直接アクセスが終り次第直ちにロックを解除してください。 ロックを している最中にデバッグモードなどのブレークポイントを使ってプロ グラムを止めるとハングアップするので注意してください。 ロックを すると 『GraphUnLock』関数を使用してロックを解除しない限り DrawLineをはじめすべての描画関数が使用不可能になるので注意してください。 では話を元に戻します。 ロックをするにはまずロックをしたいグラフィックハンドル、または DX_SCREEN_FRONT , DX_SCREEN_BACK 識別子を使って画面をロックする 事も出来ます。 ロックが完了すると関数は PitchBuf に指定したポインタにロック したグラフィック領域の1ライン辺りのバイト数と、DataPointBuf で 指定したポインタにロックしたグラフィックへのアドレスが代入されます。 こうしてロックしたグラフィック領域にはめでたく直接アクセスが 出来るようになります。まず希望の座標(点)にアクセスするには 以下の式を用います (グラフィック領域の先頭アドレス) + (X座標値 × (グラフィックのカラービット数 ÷ 8)) + (Y座標値 × 1ライン辺りのバイト数) = 希望の座標のポインタ
828 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 04:02:17 ID:HX55tf54] この中の『グラフィック領域の先頭アドレス』と言うのは DataPointBuf から取得できる値、『1ライン辺りのバイト数』は PitchBuf から取得できる値 『グラフィックのカラービット数は』SetGraphMode関数 の 引数 ColorBitNum の値(デフォルトでは16です)となります。 次に1ドット辺りのビット数はカラービット数と比例します、以下に カラービット数と一般のデータ型との比例関係を示します。 8bitカラー char 型と同サイズ 16bitカラー short 型と同サイズ 32bitカラー int 型と同サイズ もし16ビットカラーのグラフィックに1ドット分データのアクセスを するつもりで int 型変数で値を代入した場合は2ドット分描画してしまう ので注意してください。(アドレスの算出のときも同じです) 注 … グラフィックをロックする場合は SetUse3DFlag 関数で3D機能を使わない設定にしてからLoadGraph,MakeGraph等で作られたグラフィックでないとロックは失敗します。 例 128×128のグラフィックデータを作成し、座標( 24 , 11 ) の点に色コード0を代入します。(16ビットカラー) char *GraphData ; short *DrawPoint ; int Pitch , GHandle ; // グラフィックの作成 GHandle = MakeGraph( 128 , 128 ) ; // グラフィックのロック GraphLock( GHandle , &Pitch , &GraphData ) ; // 座標( 24 , 11 )のデータのアドレスを算出 DrawPoint = ( short * )( GraphData + 24 * ( 16 / 8 ) + 11 * Pitch ) ; // 色コード0を代入します *DrawPoint = 0 ; // ロックを解除します GraphUnLock( GHandle ) ;
829 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 04:05:06 ID:HX55tf54] サンプル 表画面をロックして直接アクセスで画面にグラデーションを描きます #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){ int i , j , k ; int Pitch ; short *DrawPoint , Cr ; char *GraphData ; if( DxLib_Init() == -1 ){return -1;} // 表画面をロックします GraphLock( DX_SCREEN_FRONT , &Pitch , ( void ** )&GraphData ) ; // 画面にグラデーションを描きます for( i = 0 ; i < 480 ; i ++ ) { for( j = 0 ; j < 640 ; j ++ ) { // 色の値を取得 k = 255 * i / 480 ; Cr = ( short )GetColor( k , k , k ) ; // 描画する座標のポインタを計算 DrawPoint = ( short * )( GraphData + j * ( 16 / 8 ) + i * Pitch ) ; // グラフィックデータへの直接アクセスで点を描画 *DrawPoint = Cr ; } } // 表画面のロックを解除(『GraphUnLock』使用) GraphUnLock( DX_SCREEN_FRONT ) ; // キーの入力待ち WaitKey() ; DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 }
830 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 04:17:46 ID:CMJVUsQ6] >>827 ありがとう。 GraphLock/Unlockなかなか便利だねぇ ちょっと使ってみます 作者から非公開関数になった理由が知りたいとこだね
831 名前:名前は開発中のものです。 mailto:sage [2009/03/13(金) 10:15:03 ID:H+Qfngp2] >>825-829 なるほど、そのためのGraphLock/UnLockだったのか。 あと非公開関数になっただけで使う事はできるんですね。 てっきり使用すらできなくなったものだとばかり思ってました。。。 とりあえずはこれで出来そうなので、デコード処理の要望の方は見送ろうかと思います。 お二方とも、ありがとうございました。