- 1 名前:名前は開発中のものです。 mailto:sage [2007/12/12(水) 23:06:39 ID:Ns2HwhRB]
- Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、 「DXライブラリ」に関するスレッドです。 DXライブラリの詳細ついては homepage2.nifty.com/natupaji/DxLib/ を参照して頂きたい。 DXライブラリに関するテクニックなどの情報交換などを行う事で、 多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。
- 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;
はいつもしとけば
- 672 名前:名前は開発中のものです。 mailto:sage [2008/08/18(月) 13:02:21 ID:BAHHLEa/]
- >>671
ヲイヲィ・・・・ 使わないところで、そうやってnamespace使っちゃだめだろ。 なんのために名前空間なんて概念取り入れてると思ってるんだよwww
- 673 名前:名前は開発中のものです。 mailto:sage [2008/08/18(月) 13:43:37 ID:XHbUdQA2]
- 逆にいつも使わなければ、この手のエラーは最初に食らってて変なとこ探したりしなかっただろうに。
- 674 名前:名前は開発中のものです。 mailto:sage [2008/08/18(月) 15:29:16 ID:IR1SAisJ]
- std名前空間なんて別にusingしといても問題ねーよ
- 675 名前:名前は開発中のものです。 mailto:sage [2008/08/18(月) 21:22:08 ID:XHbUdQA2]
- 今回の質問者には問題あったみたいだがw
- 676 名前:名前は開発中のものです。 mailto:sage [2008/08/19(火) 01:06:47 ID:HNGx9BRt]
- ループ毎に、ClearDrawScreenで画面をきれいにしてから描画していると、
画面の1/3に及ぶ大きなちらつきが出てしまうのですが…解消するには どういった方法がありますか?
- 677 名前:名前は開発中のものです。 mailto:sage [2008/08/19(火) 02:28:18 ID:H5en/Vi4]
- それは本当にClearDrawScreenのせい?
- 678 名前:名前は開発中のものです。 mailto:sage [2008/08/19(火) 03:17:38 ID:HNGx9BRt]
- >677
すみませんでした。グラフィックボードの性能不足のようでした。 スレ汚し失礼しました
- 679 名前:名前は開発中のものです。 mailto:sage [2008/08/19(火) 09:03:29 ID:Ck7KpSlS]
- >>678
本当のグラフィックボードの性能のせい? 裏画面に描画してflipすれば治る類のものかもよ。
- 680 名前:名前は開発中のものです。 mailto:sage [2008/08/19(火) 14:41:54 ID:HNGx9BRt]
- >679
すみません、SetDrawScreenの位置がおかしいのが原因でした。 ありがとうございました。
- 681 名前:名前は開発中のものです。 mailto:sage [2008/08/19(火) 15:45:05 ID:Pc0No+Vn]
- 本当のSetDrawScreenの位置のせい?
(ry
- 682 名前:名前は開発中のものです。 mailto:sage [2008/08/19(火) 20:42:56 ID:H2/ZmzLf]
- お茶吹いたじゃねぇか!
- 683 名前:名前は開発中のものです。 mailto:sage [2008/08/20(水) 03:18:08 ID:bLtEJeoI]
- 同じプログラムを、
解像度1024*768 32bitcolor,フルスクリーン 解像度1024*768 32bitcolor,ウインドウ の両条件で実行したところ、ウインドウモードではfpsが平均して68以上だったのに対し、 フルスクリーンではせいぜい59.8程度で、60を超えることはありませんでした。 さらにSleep(20)のハンデを課して両条件で実行したところ、処理自体はフルスクリーンモード の方が速いということがわかりました。 フルスクリーン時のfpsが頭打ちになっていたのは、垂直同期というのに関係があるんでしょうか?
- 684 名前:名前は開発中のものです。 mailto:sage [2008/08/20(水) 04:09:13 ID:rRA8J1RI]
- うん
- 685 名前:名前は開発中のものです。 mailto:sage [2008/08/20(水) 04:13:55 ID:bLtEJeoI]
- >>684
ありがとうございました!
- 686 名前:名前は開発中のものです。 mailto:sage [2008/08/20(水) 09:29:37 ID:e8oi3kIG]
- 「画面のプロパティ」の「設定」→「詳細」のあたりにリフレッシュレートの設定があると思う。
おそらく60になってるだろうけど、それを70とかに変えて試してみると勉強になるかも。 (ディスプレイやグラフィックボードによっては対応してない場合もあり) あと、↓の命令を使って垂直同期信号待ちを切ってみるのも勉強になるかも。 どうして垂直同期信号待ちが必要とされる場合があるのか解るかもよ。 SetWaitVSyncFlag ScreenFlip関数実行時にCRTの垂直同期信号待ちをするかのフラグセット
- 687 名前:名前は開発中のものです。 mailto:sage [2008/08/20(水) 09:43:38 ID:xrtLaobQ]
- CRTのときは、60と70の差が大きすぎてすぐにリフレッシュレート上げてたけど、
液晶は見た目変わらんから60のまま、なことも多いなあ。
- 688 名前:名前は開発中のものです。 mailto:sage [2008/08/20(水) 18:57:24 ID:bLtEJeoI]
- >686
ありがとうございます。 色々勉強になります。しばらく色々設定いじってみます
- 689 名前:名前は開発中のものです。 mailto:sage [2008/08/25(月) 03:13:19 ID:DGfm1VSy]
- ニュートラル調べればいいだけだと思うよ
- 690 名前:名前は開発中のものです。 [2008/08/28(木) 13:33:11 ID:m65IXGpQ]
- DXライブラリ3Dを使っています
メタセコイアでXファイルをつくりUVマッピングなどチェックをして保存しました LoadModelでそのXファイルを読み込み DrawModelで表示させるようにしましたが 起動すると LoadModel 0番目のテクスチャ C:\...................... TEST.bmp が見つかりませんと でます 対処方法を教えてください
- 691 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 13:38:24 ID:TltG6Uz7]
- C:\...................... TEST.bmp はあるの?
- 692 名前:名前は開発中のものです。 [2008/08/28(木) 13:49:15 ID:m65IXGpQ]
- >>691
同じフォルダ内にあるんだけど 他の、サンプルにある Sky1.X は、テクスチャも貼られ表示できました ちなみに Xファイルを開いて、TextureFilename のところを C:\.........TEST.bmp から TEST.bmp に変えると表示されました
- 693 名前:名前は開発中のものです。 mailto:sage [2008/08/28(木) 17:26:33 ID:BAQFIkd7]
- >>692
マルチバイト文字を使用する設定を確認してみてはどうか。 携帯からエスパー。
- 694 名前:名前は開発中のものです。 [2008/08/28(木) 18:50:54 ID:JopJTyIq]
- というかドライブから指定するもんか?
- 695 名前:名前は開発中のものです。 [2008/08/28(木) 21:28:08 ID:dfxzS5Cd]
- 実行されたディレクトリを取得して
そこからの相対パスで書いとくのがいいんじゃないかな
- 696 名前:名前は開発中のものです。 [2008/08/29(金) 18:08:45 ID:f6mFLVdV]
- 結局自力解決したのかどうなのか
- 697 名前:名前は開発中のものです。 [2008/08/29(金) 18:38:30 ID:HzuC4F0t]
- >>696
手直しでファイル名を指定することにしました めんどいね
- 698 名前:名前は開発中のものです。 mailto:sage [2008/08/29(金) 18:41:09 ID:smutsiJt]
- そもそもxにフルパスで書かれるのはどうなんだ?
うちの環境じゃそうならないが・・・
- 699 名前:名前は開発中のものです。 mailto:sage [2008/08/31(日) 18:49:33 ID:vgAWOJQZ]
- グラボの関係か、320*240*16BITでつくってるゲームをフルスクリーンで表示しようとしても、拡大されず、左上4分の1だけゲーム画面で、あとの4分の3は真っ暗!
みたいな状況になってしまう。 なにかいい解決方法ありませんか?;
- 700 名前:名前は開発中のものです。 mailto:sage [2008/08/31(日) 21:00:40 ID:9t3mvfZS]
- >>699
>>610
- 701 名前:名前は開発中のものです。 mailto:sage [2008/09/01(月) 10:37:37 ID:fhLFDpft]
- ってメタセコイアの環境設定で指定したフォルダ以外を指定するとフルパスになるな。
こういうもんなのか。
- 702 名前:名前は開発中のものです。 mailto:sage [2008/09/01(月) 13:48:16 ID:dabOwcbj]
- >>701
そんなもんだ。 メタセコなら毎回フルパスを消して相対パスにせないかんですよ
- 703 名前:名前は開発中のものです。 [2008/09/02(火) 09:43:44 ID:hFsfLIz7]
- >>702
やっぱりそうか。 >>698 のようなこともあるのかと、ぐぐってみたが、なかった
- 704 名前:名前は開発中のものです。 mailto:sage [2008/09/02(火) 10:05:31 ID:b2f1Qmol]
- 環境設定でピクチャのフォルダ指定して常にそこ使ってるとパスが入らない、
- 705 名前:名前は開発中のものです。 mailto:sage [2008/09/09(火) 15:20:40 ID:CoW+esAW]
- 三角関数などを利用して求めた移動量は基本的に少数の形をとるため、実際に
描画する際には整数にしなければなりません。しかし、そうすると移動量の値に 差が生じてしまい、ずれた方向に進んだりしてしまいます。 今は、定期的に移動量計算をやり直して進路を修正しているのですが、何か他に 良い方法はありませんか?
- 706 名前:名前は開発中のものです。 mailto:sage [2008/09/09(火) 15:26:39 ID:HJ9D2qDN]
- >>705
俺は座標や移動量などは全部小数で扱って、描画するときだけ整数にしてる。
- 707 名前:名前は開発中のものです。 mailto:sage [2008/09/09(火) 15:36:50 ID:CoW+esAW]
- >706
型変換のタイミングを延ばして、誤差を最小限にするんですね ありがとうございます。
- 708 名前:名前は開発中のものです。 mailto:sage [2008/09/09(火) 20:28:23 ID:xHkBaHNO]
- 普通に関数名の最後にFがついた奴で表示すればいい
- 709 名前:名前は開発中のものです。 mailto:sage [2008/09/10(水) 00:44:13 ID:KDatiZii]
- >708
ヘッダを覗いたらありました! ありがとうございます!
- 710 名前:名前は開発中のものです。 mailto:sage [2008/09/10(水) 10:33:12 ID:pAofywHU]
- 久々に来たら自分のカオスソースを見てしまったw
- 711 名前:名前は開発中のものです。 mailto:sage [2008/09/13(土) 09:05:11 ID:teQENKcK]
- >705
亀ですまんが、固定小数点とか楽じゃない?
- 712 名前:名前は開発中のものです。 mailto:sage [2008/09/13(土) 09:59:40 ID:OOndKDeu]
- >711
ありがとうございます。調べてみましたが、なかなか計算速度が向上しそうです。 C,C++では標準でのサポートはされていないようですが… それも視野に入れて作っていきたいと思います。
- 713 名前:名前は開発中のものです。 mailto:sage [2008/09/13(土) 10:13:19 ID:Ln37Pw6J]
- >>712
難しく考えないでもよほど大きな座標系じゃない限り 浮動小数点でずれが発生するなんてめったにないぞ・・・。 何か間違ってないか? あと固定小数点は標準のサポートとかそういうんじゃなく、 はるか古来からある基本的な手法の一つだぞっと。
- 714 名前:名前は開発中のものです。 mailto:sage [2008/09/13(土) 10:46:48 ID:teQENKcK]
- >712
要はさ。 座標とか、例えば全部100倍した値で保持しておいて、 実際に表示する時だけ1/100にすればいいんでね?って発想。 実際に使うなら、もうちょっと応用しなきゃならないだろうけど、 これだけでもfloatよりは速い場合があったりする。
- 715 名前:名前は開発中のものです。 mailto:sage [2008/09/13(土) 15:47:20 ID:OOndKDeu]
- >713 >714
そういうことですか。すみません、少し勘違いしていました。 ただ、入力→変換(割り算など)を考えると実感が湧かないので、 とりあえず、クラス化して実際に速度を比較してみます。
- 716 名前:名前は開発中のものです。 mailto:sage [2008/09/13(土) 15:56:24 ID:jUmbsVEt]
- >例えば全部100倍した値で保持しておいて
128倍とか、二の倍数の方が早いかも、と考えるのは古いかな。
- 717 名前:名前は開発中のものです。 mailto:sage [2008/09/13(土) 16:38:27 ID:SPZ9dRlM]
- たとえ話でわかりやすい10進にしてるであろうのにこの突っ込みはかわいそう
- 718 名前:名前は開発中のものです。 mailto:sage [2008/09/13(土) 17:58:49 ID:jUmbsVEt]
- いや別にそれが悪いと言ってるわけじゃないって。
- 719 名前:名前は開発中のものです。 mailto:sage [2008/09/13(土) 18:00:25 ID:77ztokxP]
- 僕は5年前HSPというスクリプトでシューティングを作ってたのですが、
整数しかサポートされてなかったので、10000倍にバイアスかけて 描画の時だけ10000で割ってました。 画面が6400000 * 4800000あると仮定していました。 はいはい、よかったでちゅねー僕。
- 720 名前:714 mailto:sage [2008/09/13(土) 18:15:00 ID:Craygg7f]
- >716
ちなみに自分の場合は、ビットフィールドを使ってるので割り算すらしてません
- 721 名前:名前は開発中のものです。 mailto:sage [2008/09/13(土) 21:55:19 ID:Ln37Pw6J]
- >>720
まぁビットフィールド使うよりシフト演算使ったほうが速度的には速いんですけどね。
- 722 名前:名前は開発中のものです。 mailto:sage [2008/09/14(日) 09:22:56 ID:GkehiKsz]
- >721
計測したところあんまり変わらなかったので シフトさせるよりビットフィールドの方が見やすいかなと。(ぱっと見たら構造体っぽいし)
- 723 名前:名前は開発中のものです。 mailto:sage [2008/09/17(水) 17:38:25 ID:tRpYcu/9]
- みなさんはDXlibで光や水、炎、煙などはどう表現してますか?
元画像とαパターンを用意してアニメーションさせる、 半透明のパーティクルを多数描写して表現するなどの方法が考えられますが 他に効率の良い方法やより良い表現方法などはありますか?
- 724 名前:名前は開発中のものです。 [2008/09/17(水) 18:02:15 ID:jRvaVjUa]
- >>723
チミは、どうやってるの?
- 725 名前:名前は開発中のものです。 mailto:sage [2008/09/17(水) 18:34:02 ID:tRpYcu/9]
- >>724
実はまだαブレンドを使ったことが無いんです 依然作った爆発のエフェクトは透明度0のアニメーションパターンを 大量に描写するという力技をやったのですが非常に見づらくて・・・ いずれαブレンドと使うときの参考に聞いてみたくて
|

|