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

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

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2013/06/30(日) 23:57:05.06ID:j62MvD3e
Cを習得した程度のスキルでも、ゲームのグラフィックを比較的容易に描画する事のできる、
「DXライブラリ」に関するスレッドです。
DXライブラリに関するテクニックなどの情報交換などを行う事で、
多くのDXライブラリユーザのスキルの向上に役立てたら幸いです。

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

【関連スレ】
C/C++ゲーム製作総合スレッド Part1
http://toro.2ch.net/test/read.cgi/gamedev/1337516528/
ゲームプログラムなら俺に聞け(プログラム技術板)
http://toro.2ch.net/test/read.cgi/tech/1366526476/

●DXライブラリではなくDirectXの質問ならこっちへ
【C++】DirectX初心者質問スレ【C】(プログラム技術板)
http://toro.2ch.net/test/read.cgi/tech/1370015791/
0619名前は開発中のものです。2013/10/21(月) 20:08:41.83ID:/u23XyM9
初心者はやっぱり明後日の方向で悩んでるから怖いな
そんな単純なもんじゃないから、フレーム固定で作っておけ
0620名前は開発中のものです。2013/10/21(月) 20:11:54.34ID:1CRFZwZl
パソコンの負荷は一定では無く、不規則に変動するのですよ。
それが、個別に全部が違う挙動をする。
0621名前は開発中のものです。2013/10/21(月) 20:14:02.72ID:w8555t4z
すいませんスペックじゃなくてリフレッシュレートです

http://dixq.net/g/03_14.html
0622名前は開発中のものです。2013/10/21(月) 20:19:16.36ID:/u23XyM9
リフレッシュレートは60や120だけじゃなくて50や75や72や85もあるんだぞ
ズレるわ
0623名前は開発中のものです。2013/10/21(月) 20:23:20.98ID:sMEbtuV5
>>618
そのサイトは初心者向けだから可変フレームレートは難しい
また、その章までに書いたプログラムすべてを変更する必要がでるから避けてるんだよ

>>608にも書いたけど時間を計って可変フレームレートにするのは良いことだよ
一応処理落ちについての話題が出たから例として触れておくと、
極端な処理落ちが発生したときに可変フレームレートだと衝突判定のすり抜けが起こることが
予期されるからそれを防止するためのメカニズムを考えないといけなかったりとか
とにかくプログラム書くのがFPS固定に比べて面倒くさい
0624名前は開発中のものです。2013/10/21(月) 20:27:42.27ID:r1lqBEdn
FF3のエンカウント時エフェクトみたいな
1フレーム毎に画面が白黒⇔カラーを繰り返すみたいなエフェクトを実装するとき
可変フレームレートだと白黒のままになったりカラーのままになったりで
おかしな表示になるんじゃないんですか
0625名前は開発中のものです。2013/10/21(月) 20:27:43.27ID:/u23XyM9
面倒くさいどころか逆に負荷が増す場合もあるぞ
カーブとか重力を考慮した移動とか複雑な移動処理をするなら

完全な再現性を実現できない限りは可変フレームレートなんて採用すべきじゃないと思うな
ネトゲやFPSだって、発生した事実関係だけをサーバに送信して無理矢理辻褄合わせてるだけだし
0626名前は開発中のものです。2013/10/21(月) 20:30:11.95ID:w8555t4z
FPS60に固定する

予め1フレーム過ぎる毎にint countを+1しておく

あるアクションから一秒たったら画像を表示させたいから
アクションおこした時にint a = countする

count - a > 60の時に画像を表示

みたいな説明があって
countの代わりにGetNowCount()を使えばfps固定する必要なんてないと思ったと言おうとしました
説明下手でごめんなさい

>>623-625
なるほど
まだそんなレベルに達していなかったので面倒くさいとも思いませんでした
ありがとうございました
0627名前は開発中のものです。2013/10/22(火) 00:35:28.42ID:p3Db7vmq
>>625-626
微分方程式を解ける秀才がこのスレに降臨したかと期待したが、ただの初心者だった
0628名前は開発中のものです。2013/10/22(火) 03:54:29.71ID:o/EMSDRG
>>626
ああ、それは勘違いしそうになるな。説明が不適切とまでは言わないが。

1秒後(あるいは60フレーム後)に画像を表示する、くらいなら正直どっちでもいいと思うけど、
秒速120ドットで移動するとかだと少し面倒になるって感じかねぇ。分母が変わっちゃうから。
0629名前は開発中のものです。2013/10/22(火) 04:28:57.73ID:o/EMSDRG
固定/可変フレームレートの問題というよりも、>626の場合は、
ゲーム内時間をフレーム基準で考えるか、実時間ベースにするかって問題だよね。

フレーム基準というのは、つまりゲーム内時間をプログラマが管理できる状態と言い換えられる。
それに対して、実時間を基準に処理を行うというのは、ゲーム内時間にプログラマがアクセス出来ない状態と言える。

この差は結構重要で、プログラミングをする際に1つの処理を細かく積み上げて考えたい時や、
あるいはテストプレイやデバッグの際に、ゲームスピードをゆっくりにして動作を見極めたいという時に、
実時間ベースだと不便そうだなあというのは、何となく分かってくれるんじゃないかと思う。

もちろん実時間ベースが優れてるところもあるので、決して間違いではないのだけれど。
0630名前は開発中のものです。2013/10/22(火) 06:42:35.27ID:ExrKC0WT
dxライブラリのfps制御そのまま使ってるけどよくない?
1秒を60フレームって前提でゲーム内のタイマー作っちまってるわ
0631名前は開発中のものです。2013/10/22(火) 06:52:51.98ID:o/EMSDRG
オンラインランキングとかしないなら、そんなに困らないと思う
0632名前は開発中のものです。2013/10/22(火) 07:32:13.52ID:h2dd5GhR
可変フレームで気になってたんだけど
環境によってfps変わってたらリプレイの再現できなくない?
0633名前は開発中のものです。2013/10/22(火) 08:42:21.30ID:V7djTReU
処理のループはfpsに制限されないでしょ
動きが荒くなるだけじゃない?
0634名前は開発中のものです。2013/10/22(火) 08:54:17.54ID:BGWyzjBW
マリオカートのゴーストとかどう記録してるんだろ
と思ったけど処理したときついでに時間記録すれば普通にできるか
0635名前は開発中のものです。2013/10/22(火) 09:32:38.97ID:a95zJsvM
やってみそw
0636名前は開発中のものです。2013/10/22(火) 09:45:09.67ID:aNv/ean1
ゴーストとかリプレイを実装しようとして、「なぜずれるんだー」と頭を悩ますのはお約束だよな? な?
0637名前は開発中のものです。2013/10/22(火) 11:17:27.80ID:uNccePou
処理時間≠入力時間に気をつけて処理させれば固定と同じようにやればいいだけ
ずれ誤差怖いから実体の位置を入力時間ごとに別で取っておいてそこから計算させた方がいいかも?
使う処理が1つで済む&信頼度高いけど情報量が膨れそう
とか妄想したけどジャンル的にリアルタイムリプレイなんて一生実装しないだろうな
0638名前は開発中のものです。2013/10/22(火) 12:36:20.41ID:RkpLyTH2
低レベルな話ほど長く続くね
0639名前は開発中のものです。2013/10/22(火) 12:47:39.37ID:R7mUWhnr
そりゃ母数が違うからな
0640名前は開発中のものです。2013/10/22(火) 15:20:36.48ID:o/EMSDRG
確かにゲームプログラム全体の中では低レベル寄りな方だよな。vsyncとか。
0641名前は開発中のものです。2013/10/22(火) 15:31:37.39ID:02IR7DMm
自転車置き場の議論なら誰でも参加できるからな
俺のように高レベルな人間になると議論する相手を探すのも苦労する
0642名前は開発中のものです。2013/10/22(火) 15:55:43.08ID:RkpLyTH2
バカばっか
0643名前は開発中のものです。2013/10/22(火) 16:25:11.43ID:aNv/ean1
>>641

多分ツッコミ待ちなんだろうけど、どこへツッコめばいいのかわからんw
0644名前は開発中のものです。2013/10/22(火) 16:30:05.22ID:IVeWUgqF
冗談にマジレスはあかんでー
0645名前は開発中のものです。2013/10/22(火) 18:58:55.59ID:Fwxh/sRV
自作中のゲームがウィンドウモードと比べて全画面モードの処理速度がどうしても遅いのですが
他のdxlibを使ったゲームはウィンドウの方が不安定だったりするのになぜでしょうか…

2D表示機能のみで、主な設定関数は
SetGraphMode(800,600,16)
SetDrawScreen(裏画面)
SetDrawMode(バイリニア)//ゲーム中変更なし

処理としては、描画に加算・減算切り替えが多め、背景の計算がやや複雑といった感じです

全画面モード中はこの処理が重い、といったことはあるのでしょうか?
0646名前は開発中のものです。2013/10/22(火) 20:35:42.51ID:IVeWUgqF
リリースで測った?
0647名前は開発中のものです。2013/10/22(火) 22:01:05.96ID:o/EMSDRG
特定のビデオカード(や設定)と相性が悪いとか、
解像度を変えるのではなくウィンドウサイズを上げてるとか…… うーん、わからん
0648名前は開発中のものです。2013/10/22(火) 22:30:32.24ID:smR91Eyn
過去の記憶ではリリースビルドでも遅くなっていました(計測はしていなく今リリースビルドしたらデバックビルドでは出ないエラーが出て改善できず、計測できませんでした)
音楽に合わせた演出がゲーム最初にあるのですが確実にずれていました

デバックビルドで計測しましたが、ウィンドウだと13ms、全画面だと17msでした
screenflipで差が出るようです
0649名前は開発中のものです。2013/10/22(火) 22:31:54.83ID:o/EMSDRG
17のほうが正常だそれ
06506492013/10/22(火) 22:34:58.08ID:o/EMSDRG
正常、って言うと語弊があるな。訂正。
たぶん、モニタ&グラボのリフレッシュレートが75Hz(≒13ms)になってるんじゃないか?
で、フルスクリーンにするときに、プログラム側で60Hz(≒17ms)に設定しているんだと思う
0651名前は開発中のものです。2013/10/22(火) 23:04:05.07ID:CMYREC7c
おお、モニタの情報をみたら75Hzでした
では全画面モードが遅いのではなくウィンドウモードが若干早送りされてるということですか!
これを抑えて調整し直します。ありがとうございました!
0652名前は開発中のものです。2013/10/22(火) 23:07:27.52ID:IeNmWB2w
まさにタイムリー
0653名前は開発中のものです。2013/10/22(火) 23:29:28.48ID:56sEfdt6
てか、普通ゲーム作るならFPSぐらい表示させないか
常にCPU負荷とFPSぐらいは見れるようにしとかないと・・・
0654名前は開発中のものです。2013/10/23(水) 01:24:23.81ID:mBIdYewB
FPS固定でウィンドウモードに対応させたい時、タイマーで制御すれば良いんだよね?
手元に60Hz以外に対応してるモニタが無いから、ホントにそれで合ってるのか分からん。

>>653
CPU負荷は表示させたこと無いなあ。Win32APIあたりから拾ってくるのん?
0655名前は開発中のものです。2013/10/23(水) 02:00:20.55ID:/vNRk1Xr
垂直同期するなら経過時間で処理する
垂直同期しないならWaitTimerが都合よく動くことを祈る
0656名前は開発中のものです。2013/10/23(水) 03:47:45.96ID:0wrZIgXb
>>654
単純にwait処理以外の時間を1秒間ms単位で足して1000で割る
で良いんじゃね

垂直同期待ちしてる場合はScreenFlipもwait処理として考える
0657名前は開発中のものです。2013/10/23(水) 17:08:21.68ID:mBIdYewB
ああすまん、タイマーによるフレーム制御自体は既に実装済み(vsyncと切り替え可能)ではあるんだ。
ただ、手元に60Hz以外の環境で確認するすべがないのと、
もしかすると、もうちょっとスマートな方法があるのかな?と、ちょっと気になっただけなんだ。

まあ、タイマー制御もvsync待ちも切ると500FPSとかで動いたりするから、大丈夫だろうとは思うんだけどさ。
デフォルトはタイマー制御にしておいて、コンフィグ画面なり起動時のダイアログなりで変えれるようにするのがベストかな?
0658名前は開発中のものです。2013/10/23(水) 17:14:46.11ID:r7PHrsPz
vsyncかタイマーか、設定できるようになってればどのみち問題はないだろう
0659名前は開発中のものです。2013/10/23(水) 20:42:08.44ID:FRuG4Mt0
描画処理は別スレッドにしてvsync固定
0660名前は開発中のものです。2013/10/25(金) 11:35:42.34ID:5OBeL3FY
んー?よくわかんないんだけど
例えばモニタが60fpsだったら、描画スレッドを60fps(vsync?)にして、
処理スレッドと描画スレッドはどうやって同期するんだ?

処理スレッドが座標いじってる時に描画スレッドが座標見るのはダメなんだよな?
まぁ早々ブッキングはしないだろうけど何万回転とかしたら・・・
0661名前は開発中のものです。2013/10/25(金) 16:06:37.29ID:4mKf6ch/
>>660
それは一旦fpsとかその他の言葉を忘れて、マルチスレッドでの同期処理を書いて理解した方がいい。

てか、ドライバ書いてる訳でも無いのに垂直帰線期間の話が出て来る事自体が、あんまりリアルじゃない。
30年前の8bitマシンならともかく、今のマシンでアプリレイヤの話ならばちょっと変だ。

垂直帰線期間の考慮が必要になるのは、例えばDirectXやOpenGLそのものがその中で行っている最後のラスタ情報のVRAMへの転送処理の中の話であって、
普通は(アプリケーションプログラマは)メインループの経過時間差を見てfpsをコントロールする。
具体的には一定経過時間未満の場合に処理をスキップさせる。

もしもこの周辺処理をマルチスレッドで実装したい場合に、意図的な同期処理が必要になるが、そういった場合にマルチスレッドでの流儀で実装する。

そうでないなら単にメインループの中で、普通に処理するだけ。
こういった話はより具体的にしないと、ただの曖昧な聞きかじりみたいな話で終わってしまい、全然役に立たない。
経験から引き出して実例として話さないとダメ。
0662名前は開発中のものです。2013/10/25(金) 16:51:42.23ID:4Ad/OwJF
>>660の質問に答えるのにその長文はいらんだろw
0663名前は開発中のものです。2013/10/25(金) 17:31:09.74ID:L0JBOh2J
本人が必要性感じてない段階でわざわざマルチスレッドとか要らんよ
0664名前は開発中のものです。2013/10/25(金) 21:13:51.48ID:eOV2PGNk
じゃあここにいる人たちはみんな組み込み系の専用モニタ使ってドライバからゲーム作ってる人たちなの?
0665名前は開発中のものです。2013/10/25(金) 21:16:54.66ID:L0JBOh2J
ドユコトー
0666名前は開発中のものです。2013/10/25(金) 21:32:50.74ID:W9GSrEjC
極端過ぎる
0667名前は開発中のものです。2013/10/25(金) 21:59:31.35ID:Wzto7AEP
なんでいきなりそういう話になったの?
誤爆か?
0668名前は開発中のものです。2013/10/25(金) 22:47:27.21ID:8QrcaZYH
そうだよ(適当)
0669名前は開発中のものです。2013/10/26(土) 05:38:35.50ID:EY53Gq9J
2D横スクロールアクションを作っているのですが、
マップスクロールを「キャラを中心にスクロール」、
「画面端はキャラだけ移動」という一般的な方法を
採用していますが、画像がブレだかボヤケだかの描画に
なってしまいます。
・キャラを中心にスクロールしているときは、背景のマップが
 ぶれる(ぼやける)
・画面端でキャラだけ動いているときは、キャラが
 ぶれる(ぼやける)

スクロール方法は下記サイトの方法で実装しています。
aidiary.hatenablog.com/entry/20050624/1255786339

スクロール中にキャラやマップのぶれを少なくする方法は
何かないでしょうか。
0670名前は開発中のものです。2013/10/26(土) 05:50:55.66ID:6XzQgQSh
それ単純に座標計算が1ドット〜数ドット分ずれるバグがどっかにあるだけで
スクロール方法関係ないんじゃない?
0671名前は開発中のものです。2013/10/26(土) 05:58:59.74ID:EY53Gq9J
なんと表現していいのかわからないのですが、
ブラウザとかでも高速でスクロールさせると文字や画像が
残像する、あのような感じです。

<キャラを中心にスクロール中>
 マップに残像が発生しますが、キャラはくっきり描画
 されます(アニメーションしてても)。
<画面端でキャラだけ移動しているとき>
 マップはくっきり描画されますが、移動中のキャラは
 常に残像が発生します。
※参考にしたサイトのサンプルプログラムでも
 同様の残像が発生します。
0672名前は開発中のものです。2013/10/26(土) 06:08:55.30ID:6XzQgQSh
バグじゃないとしたらテアリング?
0673名前は開発中のものです。2013/10/26(土) 07:26:17.12ID:6YbVuCZu
アンチエイリアス切ったりしてみたら?
0674名前は開発中のものです。2013/10/26(土) 08:51:17.35ID:/uNZ0zLg
単にクソモニタなんじゃないの?
0675名前は開発中のものです。2013/10/26(土) 08:56:23.71ID:Q2EqAaLN
ttps://dl.dropbox.com/u/285709/javagame/mariolike04.jar
これを実行で俺もなった
0676名前は開発中のものです。2013/10/26(土) 11:49:37.99ID:pP8Y9uuy
>>671
URLの先見てないけど、普通に真っ先に思い付くのはダブルバッファリングしてるかどうかだと思う。
で、多分してないんだと思う。それだけの事かなと
0677名前は開発中のものです。2013/10/26(土) 11:53:21.66ID:yQ4RNrvp
普通、2Dアクションとか作る時って「ちらつき」を出したくないからオフスクリーンバッファに書き込んでから、
最後にそのバッファを画面へ送る。
真っ先にその話が出るべき
0678名前は開発中のものです。2013/10/26(土) 13:57:28.53ID:J0WOOfsS
まずスクリーンショットを撮ろう
撮ったスクリーンショットがおかしかったらゲームが悪い

だがこの場合、多分モニタの残像だろう
PSPのゲームとかでも残像起こってるだろ? ショボイモニタだとドットの色切り替えが遅くてモヤっとした残像が残る
液晶モニタ使ってるならそれが正常な状態だからそのままでいい

自分のテスト環境で発生するのが嫌なら、CRTモニタか、性能のいい液晶モニタを買うしかない
もしくは、作ってるゲームが30fpsだったなら60fpsで組めば多少はマシになる
0679名前は開発中のものです。2013/10/26(土) 14:17:59.04ID:6eucTLth
>>675
別におかしくない
環境かな
0680名前は開発中のものです。2013/10/26(土) 14:26:43.92ID:VAjnFKN9
問題なし
環境だね
0681名前は開発中のものです。2013/10/26(土) 14:28:35.26ID:j2hwvwUg
ブラウザのスクロールで残像発生してるって言ってるし
相当クソなブラウザを特別に使ってなければ環境
0682名前は開発中のものです。2013/10/26(土) 14:55:49.27ID:6eucTLth
ビデオカードのドライバかモニタの問題だろう
0683名前は開発中のものです。2013/10/26(土) 15:26:34.20ID:vOP7JN2P
【初心者】スレを立てる前にココで質問を【Part25】
http://toro.2ch.net/test/read.cgi/gamedev/1361004297/800-807

マルチポストじゃなくて、第三者による転載だってさ。
DXライブラリの質問とは限らないし、回答するなら本人が居る向こうの方が良いと思う
0684名前は開発中のものです。2013/10/26(土) 15:49:34.04ID:J0WOOfsS
目を通したっぽいしもう終わりでいいな
0685名前は開発中のものです。2013/10/27(日) 03:55:14.21ID:hVtutQ/3
しかし、他人の質問を勝手に別スレに貼るとか
教えてGooの擬人化みたいな奴だな…
0686名前は開発中のものです。2013/10/27(日) 18:32:26.43ID:ZqajIEUd
C#版でコリジョン関数や参照用メッシュ関数使うと例外出るから
修正してたら一日終わった・・・
0687名前は開発中のものです。2013/10/27(日) 18:40:59.76ID:lWMy8q7c
有意義な一日じゃん。
0688名前は開発中のものです。2013/10/27(日) 19:07:38.88ID:J4caiA24
ff14やってたら生産(脳死作業)で一日終わった
0689名前は開発中のものです。2013/10/27(日) 20:36:50.19ID:ky3lixuM
IDEの挙動がおかしくなったので、原因究明と再インストールで復帰に3日かかった…
0690名前は開発中のものです。2013/10/27(日) 20:49:33.81ID:o0p58kLo
Eclipseはどうしもない糞だよな
0691名前は開発中のものです。2013/10/27(日) 21:02:15.67ID:XS+5Iaz0
Visual Studioも依存するライブラリが破損すると全く動かなくなる困ったちゃんになることもある
0692名前は開発中のものです。2013/10/28(月) 08:27:44.01ID:POAr7U/I
そんなのeclipseに比べたら微々たるもの
0693名前は開発中のものです。2013/10/30(水) 14:41:44.02ID:sYdTMpzX
Eclipseで困ったことなんて一回もないな
そんなに糞だと思うならNetBeansなり
IntelliJなり好きなの使えばいいのに
0694名前は開発中のものです。2013/10/30(水) 16:10:35.70ID:28s19Yxa
Qt使いの俺に死角はなかった
0695名前は開発中のものです。2013/10/31(木) 12:48:09.17ID:cHiDnG2c
こっちを向いてよハニー
0696名前は開発中のものです。2013/10/31(木) 14:46:32.33ID:kR/JAw79
( ゚д゚ )
0697名前は開発中のものです。2013/10/31(木) 15:29:36.47ID:p29pq3vL
こっち見んなw
0698名前は開発中のものです。2013/11/01(金) 17:22:12.94ID:O2gJuo4d
(   )
0699名前は開発中のものです。2013/11/01(金) 17:43:40.29ID:19pXpteF
キューティーハニーって気づいて無い人も居そうな雰囲気
0700名前は開発中のものです。2013/11/01(金) 17:56:15.00ID:/fYKLVaQ
ねえムーミン
0701名前は開発中のものです。2013/11/02(土) 03:30:34.86ID:Ut0q1ayZ
VS2013Expが出ちゃったけど対応してるのかしら
0702名前は開発中のものです。2013/11/02(土) 03:36:17.73ID:x2D2oiTV
2010でお腹いっぱい
0703名前は開発中のものです。2013/11/02(土) 08:09:56.90ID:3+cyVteE
描画リストというのを作って描画を管理しているのですが、ブレークポイントでは値に異常が見つからないにもかかわらずゲームを起動するとモデルが描画されていません。
どうしたらいいですか?

mv1ファイルを読み込み
座標・回転の設定・更新
描画リストへ登録
描画リストが各クラスへ描画する関数を呼び出し
描画リストを初期化
最初に戻る

これら一連の流れで値に異常が見つかりません

エスパーいたらお願いします
0704名前は開発中のものです。2013/11/02(土) 13:37:22.37ID:BsNpZj+/
ありがちなので、モデルが視界に入ってないとか(座標、クリップetc)
スケールの初期値がおかしかったり
0705名前は開発中のものです。2013/11/02(土) 14:08:55.57ID:WffMO7pj
・まずいままで任意の三次元空間に配置したモデルを普通に描画させた事はあるか
・次に、あるとした、それらを単に「おまじないで出来た」じゃなく意味わかっててやれたのか
・次にカメラの位置や角度とモデルの位置はあってるか
・次にシェーダ使ってる場合、シェーダ内のエラーちゃんと拾ってるか。計算は合ってるのか
・使ってないとしてマテリアルやライトはどうなってるか

確認点いくらでも出てくる
0706名前は開発中のものです。2013/11/02(土) 14:16:54.20ID:zb+/V8x5
DXライブラリ初期化前にロードしてると映らなかったりする
0707名前は開発中のものです。2013/11/02(土) 20:26:00.39ID:n5KzCdEv
>>703
http://c-games.main.jp/ckaihatu/ckaihatu8.html

良かったらこれをご覧ください
上記の解説サイトを運営している者ですが
お役に立てれば光栄です
0708名前は開発中のものです。2013/11/02(土) 20:29:07.13ID:yqJ8dEIi
↑のサイトはいつも自演してるkazukiのサイト
騙されんなよ
0709名前は開発中のものです。2013/11/02(土) 20:37:43.45ID:9FYWUI/Y
名乗ってるし別にいいんじゃね
ちゃんとコテハン付けてくれるとなお良し
0710名前は開発中のものです。2013/11/02(土) 21:09:13.15ID:mpR3CYfz
いつの間にかシェーダー使えるようになってるけど
お前らちゃんと使いこなしてる?
0711名前は開発中のものです。2013/11/02(土) 21:35:26.14ID:SySW2qwH
クラスの中で関数ポインタを持つ構造体定義して、配列で管理したいんですが
error C2064: 0 引数を取り込む関数には評価されません。
とエラーがでます。どうしたらいいですか?

struct{
string AI_NAME;
void (CNonPlayer::*AI_Func)();//AIの関数ポインタ
}AIList[6];
int UseAI;

//使う時
AIList[UseAI].AI_Func();

ちなみに関数ポインタはコンストラクタで
AIList[0].AI_NAME="Idle";
AIList[0].AI_Func=&CNonPlayer::AI_Idle;
みたいに初期化しています。AI_Idleみたいなメンバ関数が6個あります。(要素数)
0712名前は開発中のものです。2013/11/02(土) 21:40:49.23ID:O018gqUy
つーか、生ポのくせにレンサバ使ってんじゃねーよカス
0713名前は開発中のものです。2013/11/02(土) 21:42:40.26ID:3Maelvih
http://msdn.microsoft.com/ja-jp/library/z72c1dfd(v=vs.90).aspx
0714名前は開発中のものです。2013/11/02(土) 21:59:51.69ID:SySW2qwH
>>713
おぉ・・・
(this->*AIList[UseAI].AI_Func)();
こんなんにしたらできました
ありがとうございます

>>712
ナマポ?スマートポインタじゃないと設計としてまずいですか?
0715名前は開発中のものです。2013/11/02(土) 22:02:12.55ID:9FYWUI/Y
>>707に対して、生活保護受けてるくせに〜ってことでしょ
0716名前は開発中のものです。2013/11/03(日) 00:55:04.58ID:W4L0bxGv
ぬるぽ
0717名前は開発中のものです。2013/11/03(日) 03:40:26.61ID:tMrWUay8
>>714
関数ポインタの指してる先が普通のメンバ関数みたいだし
このケースではスマートポインタにする意義は無いと思う

似たようなことを敢えて言うとすれば「std::function使おう」とか言えるけど
0718名前は開発中のものです。2013/11/03(日) 08:21:38.75ID:vvC2nxd0
生活保護不正受給の松浦博史の話はスレ違いだからここでやれ。
http://pona.m-bird.org/d-bbs/2-watch/
■ このスレッドは過去ログ倉庫に格納されています