トップページgamedev
1001コメント334KB

DXライブラリ 総合スレッド その8

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2011/04/03(日) 17:17:11.99ID:liTmPO3j
Cを習得した程度のスキルでも、
GUIのゲームを比較的容易に作成する事を可能にする、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

【公式】
http://homepage2.nifty.com/natupaji/DxLib/

【過去スレ】
DXライブラリ 総合スレッド
http://pc11.2ch.net/test/read.cgi/gamedev/1197468399/
DXライブラリ 総合スレッド 2008
http://pc11.2ch.net/test/read.cgi/gamedev/1224923873/
DXライブラリ 総合スレッド その3
http://pc11.2ch.net/test/read.cgi/gamedev/1238429676/
DXライブラリ 総合スレッド その4
http://pc11.2ch.net/test/read.cgi/gamedev/1249822550/
DXライブラリ 総合スレッド その5
http://pc11.2ch.net/test/read.cgi/gamedev/1259912953/
DXライブラリ 総合スレッド その6
http://hibari.2ch.net/test/read.cgi/gamedev/1267108154/
DXライブラリ 総合スレッド その7
http://hibari.2ch.net/test/read.cgi/gamedev/1286180687/
0417名前は開発中のものです。2011/06/03(金) 23:47:30.80ID:wUtKVv5F
ちゃんと整備されたまとめならアフィくらいいいけど
アフィをべたべた貼ってるまとめって、情報を整理するとか絶対ないんだよね
0418名前は開発中のものです。2011/06/04(土) 00:17:44.77ID:ZmSZ/Vo4
普通に考えられる程度なら全然いいよ

ただコンテンツの最初最後じゃなくて
途中の中断に入れてくるタイプは正直かなり読み難い
0419名前は開発中のものです。2011/06/04(土) 00:20:15.60ID:rJTebOc5
アフィやりたいって言ってんの?
0420名前は開発中のものです。2011/06/04(土) 00:25:41.24ID:nICLgCP1
アフィアフィ言ってんじゃないよ
0421名前は開発中のものです。2011/06/04(土) 00:55:47.13ID:Fd3wvUm3
wikiwikiのなら十分アリだと思うよ、邪魔じゃないし。
下手に個人鯖とかでアフィ見つけちゃうと嫌な論争になるしね
0422名前は開発中のものです。2011/06/04(土) 01:41:12.23ID:dVJmI03Q
アフィあっても非表示にしてるからどうでもいいけど
0423名前は開発中のものです。2011/06/04(土) 17:13:47.03ID:ihjROejl
かったああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ!!
0424名前は開発中のものです。2011/06/04(土) 17:14:27.60ID:ihjROejl
ごめん、超誤爆した
申し訳ない
0425名前は開発中のものです。2011/06/05(日) 18:48:42.87ID:Ag2akIPm
配布ファイルが7zipになった
0426名前は開発中のものです。2011/06/05(日) 19:22:29.07ID:ndLp9W0F
DGCAェ・・・
0427名前は開発中のものです。2011/06/05(日) 19:47:23.96ID:cYf2cnq5
7zip解凍できるソフト教えてくれ
けっこう有名なソフトを使ってるつもりだったが無理だった
0428名前は開発中のものです。2011/06/05(日) 19:51:00.20ID:NQzUYsQr
Noahとか
0429名前は開発中のものです。2011/06/05(日) 20:01:00.18ID:cYf2cnq5
>>428
サンキュー
よく考えたらexeなんだからソフトが対応してなくてもよかったんだな
早とちりしたぜ
0430名前は開発中のものです。2011/06/05(日) 20:37:11.70ID:7sEL+FMh
DGCAの時みたいにSFX圧縮で何も無しに展開できる。
圧縮ファイルのサイズが11MB→5MBほどになっていた。
0431名前は開発中のものです。2011/06/06(月) 01:43:40.70ID:9kxldPl8
LZMAすげーな
LZMA圧縮なPNGとかどっかねーかな
0432名前は開発中のものです。2011/06/07(火) 23:40:10.54ID:AJkSJL0u
>>417
そういうのは心配しなくても自然と誰も見なくなるだろ
0433名前は開発中のものです。2011/06/08(水) 05:49:09.86ID:N7Zs33m/
>>432
検索時にアフィべたべたのとこが上位独占はよくあること
0434名前は開発中のものです。2011/06/08(水) 17:03:38.16ID:CJSxFU6G
苦労して直接DirectXで書いのになぜかDXライブラリで書いたプログラムの方が速く動く・・・
余分な処理してるってことかな・・・
0435名前は開発中のものです。2011/06/08(水) 17:08:39.76ID:g/ogwpor
なんだかんだ遅いと言われてるけど、一応面倒な最適化とかもちゃんとやってるしね
何もせずに直接走らせるより速いことも多い
0436名前は開発中のものです。2011/06/08(水) 17:30:53.78ID:CJSxFU6G
そうなんだ、初期化コードいっぱい書いたのに・・・
このままじゃゲーム部分までたどり着けない、ライブラリ再検討しよ。
0437名前は開発中のものです。2011/06/08(水) 17:38:35.38ID:lYlwYYKM
今のゲームPCで実際速さの違いがわかるようなプレイヤーがいるのかねえ
0438名前は開発中のものです。2011/06/08(水) 17:40:55.75ID:yuDH4YLK
DXライブラリがなくなったときのために
DirectXも少しずつ勉強してるけど、DXライブラリがある内はこれでいいわ
0439名前は開発中のものです。2011/06/08(水) 17:43:09.21ID:WE/y5LbW
俺はDXライブラリなしでは何も作れない無能者だから434がまぶしいぜ。

そんな俺が言うのはなんだが、434がやった事は決して無駄じゃないと思うぜ!
0440名前は開発中のものです。2011/06/09(木) 22:36:07.45ID:JfZ39Xp1
DXライブラリと同じ仕組みのソースなら
自力で書いたからって早くなるわけがない
0441名前は開発中のものです。2011/06/09(木) 22:39:52.13ID:cPe/jeZR
コードが糞だからだよ
0442名前は開発中のものです。2011/06/10(金) 23:02:16.07ID:/lsLuO/4
DXライブラリ始めたばかりなのですが、角が丸い四角形を描画する方法ってありませんか?
0443名前は開発中のものです。2011/06/10(金) 23:47:57.04ID:AKofwKph
ありますよ
0444名前は開発中のものです。2011/06/12(日) 14:12:23.89ID:mPw+IlZ+
そういうDxLibの関数は、たしかなかったよね?
DrawBoxとDrawCircleでどうとでもなるだろうけど
0445名前は開発中のものです。2011/06/12(日) 15:08:01.71ID:nHfpiviw
今普通にあるんじゃね?と思ってヘッダさらっと見たけど、
角丸四角形を描画する関数は無かったな。
簡単に描画するならDrawBoxとDrawCircleだけど、
そもそもDraw系関数は糞思いから画像使ってなんとかしたほうが良いかと。
0446名前は開発中のものです。2011/06/12(日) 18:22:30.26ID:wZag4a4f
久しぶりに見たら
フォントビルボードとか多少機能が増えてるな
0447名前は開発中のものです。2011/06/16(木) 17:21:19.15ID:ZEUM4Xgq
C++公式ラッパーとかないの?
0448名前は開発中のものです。2011/06/16(木) 18:29:47.37ID:QTS2apvZ
文字にぼかしを入れたいんだが、どうやればいいんでしょうか?
0449名前は開発中のものです。2011/06/16(木) 18:36:27.86ID:ZEUM4Xgq
ピクセルシェーダ
0450名前は開発中のものです。2011/06/17(金) 11:28:02.63ID:nqpu4VYX
C#だとメモリ上でBitmap作ってGDIでエフェクトかけて文字書き出して
それをメモリからグラフィック作成で
似たようなこと出来るね

Cはしらね

0451名前は開発中のものです。2011/06/17(金) 21:56:10.95ID:Yo8wuE0b
RPGの攻撃のエフェクトってパラパラ漫画みたいに
複数の画像を次々に表示する以外に何か方法ありませんかね
0452名前は開発中のものです。2011/06/17(金) 21:58:52.30ID:7eK3LNzE
それ以外だったらリアルタイムにパーティクルを描画するしかないじゃないかな
0453名前は開発中のものです。2011/06/17(金) 22:00:08.89ID:Yo8wuE0b
ありがとうございます。
調べてみます
0454名前は開発中のものです。2011/06/17(金) 22:02:22.44ID:7eK3LNzE
調べるほどのことじゃないけどな
パラパラ漫画にする代わりに、画像を拡大したり位置を変えたりしながら何枚か表示するだけ
素材用意できるならパラパラ漫画の方が楽
0455名前は開発中のものです。2011/06/18(土) 00:56:12.89ID:iCd9TgSp
3Dのエフェクトのモーションデータを再生とか?
よくわからないけど
0456名前は開発中のものです。2011/06/18(土) 03:37:33.86ID:aQHQ6jKF
バージョン3.05のソースファイルを今までの改造したコード付け足してビルドすると、
出来たlibを使う際にいろいろ未解決って言われる
要求されてるっぽいwinmm.libをリンクしても、今度は起動時に初期化に失敗してグラボがクラッシュする……

こういう場合でも公式に報告したほうがいいのかな
自分でもわけわかんないんだけど
0457名前は開発中のものです。2011/06/18(土) 09:17:34.77ID:By+QQmMh
>>456
わけわかってないこと報告したらだめでしょw
0458名前は開発中のものです。2011/06/18(土) 10:40:29.95ID:rMwu9JP4
VC10でDXライブラリを公開されているソース玉からビルドしてみたら
ものすごく重い(時間がかかる)ので驚いた
0459名前は開発中のものです。2011/06/18(土) 10:44:09.93ID:k8cmRNCd
>>456
さすがに自分で追加/修正したものを、公式に投げるのは辞めたほうがいいんじゃないかなあ。

そういう自分も、かなり昔に報告したことがあるんだけどね。
#defineの切り替えで、機能を削ってライブラリ軽量化できたりするわけだけど、
特定の組み合わせだとバグるとかそんなの。


0460名前は開発中のものです。2011/06/18(土) 14:24:03.38ID:23ZQCR/3
DirectXをDXって略す奴まじ紛らわしい
0461 [―{}@{}@{}-] 名前は開発中のものです。2011/06/18(土) 18:10:37.94ID:ZJC52IVp
リソースのイメージファイルからLoadSoftImageしたいんですがどうしたらいいですか
0462名前は開発中のものです。2011/06/18(土) 20:58:21.99ID:3Js3NYkx
相変わらず串は無能だな
向いてないからやめたほうがいいよ
0463 [―{}@{}@{}-] 名前は開発中のものです。2011/06/18(土) 22:45:04.29ID:ZJC52IVp
LoadSoftImage(MAKEINTRESOURCE(id))では駄目みたいだし、
LoadGraphToResource(id)の結果をソフトイメージに変換とかできないのかな。
うーむ
0464名前は開発中のものです。2011/06/19(日) 02:49:02.33ID:3bU7kJrY
久しぶりに公式HP見て来たんですけど、なんだかバリエーションが変わってますね。

VisualC++用(Ver3.05)
BorlandC++用(Ver3.05)
Gnu C++用(Ver3.05)

の3つになってましたね。

GNU C++用が出来ている辺りがなんか進化してる感がありますが、気になる点が。

以前はVC++用と言っても2011用、2008用、visual studio .net 2003用とか色々ありましたよね?

これからはどの環境でもVisualC++用だけでおkという事なのでしょうか?

なんか公式の掲示板斜め読みしたら、2008だとどうとか、問題があったとか書き込みが見えましたが、基本的に大丈夫なんでしょうか??
0465名前は開発中のものです。2011/06/19(日) 13:11:47.59ID:t6jVwtLr
>>463
GetResourceInfoとLoadSoftImageToMem使えばいける
0466名前は開発中のものです。2011/06/19(日) 21:19:02.25ID:ZW4XNOLN
>>464
まじかよ!
おれのC#版は、まだ正式バリエーションには入れてもらえないんだな。
0467名前は開発中のものです。2011/06/19(日) 22:02:26.65ID:Mk/qPjyt
DrawPolygonIndexed3Dで作った1×1×1の立方体を平面に
隙間なく10×10ほど並べると、カメラの角度によって
隙間があるように見えるんだが
原因か対策方法をおしえてくれないだろうか?
0468名前は開発中のものです。2011/06/19(日) 22:44:31.63ID:PZJsywLa
ソースコードをSubversionか何かのリポジトリに置いてくれよう
何で置かないの?
0469名前は開発中のものです。2011/06/19(日) 23:19:21.65ID:pgHC00Et
メインループでない他の関数から
終了処理を呼び出すとエラーが出ます
例えばキーの情報をまとめた関数のESCを押したときの終了処理などで起こります
どうしたらいいでしょう?
0470名前は開発中のものです。2011/06/19(日) 23:22:55.29ID:XBsYSDqg
他の関数では終了フラグをONさせるだけで、
終了処理はメインループでやればいい。
0471名前は開発中のものです。2011/06/19(日) 23:24:59.76ID:QvQuYc5r
>>497
アンチエイリアスかけるしかないかと。
例えばDS市販ソフトの立体ピクロス等でもそういう現象は起こる。

>>469
エラー内容コピペしてみたら?
そんなこと起こらないと思うけど…。
まさか別ファイルにしていてdxlib.hをインクルードし忘れてるなんてことはないよね。
0472名前は開発中のものです。2011/06/20(月) 00:16:31.08ID:dVR9UeT3
ユーザーがバグ修正のコード送ろうにも、バージョン管理システム使ってなかったらやりづらい
自分のところでも同じ部分を書き換えていたら、両方の変更を失わないようにするのが難しいし

>>459
色いろ問題あるよね、今でも

・Theora使う機能オフにしてビルドしようとすると、
#ifndefの使う場所が間違っているところがあるみたいで
無しだとビルドできない

・libpngは仕様変更のせいで1.5系ではビルドできない 1.4系は可

・デフォルトだと、
DxLib.hに#pragmaでリンクするライブラリを指定するようになっているけど、これやだ
ライブラリの名前が1つでも変わると、全てビルドし直しになる
(最新版だと名前が違っているから、自前でビルドするには全部変えないといけないや)
面倒でもプロジェクトの設定でやった方がいい希ガス


・あと、1998年からlibjpegは更新されていないって書いてるけど、最近も更新あったよ
0473名前は開発中のものです。2011/06/20(月) 00:24:37.41ID:ywcJPOE0
俺の場合は本家のコードに付け足すコードをインクルードしてビルドしてるだけだったなー
挙動を書き換えた別バージョンの関数を追加、って感じで
0474名前は開発中のものです。2011/06/20(月) 00:28:10.70ID:aBzdnlNy
>>470
その方法を試してみます
>>471
例のESCキーを押して実行窓は閉じれるのですが、
プロセス自体の終了ができていなく、タスクマネージャから消している状況です
dxlib.hはインクルードしています
0475名前は開発中のものです。2011/06/20(月) 04:41:56.67ID:KjWz6tWC
>>472
何か自分の言葉じゃないよね
本の受け売りか、学校の先生が言ってたそのまんまって感じ
0476名前は開発中のものです。2011/06/20(月) 21:36:16.92ID:z8kdzva4
>>474
もしかして DxLib_End(); でプロセスも終了してくれると思ってない?
メイン関数で終了するときに、 DxLib_End(); でDxlib周りの終了処理をして、
そのあとにメイン関数に return 0; で0を返してプログラムを終了してるわけ。

ということはメイン関数以外から直接は終了できないんじゃないかと思うよね。
それでは色々と面倒ということで stdlib.h に void exit(int status); という関数が用意されてる。
これはメイン関数に引数で渡した値を返す動作なので、 exit(0); としてやればよいということになる。

もし、 exit(0); でエラーが出るという話ならどういうエラーなのか書くこと。
0477名前は開発中のものです。2011/06/21(火) 03:54:32.19ID:Yq97GP/u
470のやり方を基本としておさえておいたほうがいいと思うぞ
04784672011/06/21(火) 19:29:12.62ID:63a9Z6UZ
>>471
アドバイスありがとん
DXライブラリでアンチエイリアスの指定ってできたっけ?

まぁ、色々いじって、解決させたので方法書いておきます
・SetCameraNearFarで手前クリップ位置を遠くしてみる
これでだいぶ軽減できました。でも見えるときは見える

・くっついた位置に描画されるポリゴンを描画しない
ブロック同士の境目のポリゴンを消しとけば、隙間なくうまってるように見える。
要するに何らかの加減で、縦方向のポリゴンの一部が見えてるってことらしい。
0479名前は開発中のものです。2011/06/23(木) 16:57:31.52ID:fyYcjHqX
LoadSoundMem 使うと、読み込むファイルの倍近くメモリ食うんだけどこんなもん?
0480名前は開発中のものです。2011/06/23(木) 17:32:53.79ID:QnDjyPpc
読み込んでるのが圧縮ファイルなら
SetCreateSoundDataTypeがDX_SOUNDDATATYPE_MEMNOPRESS(デフォルト)だからかもしれない
0481名前は開発中のものです。2011/06/23(木) 19:26:55.04ID:DnQjdRmc
おぉ、そんな設定があるんだ
知らんかった
0482名前は開発中のものです。2011/06/23(木) 19:36:12.62ID:fyYcjHqX
>>480
素早いレスポンスまじ助かる
用途に合わせて使ったらメモリ使用量がスゲー減ったよ
本当にありがとう
0483名前は開発中のものです。2011/06/23(木) 20:03:47.01ID:8jCWoIDE
描写の基礎中の基礎だと思うのですが

例えば落ち物パズルゲーム(ジャンル関係なく)

落下物を一番下まで置く
次の落下物

以下ループ

移動物は当然、描画→消す→再描画が必要になると思いますが
動かなくなった物もこのルーチンに組み込むしかないのでしょうか?
0484名前は開発中のものです。2011/06/23(木) 20:07:04.40ID:UJG7O4KB
>>483
そうだよ、毎回全部再描画
全消し&全再描画が基本
0485名前は開発中のものです。2011/06/23(木) 20:11:03.75ID:AbrHzuoP
一昔前のスペックのPCでも、60フレームで毎回数千枚画像を描画しても問題ないしな
ゲーム作り始めた人は大抵最初疑問に思うよな、コレ
0486名前は開発中のものです。2011/06/23(木) 20:22:51.26ID:5vtX6Rn6
むしろDxLibのサンプルを読むと、裏描画→スワップ→裏消す→ループの流れになってたから素直に馴染んでた。
0487名前は開発中のものです。2011/06/23(木) 20:40:33.33ID:3TDZtZ67
>>483

処理速度の遅い、昔のパソコンだと、いかに描画部分を減らすかが勝負だったから、
貴方の考えてるような事(動かないものは再描画しない)は重要だった。
ファミコン等で使われてるスプライトやBG機能はそういうのをハード的に処理する事で、
軽快な動きを実現させていた。

今のPCはそんな事考える必要ないくらいの処理速度なので、やってる人はいないでしょう。
もちろんできなくはないけどデメリットが多くてメリットは少ない。
0488名前は開発中のものです。2011/06/25(土) 11:42:26.53ID:cdu6xBQg
>>483
画面のほとんどが将棋みたいに静止してるゲームを除いて
削れる対象って少ないよ。(高速化が必要なゲームで使えない手法)

小さな領域で何回も描画すると遅くなるし。
0489名前は開発中のものです。2011/06/25(土) 11:49:53.47ID:cdu6xBQg
ハイポリゴンの3Dがぼけっと止まってるとかなら
描画した結果を写真みたいに1枚のテクスチャにしてしまうのが有効
0490名前は開発中のものです。2011/06/25(土) 21:53:53.82ID:uR7PC9MK
C#板で壁にぶち当たってきたので、ちょっと愚痴らせてくれ
万単位のVERTEX3Dを1フレーム毎に更新なんてできねーよ
テクスチャアニメーションはやるなってことでFAなんか?
0491名前は開発中のものです。2011/06/25(土) 21:59:20.43ID:GTitzTuX
今話題の京なら楽勝
0492名前は開発中のものです。2011/06/25(土) 23:29:58.84ID:9uA0GKJd
>ファミコン等で使われてるスプライトやBG機能はそういうのをハード的に処理する事で、
ハード機能だったのか〜

0493名前は開発中のものです。2011/06/26(日) 00:31:30.96ID:rnIFDOCy
串って、めだか信者なの?
0494名前は開発中のものです。2011/06/26(日) 02:35:51.59ID:lfYDudtN
3D関数のリファレンスページを見ているのですが、

>Vertex[ 0 ].pos = VGet( 100.0f, 100.0f, 0.0f ) ;
この100.0fや0.0fに付いているfはfloat型という意味なのでしょうか?
0495名前は開発中のものです。2011/06/26(日) 03:05:18.50ID:3ESIOFXK
はい、そうです。
0496名前は開発中のものです。2011/06/26(日) 08:34:43.38ID:7hazcZAF
>>492
今更かよ!そもそもスプライトはハードウェアの機能の事
DirectX等でいわれているスプライトはエミュレーションにすぎない
0497名前は開発中のものです。2011/06/26(日) 08:47:33.80ID:5F1hYASA
スプライト動かして背景に影響が出る以上、エミュレーションになってないと思うがw
ただ名前を借りてるだけだろう。
0498名前は開発中のものです。2011/06/26(日) 10:12:05.33ID:lfYDudtN
>>495
ありがとうございます
0499名前は開発中のものです。2011/06/27(月) 15:31:04.89ID:cfpgRrAj
スプライトはハードが対応してれば有効じゃなかったかな。
そんなカードにはお目に掛かったことないけど。
0500名前は開発中のものです。2011/06/27(月) 22:42:22.18ID:txUEornU
---------disp.h---------
void disp(){
int FontHandle;
FontHandle = CreateFontToHandle( "MS ゴシック" , 20 , 1 , DX_FONTTYPE_NORMAL );
DrawFormatStringToHandle(100,100,色,FontHandle,"テスト");
}

---------main---------
main(){
while(i== 0){
       Disp(); // ループ処理
        }
}
このようにプログラムを組んだらフォントハンドルの作成数が限界になってエラーになり
修正を加えました
0501名前は開発中のものです。2011/06/27(月) 22:44:11.62ID:txUEornU
---------moji.h---------
void moji(){
int FontHandle;
FontHandle = CreateFontToHandle( "MS ゴシック" , 20 , 1 , DX_FONTTYPE_NORMAL );
}

---------disp.h---------
#include "moji.h"
void disp(){
int FontHandle;
DrawFormatStringToHandle(100,100,色,FontHandle,"テスト");
}

---------main---------
#include "disp.h"

main(){
while(i== 0){
       Disp(); // ループ処理
        }
}

どうにも上手く動かないのですが、フォントの初期設定?とそのハンドルの使いまわし方がイマイチ理解できません
0502名前は開発中のものです。2011/06/27(月) 22:47:04.61ID:jowqIwaV
int FontHandleをグローバルにしないとそのハンドル値が保存されないので、
DrawFormatStringToHandleにうまく渡せていない
0503名前は開発中のものです。2011/06/27(月) 22:53:02.36ID:HTROKHBn
---------moji.h---------
int FontHandle;
void moji(){
FontHandle = CreateFontToHandle( "MS ゴシック" , 20 , 1 , DX_FONTTYPE_NORMAL );
}

---------disp.h---------
#include "moji.h"
void disp(){
DrawFormatStringToHandle(100,100,色,FontHandle,"テスト");
}

---------main---------
#include "disp.h"

main(){
while(i== 0){
       Disp(); // ループ処理
        }
}


詳しくは変数のスコープでググれ
0504名前は開発中のものです。2011/06/28(火) 00:06:09.15ID:kDrw83xo
moji()呼んでなくね?

てか、確かフォントハンドル作成は時間かかる処理だし、最初に一回だけやればいいだろ。
それでも作成しなおしたいんだったら、使わないフォントハンドルはちゃんと削除しといたほうが……。
0505名前は開発中のものです。2011/06/28(火) 00:13:40.34ID:VylbgPEM
あ、ほんとだ
---------main---------
#include "disp.h"

main(){
moji();
while(i== 0){
       Disp(); // ループ処理
        }
}

こうか

でもDXライブラリのハンドルは、感覚掴まないと難しいしな……
ハンドルと実態は別だし
0506名前は開発中のものです。2011/06/28(火) 00:24:09.17ID:kDrw83xo
>でもDXライブラリのハンドルは、感覚掴まないと難しいしな……
>ハンドルと実態は別だし

俺はよく解ってないまま使ってるw
まぁデータベースみたいなものが自動的に作られてて
ハンドルはそのキーってとこだろうという程度の認識で。
05075012011/06/28(火) 00:39:04.09ID:ACSn663z
無事解決しました
ありがとうございます

そもそもグローバル変数をよく理解できず
それでいてそういう変数の操作ができず不便で戻り値を駆使して対応していたのですが
色々な問題が一気に解決した気分です

0508名前は開発中のものです。2011/06/28(火) 20:28:42.91ID:ZHM0z8W2
半透明のビルボードが欲しいのだけど、なんかいい方法ないもんかな?
DrawBillboard3Dには半透明にする機能がないし
DrawPolygon3Dとかから自作すればいけるのか?
05095082011/06/28(火) 20:43:19.16ID:ZHM0z8W2
自己解決
SetDrawBlendModeはDrawBillboard3Dにも適用されてるのね
0510名前は開発中のものです。2011/06/29(水) 10:50:26.63ID:IWHgyftA
角っちょが丸い四角形がかける関数があるとか前にこのスレかどこかでみかけたんですが

そんな物は無い?
0511名前は開発中のものです。2011/06/29(水) 11:06:35.85ID:hq14Z64B
そんなものは無いっていう話ならこのスレで見た
0512名前は開発中のものです。2011/06/29(水) 15:52:41.36ID:Ic6AYPGZ
>>507
むしろグローバル領域に頼らない心意気は大事だと思うます
とは言っても終始必要な情報をグローバルに置くのも一つの手なので
その時はヘッダファイルの宣言にexternをつけて、対になるソースファイルに実態を定義する
>>501の例をdisp.hとdisp.cにまとめた場合こんな感じ。実際はもっと一意的な名前にする
---------disp.h---------
// 宣言
extern int FontHandle;
extern void set(void);
extern void disp(void);
---------disp.c---------
// 定義
int FontHandle = 0;
void set() { FontHandle = CreateFontToHandle( "MS ゴシック" , 20 , 1 , DX_FONTTYPE_NORMAL ); }
void disp() { DrawFormatStringToHandle(100,100,色,FontHandle,"テスト"); }
0513名前は開発中のものです。2011/06/29(水) 16:55:11.35ID:OR33XjHH
むしろ初期化関数とハンドル取得関数を作って一つのファイルで完結させるとか
0514名前は開発中のものです。2011/06/29(水) 17:34:17.72ID:FojZiLJk
C言語あまり使ってないから詳しくは知らないけど
フォントハンドルは公開する必要ないんだからstaticにして
dispに集約しても良いんじゃね?
それこそ関数ポインタか下のようにif文でsetなんて消したい。

//----disp.h----
void disp();
void disp2(int x, int y, char* moji);
//----disp.c----
static int FontHandl=0;//プログラム実行時に0に初期化される
void disp(){
if(!FontHandle){ FontHandle = CreateFontToHandle( "MS ゴシック" , 20 , 1 , DX_FONTTYPE_NORMAL ); }
DrawFormatStringToHandle(100,100,色,FontHandle,"テスト");
}
void disp2(int x, int y, char* moji){
if(!FontHandle){ FontHandle = CreateFontToHandle( "MS ゴシック" , 20 , 1 , DX_FONTTYPE_NORMAL ); }
DrawFormatStringToHandle(x,y,色,FontHandle,moji);
}
0515名前は開発中のものです。2011/06/29(水) 20:16:24.25ID:E6WBSwVS
どうでもいいけど、DXライブラリでのハンドル取得におけるエラー時の返り値は-1だから
初期化は0でなくー1でやるべきだと思うんだ。
0516名前は開発中のものです。2011/06/29(水) 20:48:16.30ID:FojZiLJk
>>515
ごめんよ、DXライブラリもまともに使ったこと無かったんだよ
0517名前は開発中のものです。2011/06/30(木) 22:55:45.34ID:XyQ/91Ao
DrawPolygonIndexed3D関数の使い方として
10個の頂点の情報をセットして、
必要に応じた頂点を好きなだけ選んでポリゴンを表示できますか?

VERTEX3D Vertex[10];

Vertex[0] = VGet(x0,y0,z0);

Vertex[9] = VGet(x9,y9,z9);
としておいて、描きたいようにIndexの配列の値を変える。
■ このスレッドは過去ログ倉庫に格納されています