- 1 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 23:06:39 ID:Ns2HwhRB]
- Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、 「DXライブラリ」に関するスレッドです。 DXライブラリの詳細ついては homepage2.nifty.com/natupaji/DxLib/ を参照して頂きたい。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
- 551 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 12:38:49 ID:I1TOnfGu]
- しまったw
こんな単純なミスをずっと気がつかなかったのか。 >>550 下らん質問に答えてくれてありがとう。
- 552 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 13:27:32 ID:I1TOnfGu]
- >>550
のミスを修正していざデバッグしたら 'atan2' : オーバーロード関数の呼び出しを解決することができません。 ってエラー出るんだけど、何が悪いの?ENEMY move02 = {300,1,0};で整数がatan2のy.xに代入されてるから?
- 553 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 13:50:42 ID:BwimhXf8]
- math.hはincludeしてる?
- 554 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 13:58:39 ID:I1TOnfGu]
- >>553
ちゃんとしているよ。
- 555 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 13:59:38 ID:BwimhXf8]
- float と double で、、てのもC#ならともかくC++じゃなあ。
とりあえずキャストしてみては?
- 556 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:19:59 ID:I1TOnfGu]
- static_cast(double)でやってみても普通のキャストでもダメだw
atan2関数って結構クセもんだな
- 557 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:21:08 ID:Lgzy7JPK]
- まだどこか、カンマとピリオドをうち間違えてるのかも。
フォントが小さいと分かりにくいから要注意。
- 558 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:31:10 ID:5y8IMZn/]
- atan2といえば、ゲーム実行中にドメインエラーがよく出たなー。
- 559 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:31:57 ID:4++6mc8t]
- atan2( (double)move02.eny , (double)move02.enx);
でどうですか?
- 560 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:35:07 ID:I1TOnfGu]
- >>>557
エラーがこれだけだから、多分何かが違うんだと思う enemy_move.cpp(63) : error C2668: 'atan2' : オーバーロード関数の呼び出しを解決することができません。(新機能 ; ヘルプを参照) 1> d:\c++\vc\include\math.h(547): 'long double atan2(long double,long double)' の可能性があります。 1> d:\c++\vc\include\math.h(499): または 'float atan2(float,float)' 1> d:\c++\vc\include\math.h(110): または 'double atan2(double,double)' 1> 引数リスト '(int, int)' を一致させようとしているとき 多重定義もクソも一回しか使ってないんだけどw
- 561 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:37:25 ID:I1TOnfGu]
- >>559
あ、今度はうまくいった。 一つ一つにキャストしないといけないのかー。 不便だな結構。
- 562 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:39:13 ID:bDlTbbmG]
- ちょ、、、どうやろうとしてたんだ?w
- 563 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:42:13 ID:I1TOnfGu]
- double test = (double)atan2(move02.eny , move02.enx);
これで一気に出来ると信じてた
- 564 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:43:55 ID:Fn2JO3tM]
- 敵の座標や速度は小数にして必要なときに整数にキャストするのがよくね
位置が整数だと2フレームで1px動かすときとか苦労する >>563 関数のオーバーロードは引数で区別される
- 565 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 14:45:42 ID:Fn2JO3tM]
- ちなみにそれだと関数が返した値をdouble型にキャスト変換するだけで関数の評価には関係ない
- 566 名前:名前は開発中のものです。 mailto:sage [2008/07/30(水) 16:21:00 ID:I1TOnfGu]
- atan2を使ってて思ったんだけど。
敵にsin波の動きをさせるだけだったらatan2使わないでsin使ったほうが楽だよね?
- 567 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 05:31:29 ID:OJUOAbtf]
- >>556
え!? static_castとか知ってて普通のキャストの基礎知らなかったりするのはかなり意外なんだけど >>566 そもそもどうしてatan2を使おうと思ったんだい?
- 568 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 11:25:29 ID:6cZaCcAX]
- static_cast(double)じゃなくてstatic_cast<double>だけどな
- 569 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 18:11:14 ID:r/NTYYBz]
- 返り値をキャストしてもショウガナイですね・・。
math.hの関数はよくint型引数にしようとして失敗したことが昔ありましたねぇ で、atan2は敵と自機の角度求めたりするのによく使いますけど、 波の表現には使いませんねぇ math.hの関数はどれも遅いので、なるべく使わないようにしてはどうでしょう
- 570 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 21:35:59 ID:7gZA2bfW]
- >>569
math.hの関数を使わないでのsin波の場合だとどうなるんだろう・・・。 sinもmathだと思うし、何を使うべきなんですかね
- 571 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 21:38:43 ID:DHgf9I5V]
- fastmath.h
- 572 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 23:26:36 ID:iw2uu9Rv]
- neetmath.h
- 573 名前:名前は開発中のものです。 mailto:sage [2008/07/31(木) 23:38:05 ID:TL4sUMQR]
- >>570
まずはmath.hの三角関数を使うべきだと思う。 今どきのPCで三角関数のコストが無視できない状況なんてあまり無い。 もしVCを使っているなら、 #pragma intrinsic の使用を検討してみるといいよ。 コンパイラのビルトイン関数を使うことで速度向上が期待できる。 gccならデフォルトでビルトイン関数が適用されてる。
- 574 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 11:40:12 ID:nuMWOD8l]
- 環境はc++とDXライブラリ
#pragma intrinsicってprintfとかのだよね? c++だとあんまり使ってないや
- 575 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 16:30:58 ID:GtdXG6pu]
- 画像の拡大縮小、反転などを併用したい場合は、素材側で対応するのが無難でしょうか?
一度描画したものをGetDrawScreenGraph()で取り込んで、別の方法で描画…というのはできましたが、 良い方法とは思えません。
- 576 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 21:20:18 ID:qPjnEgAD]
- 背景含めて全部まとめて動かすってこと?
- 577 名前:名前は開発中のものです。 mailto:sage [2008/08/01(金) 23:31:27 ID:GtdXG6pu]
- >576
int gHnd=LoadGraph("0002.jpeg"); //0002.jpegは50*50pixelの画像ファイル int gHnd2 = MakeGraph(100,100); DrawGraph(300,300,gHnd,true); DrawExtendGraph(0,0,100,100,gHnd,true);//縦横2倍に拡大して描画 GetDrawScreenGraph(0,0,100,100,gHnd2);//描画されたgHndを読み取る DrawTurnGraph(100,0,gHnd2,true);//左右反転して表示 めちゃくちゃなことをしているのは分かっています…
- 578 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 00:38:21 ID:AuP8vB/z]
- int gHnd = LoadGraph("0002.jpeg");
DrawRotaGraph(50, 50, 2, 0, gHnd, true, true); // 2倍拡大+透過+反転 こういうことかな
- 579 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 00:52:28 ID:LP1XDt9q]
- >578
ありがとうございます! リファレンスの読み込み不足だったようですね…お恥ずかしい限りです。
- 580 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 02:49:35 ID:yuB/nvf2]
- 自分も>>575の方と似たような事で詰まってるのでお力添えを…。
ttp://www1.axfc.net/uploader/He/so/125847.png&key=game と、縦横別倍率で拡大、と、画像の回転を両立させたいんです。 これが背景でしたら>>577と同様の方法で、 DrawExtendGraph→GetDrawScreenGraph→DrawRotaGraphといけそうですが、 エフェクトで使いたい処理なので、既に背景などが描画されているメイン画面は使えないという状況です。 こういった場合は何か作業領域などを作るしか方法は無いのでしょうか…?
- 581 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 09:44:54 ID:2jU8Dntq]
- DrawModiGraph
- 582 名前:名前は開発中のものです。 mailto:sage [2008/08/02(土) 09:52:10 ID:ejRXzIue]
- 最悪DrawPolygon3Dでどうとでもできるわな
- 583 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 02:27:17 ID:iWpnfRGq]
- >>581
あぁ、こんな使い方も出来たんですね…。知識不足ですみません。 これで何とか考えた通りに出来ました。本当にありがとうございます。
- 584 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 11:03:48 ID:KmvncGNt]
- DXライブラリ、サンプルプログラムのスクロール基本なんですが
ttp://homepage2.nifty.com/natupaji/DxLib/dxprogram.html#N4 手計算だとどうしても描画用マップチップの配列(座標)が0,0からスタートしてくれません プログラムは当然ちゃんと想定どおり動いてるのですが、 プレイヤーの初期位置Xが2、Yが2状態で計算すると DrawMapChipNumX は 11 DrawMapChipNumY は 8 MapDrawPointX は -3 MapDrawPointY は -2 となり、マップの描画を決めるループを手繰っていくと、i が3以上、j が4以上にならないと条件を満たさず、 その条件で計算すると、MapData[ i + MapDrawPointY ][ j + MapDrawPointX ] は[1][1]が代入されると思うのですが・・・ こちらの計算違いではあるのですが、どこがおかしいのか分からないので間違ってるところを教えてください
- 585 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 12:08:48 ID:S+BsW+Rs]
- if( j + MapDrawPointX < 0 || i + MapDrawPointY < 0 ) continue; // 描画しない
if( MapData[ i + MapDrawPointY ][ j + MapDrawPointX ] == 0 ) DrawBox(); ↓ if( a < 0 || b < 0 ) continue; // 描画しない if( MapData[ b ][ a ] == 0 ) DrawBox(); どうみても最初の描画は MapData[ 0 ][ 0 ] ですね
- 586 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 13:09:28 ID:KmvncGNt]
- 回答ありがとうございます、しかし、頭がこんがらがってきました
if( a < 0 || b < 0 ) continue; // 描画しない これって人間の言葉にすると「aがゼロより小さい、または、bがゼロより小さいときは描画しない」ですよね? ということは、ループの中で a=0 b=0 が与えられたとする条件を満たしてないと思うのですが・・・ 自分が間違ってそうな箇所はわかりました、、どうやら論理演算子と関係演算子をもう一度勉強しないとだめみたいですね
- 587 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 13:22:36 ID:s3YJPvG5]
- >ループの中で a=0 b=0 が与えられたとする条件
意味が良くわからないんだが、 どこで与えられた 何のための条件?
- 588 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 13:46:05 ID:rlVyTzUB]
- >>213
ありがとうございます 大体解りました
- 589 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 13:48:13 ID:KmvncGNt]
- >>587
× (a=0 b=0)が与えられたとする条件 ○ (a=0 b=0)が与えられたとしても、条件(を満たしていない) ですね、編集してるうちに変な文章になってしまってました、すみません どこで与えられた、というのは多重ループの中で i + MapDrawPointY //*1 j + MapDrawPointX //*2 を計算した結果だと思っていただければ・・・最終的に欲しい答えが MapData[ 0 ][ 0 ] ですから、一行前のエリア外を描画しないための制御文、 if( j + MapDrawPointX < 0 || i + MapDrawPointY < 0 ) continue; // 描画しない のところで、*1も*2もいずれも0の状態で条件分岐を通過してくれないといけないわけですが、 そこのところが自分の理解では「通過しないはず」なので困っていました
- 590 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 14:32:28 ID:S+BsW+Rs]
- if (a < 0 || b < 0) continue;
↓ if (0 < 0 || 0 < 0) continue; ↓ if (false || false) continue; ↓ if (false) continue; // continueは実行されますか?されませんか?
- 591 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 14:41:23 ID:KmvncGNt]
- >>590
解りやすい解説ありがとうございます、 自分の誤解が招いた疑問が氷解しました・・・
- 592 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 15:10:05 ID:Q1RwoYf2]
- 敵を少しでも多く表示しようとするとカクカクになるw
- 593 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 15:24:02 ID:0ZCECk8O]
- >>592
解像度(スクリーンの大きさ)を1/4(縦、横ともに半分)にするのです。 それだけで、貴方のアプリケーションの速度は劇的に改善するでしょう。 と言ってみるテスト。 毎回ファイル読み込みとかしてないか注意。
- 594 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 15:33:45 ID:s3YJPvG5]
- >>592
このスレの>>478あたりから読み直してみるといい。
- 595 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 22:37:42 ID:Q1RwoYf2]
- >>594
悪い、同人物だ。 今度こそはメモリから読み込んでいるのにカクカクだぜ
- 596 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 22:45:50 ID:+Yq3eKTl]
- メモリから読み込む、ってのがループ内だと意味ないんだぜ?
つーかソースどころか状況もわからんのに答えられるわけなかろう。 あてずっぽうのアドバイスが欲しいのか? あてずっぽう考えるのだって大変なんだぜ?
- 597 名前:名前は開発中のものです。 mailto:sage [2008/08/03(日) 22:47:35 ID:xylQeBNi]
- 処理ごとの速度を計測すれば、どこに時間食ってるかわかるし、
解決策も自ずと見えてくる
- 598 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 00:33:29 ID:0yRulxuI]
- >>596
あーもしかしたらそうなってるかも。 大まかなソース↓ (enemy_move) typedef struct{ int enx; //敵 x座標 int eny; //敵 y座標 int flag; //フラグ int counter; //カウンター } ENEMY; ENEMY move01 = {100,1,0}; (略) void enemy_move_02(){ //x100から左寄りのsin波移動 move02.enx+=sin(PI*move02.eny/80)*5; move02.eny+=1.5f; enemy_img = LoadGraph("date/img/enemy.bmp"); DrawGraph( move02.enx , move02.eny , enemy_img , TRUE ) ; DeleteGraph( enemy_img ) ; } ↑こんな感じのコードをexternでmain.cppの方で動かしてる、main.cppではwhileでこれらをループしてて、エスケープを押すとブレイクするようになってる。 竜神録のサイトを参考にして丸写しじゃツマランから自分で考えて作ってるんだけど、難しいな。
- 599 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 00:38:34 ID:7CBzeKTD]
- それだと動かすたびに読み込んで削除してを一々やってる
ゲームループの前に1回だけ読み込んで不要になったら削除
- 600 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 00:49:06 ID:0yRulxuI]
- >>599
となると、while文が入る前にexternなりなんなりで読み込みだけを済ませるほうが良いって事? というか全部の使う素材は全部ゲームループする前にメモリに読み込ませた方が良いって事だよね? それだと俺大幅な修正が必要になりそうw
- 601 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 01:02:17 ID:SorplbiK]
- >>600
やりたくないんならやらなければ良いよ。学校の授業じゃないんだから。 多分分かってるんだろうけど>>599の言ってる事(内容)は適宜だよ。 修正が必要なら修正するだけだろ 戦わなきゃ現実と
- 602 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 01:10:24 ID:Vp8LYTR0]
- >>600
外部ファイルの関数を使うときは、普通はexternを使わないで、プロトタイプ宣言を使うらしいよ。 あと、enemy_imgをNULLで初期化されてるなら、 if ( enemy_img == NULL ) { enemy_img = LoadGraph("date/img/enemy.bmp"; } という怪しげな応急処置で済ますことも可能。
- 603 名前:名前は開発中のものです。 mailto:sage [2008/08/04(月) 03:17:57 ID:2eoeRGcN]
- >>598
龍神録プログラミングの館見て解らない事あるんなら、 そこの掲示板で聞けば ttp://l.huu.cc/board/ 館の質問に限らず何にでも答えてくれるし
- 604 名前:名前は開発中のものです。 mailto:sage [2008/08/05(火) 16:26:30 ID:oHDI2BWt]
- 320x240ドットのゲームの画面出力を640x480のサイズのウィンドウに表示したいのですが、
それをDXライブラリでやる一般的な方法ってありますか? って質問を書いてたらちょうどマニュアルで int SetWindowSizeExtendRate( double ExRate ) ; を見つけられました。 本当にありがとうございました。
- 605 名前:名前は開発中のものです。 mailto:sage [2008/08/05(火) 19:38:02 ID:EpXD5UKo]
- 縦横比をどうにかできる方法があれば凄いんだけどね・・・。
4:3モニタの時代は終わったのかな。 最近ワイドモニタ多すぎ。特にノート。 テストしてもらった知り合いのPCが殆どワイドだったのに驚愕した。
- 606 名前:名前は開発中のものです。 mailto:sage [2008/08/05(火) 20:28:53 ID:CKp+IHYO]
- 歩留まりがいいらしいからね
- 607 名前:名前は開発中のものです。 mailto:sage [2008/08/05(火) 20:57:36 ID:31D+/5a6]
- 横シューを作れという事じゃなかったのか。
- 608 名前:名前は開発中のものです。 mailto:sage [2008/08/05(火) 21:12:24 ID:YYddeISL]
- >>604の方法で拡大すると320*240非対応のディスプレイでフルスクリーン化出来ないし
うちの環境だとアンチエイリアスがかかって見難くなるんで @320*240のサイズで描画 A空のグラフィックハンドルに@を取得 B640*480に拡大して貼り付け ってやってるんだがCPU使用率が跳ね上がる おとなしくSetWindowSizeExtendRateで拡大したほうが良いんだろうか
- 609 名前:名前は開発中のものです。 mailto:sage [2008/08/05(火) 22:32:25 ID:vtCV6T3y]
- 横シューよりドラゴンバスターみたいなアクションがやりたい
- 610 名前:名前は開発中のものです。 mailto:sage [2008/08/06(水) 00:20:08 ID:+mP1DFYH]
- >>608
hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=view&no=583
- 611 名前:名前は開発中のものです。 mailto:sage [2008/08/06(水) 20:46:19 ID:e8apu092]
- >>610
かなり改善されたわ dクス
- 612 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 21:27:43 ID:BMBqvRRu]
- マップチップ画像を分割で読み込んだ後、それを複数枚横に並べた画像を“描画せず”に1枚の画像としてメモリに格納するにはどうすればいいのでしょうか?
具体的には、たとえばこんな5×3のマップがあるとします(0=山、1=川とする) 0,1,1,1,0 1,1,1,1,1 0,0,0,0,0 この1列目の0,1,1,1,0を描画した結果の絵、つまり「山川川川山」という画像をGHandle[1]に格納(描画せずに)させたいんです。 もしマップチップ1枚の画像サイズが縦横32*32だとすれば、160*32の画像を1枚作ることになります。
- 613 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 21:49:24 ID:qrl05lIa]
- >>612
MakeGraph使うんじゃないの?
- 614 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 21:51:26 ID:IbgkXEDA]
- 裏画面に描画して、ってやり方じゃダメかな。
何の意味があるのか知らないけど。
- 615 名前:名前は開発中のものです。 [2008/08/07(木) 21:52:01 ID:O800tzRD]
- 普通にLoadGraphでいいじゃん
- 616 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 22:09:30 ID:BMBqvRRu]
- やりたいことは・・・ロードランナーでいうと、完全なサイドビューではなく、レンガの上面(キャラクターが乗って触れてる面)も見えるようなビューにして奥行きを出したいんです。
上面を描くのに、まず完全サイドビュー視点のマップ画像を一列分つくって、それを台形のように変形させて(高さも潰して)対応させようかと思いました。
- 617 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 22:16:01 ID:BMBqvRRu]
- 普通はレンガの上面はみえないけど・・・
www7.ocn.ne.jp/~bacube/oldgame01/load2_3.gif レンガの上面も見えるようなビューにして奥行きを出したい www7.ocn.ne.jp/~bacube/oldgame01/load2_2.gif 斜め画像を用意しておくのも手ですが、それをせずに済ませたいんです。
- 618 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 22:16:51 ID:sPTbyZsz]
- 3D
- 619 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 22:24:23 ID:BMBqvRRu]
- あ、上面だけでなくサイドの面も描く必要があるか。
自分の方法だと面倒だな・・・ >>618 たしかに3Dのほうが楽かもしれないですね。 こっちにしようかな 無駄な質問をしてしまったようでみなさん申し訳ないです。
- 620 名前:名前は開発中のものです。 mailto:sage [2008/08/07(木) 22:47:55 ID:qrl05lIa]
- >>612
MakeGraphで作ったグラフィックをSetDrawScreenで指定して書き込めば良いのではないかと思ったけれど、 「3D機能をOFFにしなければいけない」とか「ロックしないといけない」っていうのがあって、めんどくさいな。
- 621 名前:名前は開発中のものです。 mailto:sage [2008/08/08(金) 00:18:40 ID:k2u31CRe]
- 普通にドット絵を描けばいい気がする。
- 622 名前:名前は開発中のものです。 mailto:sage [2008/08/09(土) 21:19:32 ID:5H+GkDR5]
- 画面に描画した内容をまっさらに直したいというだけなら、
ClearDrawScreen()の代わりにDrawBox()などを使用しても問題ありませんか? また、問題ないのでしたら、このふたつは処理速度上、どちらが有利でしょうか?
- 623 名前:名前は開発中のものです。 mailto:sage [2008/08/09(土) 21:38:06 ID:AID2npSx]
- 自分で試せば済む事でしょう。
- 624 名前:名前は開発中のものです。 mailto:sage [2008/08/09(土) 21:44:53 ID:5H+GkDR5]
- >623
動作は確認したのですが、ClearDrawScreen()には、何か目に見える動作意外にも、 役割があるのではと思いまして…
- 625 名前:名前は開発中のものです。 mailto:sage [2008/08/12(火) 00:53:34 ID:F3VDNdY9]
- SetDrawBlendModeの
DX_BLENDMODE_INVSRC が使えないんだけど 俺だけかな・・・ バージョンふるいのかなあ
- 626 名前:名前は開発中のものです。 mailto:sage [2008/08/12(火) 15:36:18 ID:mn/79eK/]
- >>625
使えないって定義がされて無いといわれるんでしょうか? もしそれならヘッダファイルのDX_BLENDMODE_....に あたる部分を探してみては?
- 627 名前:名前は開発中のものです。 mailto:sage [2008/08/12(火) 22:39:16 ID:yxG5mAbd]
- C#でDXライブラリを使っているのですが、画像や音楽の保存場所がわからなく困っています。
初歩的な質問と存じますが、アドバイスをお願いします。 開発環境 Visual C# 2008 Express Edition
- 628 名前:名前は開発中のものです。 mailto:sage [2008/08/12(火) 23:02:09 ID:kcKrfT4b]
- カレントディレクトリに置いたらいいよ。
- 629 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 08:48:19 ID:yFX3V9Dg]
- C#でも使えるのか
すごいなぁ 業務アプリや科学計算ばっかりでゲームとか作ったことないけど 俺もパズルゲーム作ってみようかな
- 630 名前:627 mailto:sage [2008/08/13(水) 11:08:10 ID:7NjPpTlV]
- 教えていただき、ありがとうございます。
カレントディレクトリって、作業中のフォルダですよね? C#の場合ですと、[WindowsFormsApplication1]フォルダでいいのでしょうか? 何度も申し訳ありませんが、よろしくお願いします。
- 631 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 11:22:56 ID:FyPLvjSN]
- C#がどんなのか知らないけどな。
カレントディレクトリってのが作業中のフォルダって認識は合ってる。 ただ「なんの作業中か」を誤解している可能性がある。 例えば、貴方がゲームを作って、そのプログラムが「game.exe」というファイル名で作成されたとしよう。 当然、そのゲームをするにはその「game.exe」を実行するわけだが、 その時、まさにその「game.exe」のあるフォルダが「作業中のフォルダ」になるわけだ。 要するに「カレントディレクトリに置いたらいいよ」ってのは 「実行ファイルと同じとこに置いとけ」という意味だ。
- 632 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 11:42:08 ID:ZEZwt305]
- いやー、その説明はどうかと。
- 633 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 11:42:13 ID:BbNVLc2o]
- ショートカット経由で起動した場合はショートカットの場所がカレントになるだろ
- 634 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 12:10:59 ID:ZEZwt305]
- まあとにかく、リソースの類はファイル埋め込むかEXEの場所に。
カレントをあてにせず、EXEの場所を調べてアクセスするのがいいかな。 書き込む場合はEXEの場所じゃないほうがいい。
- 635 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 12:21:47 ID:yFX3V9Dg]
- カレントディレクトリは、OpenFileDialogを使ったりすると
読み込み先のフォルダに変わったりするから注意した方がいいと思うぞ それが原因で詰まったこともあるから
- 636 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 17:09:46 ID:RJ+2pmNA]
- 適当にカレントディレクトリに置けばいいとか言った。反省はしている。
相対パスでアクセスしたいってことだよね? それとも絶対パスでも画像とかが動かないの? 後者だとお手上げ。 前者なら、多分bin/Debugフォルダが作られてるから、そこに置けばいいよ。
- 637 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 17:31:59 ID:yFX3V9Dg]
- DXライブラリゲームプログラム開発講座を全部読んでみたけど、
すごーーーーーーーく初心者向けの解説だなw まぁこれで十分なのかも知れないけど、 もう少し詳しい中級者レベルのはないのかな
- 638 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 17:40:55 ID:gDnH2Ick]
- 中級者なら自分で考えるか、他の方法知ってる前提なんだろ
- 639 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 18:56:43 ID:R5DuEQYn]
- >>637
DXライブラリについて勉強したいならココダロー l.huu.cc/g/ 龍神録プログラミングの館まで全部理解出来れば相当使いこなせるようになるかと
- 640 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 19:00:40 ID:yFX3V9Dg]
- >>639
おおありがとう こっちはもう少し実践的だね
- 641 名前:627 mailto:sage [2008/08/13(水) 20:13:52 ID:7NjPpTlV]
- 皆さん、教えていただいてありがとうございます。
画像をbin/フォルダの下にあるDebugフォルダに入れたのですが、表示されませんでした。 某サイトのソースをコピーしたのですが、記述が間違ってるのでしょうか・・・ -- ソース -- DX.LoadGraphScreen(0, 0, "char.png", DX.TRUE); 申し訳ありませんが、アドバイスをお願いします。
- 642 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 20:18:45 ID:v0IoKL7W]
- LoadGraphScreen(0, 0, "char.png", TRUE);
- 643 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 23:34:45 ID:ZpXLkfXI]
- >>641
それで、問題が解決できる奴がいたとしたら、そいつはエスパーだよ・・・・・ まさか、それでソースが全部なわけないよな。
- 644 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 23:49:59 ID:RJ+2pmNA]
- >>641
確認したいんだけど、画面は真っ黒になってる? なってなかったらそもそもDXライブラリがちゃんと動いてない。 でも一応動いてるみたいだからそれはないかな……。 あとchar.pngを一回絶対パスで指定してみて。
- 645 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 23:50:43 ID:CMyXDagd]
- >>641
表示されないというのが「エラーが出た」なのか、「何も起きない」なのかすら わからないので、無限の可能性が広がります。 1. ファイル名が間違っている 2. 画像に使ってる色が透過色になってる 3. ファイルが存在しない 4. 画像がセーブできてない(セーブに失敗している) 5. パスの指定がうまくいってない 6. そもそもDXライブラリを初期化できていない 7. ウィンドウが出てない 8. 裏画面に書いたままFLIPしてない 9. メモリが足りない 10. コンパイルしてない、あるいはエラーが出ている 11. 実は環境がMac 12. ライブラリをインストールしてない 13. 使用しているディスプレイ、グラボの仕様/設定上表示できない色を使っている 14. 某サイトのソースにバグ 15. (CPUの)速さが足りない
- 646 名前:名前は開発中のものです。 mailto:sage [2008/08/13(水) 23:52:44 ID:k9pinPn+]
- Releaseフォルダも試してみたら
- 647 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 00:10:37 ID:7xrMXFtW]
- プロジェクトファイルだっけ?←拡張子がdspのやつ
とりあえずあれを含んだサンプルを拾ってきて、動くかどうか試してみる。 動くのを確認してからソースをオリジナルに書き換え、フォルダに画像を置いて動作確認。 というのはどうだろう?
- 648 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 03:20:37 ID:s4dRQS6A]
- 「横スクロールアクション」を作ってる最中なんだが、
同じカーソルキー二度押しでダッシュさせるサンプルコードを探してるが見つからない。 二度押し判定の仕方を教えてほしいの
- 649 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 03:33:41 ID:4cx2dJb5]
- それくらい自分で考えてみようぜ
フラグやカウンタを使えばできる
- 650 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 10:06:19 ID:E3jqMQR0]
- >>641
とりあえず動かしたいんだよな? まず、プロジェクトの全部のフォルダにその画像全部コピーして実行してみろよ。 で、表示されたら1つずつ消して実行してみて、どれ消したら出なくなるか試してみるんだよ。 本当はカレントがどこか調べたり、フルパス指定したりするんだけど最初のためしなんだろうから、 それでやってみ。たぶんDebugの一つ上がカレントじゃないかと思う。
- 651 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 10:08:06 ID:E3jqMQR0]
- ってbinができてるなら2008じゃなくて2005なのかな。
だったら別の場所かもしれん。
|

|