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


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

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



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

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

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

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なのかな。
だったら別の場所かもしれん。

652 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 12:42:31 ID:E3jqMQR0]
って、、、、よく見たらC#なのか。
これC#から使うにはちょっとあれだが・・・
bin\Debug に入れたら動いたぞ。
(うちはVista64なんで正確にはbin\x86\Debug)

653 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 12:45:51 ID:E3jqMQR0]
ついでに、全ソース。
using System;
using DxLibDLL;

namespace WindowsFormsApplication1
{
static class Program
{
[STAThread]
static void Main()
{
DX.ChangeWindowMode(DX.TRUE);
DX.DxLib_Init();
DX.LoadGraphScreen(0, 0, "char.png", DX.TRUE);
DX.WaitKey();
}
}
}

654 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 16:59:16 ID:E3jqMQR0]
しかしDXライブラリを初めて使ってみたが、Vistaと相性悪い?

655 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 19:47:10 ID:Lwdz3ZLP]
そもそもVistaだったらDirect3D使うべき

656 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 22:28:58 ID:husrYnDZ]
>>654
そんなことないと思うけど。なんか問題あったか???

657 名前:名前は開発中のものです。 mailto:sage [2008/08/14(木) 23:20:36 ID:E3jqMQR0]
あー、入門向けの説明してる画像ずらして表示するやつ、キー入力待ちまで何もでないんだよね
まあ通りがかりに質問見つけてためしに動かしてみただけなので、もうちょっと見てみないと何とも言えないけど。
でもこの龍神録の解説はいいね。xnaに移植してみたくなった

658 名前:名前は開発中のものです。 mailto:sage [2008/08/15(金) 10:04:50 ID:c3xnj8Q3]
>>648
14歳〜、のアクションゲームサンプルに
「ジャンプ時にジャンプキーを受け付けないようにする」って解説がある、参考にしてみては?

659 名前:627 mailto:sage [2008/08/16(土) 02:31:00 ID:IJByLJ4E]
ソースを組み直したら表示されました。
単純なミスをしてたみたいでした。お騒がせしました。

画像ファイルはbin/debugに置くことで表示されました。
皆さん、アドバイスありがとうございました。



660 名前:名前は開発中のものです。 mailto:sage [2008/08/16(土) 09:26:28 ID:tLttBDTG]
>648
入力をキューなりリングバッファなりに貯めて
コマンド成立判定の結果で状態遷移なりフラグなり変更

661 名前:名前は開発中のものです。 mailto:sage [2008/08/16(土) 10:14:52 ID:QpDIrmnH]
「カーソルキー二度押し」とはどういう状況の事なのか、を
考えてみれば自ずと答えは出るだろう。


662 名前:名前は開発中のものです。 mailto:sage [2008/08/16(土) 23:31:10 ID:7gLPM7hz]
DXライブラリで、STLって使えない?
クラスの配列を実装するのにコンテナのvectorを使いたいんだけど、
エラーを吐かれる。

>>232-233で、ヘッダに何か書いてある、と書いてあったから
DxLib.hをSTLでテキスト検索掛けたけど
(STLを半角にしても全角にしても)引っかからない。

本家掲示板過去ログ↓でそれらしき記述を見つけたけど、
ttp://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=560
#define DX_USE_VISUALC_MEM_DEBUG
ってどこにもないんだよね。
DxLib.hの147行目当たりに DX_USE_VISUALC_MEM_DEBUG があったから
それを含む数行のコメントアウトを外してみたけど反応は変わらないし。

663 名前:名前は開発中のものです。 mailto:sage [2008/08/16(土) 23:42:01 ID:O36Whzxu]
>>662
オレは何の問題もなく使えてるよ

664 名前:名前は開発中のものです。 mailto:sage [2008/08/16(土) 23:54:42 ID:3Mm4zQJB]
>>662
(出来る範囲で)エラーメッセージを晒せば、詳しい人がトラブルシュートしてくれるかもよ。

665 名前:名前は開発中のものです。 mailto:sage [2008/08/17(日) 01:34:05 ID:ewUKCOWb]
>>663-664 ありがとう。
>>663 何の問題も無く、とは、DxLib.hをいじったりしないで、ってこと?

とりあえず、最低限で組んだソースを晒してみる。
------
#include "DxLib.h"
#include <vector>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
        if(DxLib_Init() == -1){
                return -1;
        }
        SetDrawScreen(DX_SCREEN_BACK);

        vector<int> x;
        x.push_back(1);

        while(CheckHitKey(KEY_INPUT_ESCAPE)==0 && ProcessMessage()==0){
                DrawFormatString(0,0,GetColor(255,255,255),"x[0] = %d",x[0]);
                ScreenFlip();
        }

        DxLib_End();
        return (0);
}
------

666 名前:名前は開発中のものです。 mailto:sage [2008/08/17(日) 01:34:45 ID:ewUKCOWb]
長くなったので連投失礼。

>>665のソースで吐かれるエラーは、
------
\main.cpp(10) : error C2065: 'vector' : 定義されていない識別子です。
\main.cpp(10) : error C2062: 型 'int' は不要です。
\main.cpp(11) : error C2065: 'x' : 定義されていない識別子です。
\main.cpp(11) : error C2228: '.push_back' の左側はクラス、構造体、共用体でなければなりません
        型は ''unknown-type'' です。
\main.cpp(14) : error C2065: 'x' : 定義されていない識別子です。
------
以上。

あ、環境書いてなかった。
VC++2008Ver9.0の、DXライブラリVer 2.24cです。

667 名前:名前は開発中のものです。 mailto:sage [2008/08/17(日) 01:40:34 ID:tqDU34tR]
>>649,>>658,>>661
とんくす
何となく理解した

668 名前:名前は開発中のものです。 mailto:sage [2008/08/17(日) 04:10:10 ID:mR8Ia0CQ]
>666
俺そんなに詳しいわけでもないんだけど、
std::vector<int> x;
これでどうだろう

669 名前:名前は開発中のものです。 mailto:sage [2008/08/17(日) 07:39:51 ID:GOwvXjh7]
>>665
答えは>>668が書いてくれてるけど、
問題の切り分けができるようになった方が良いよ。



670 名前:名前は開発中のものです。 mailto:sage [2008/08/17(日) 11:45:33 ID:ewUKCOWb]
>>668
cinとcout使わないからstdネームスペースを宣言していなかった。
ありがとう。
(っていうか「C++ vector」でググったら最初のページに『vectorはstdという名前空間内にあります。』って書いてあるじゃないか…)
>>669
精進します><

671 名前:名前は開発中のものです。 mailto:sage [2008/08/17(日) 12:35:36 ID:vVpxXEty]
using namespace std;
はいつもしとけば






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

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

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