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


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

Windowsゲームプログラミング 質問スレ



1 名前:デフォルトの名無しさん [05/02/25 05:10:53 ]
※回答する人も、質問する人も必ず読んでください 

【 回答してくださる方 】 
・ できるだけ優しく質問に答えてあげてください。 
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 
 「ググれ」以外の回答でおながいします。 
・ 神ですら理解不能な質問は無視して下さい。 

【 質問する香具師 】 
・ どんな事で躓いているのか明確にしる。 
・ 長くならないなら躓いている部分のコードを晒してみれ。 
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書け。 


190 名前:名前は開発中のものです。 mailto:sage [2006/06/18(日) 10:46:11 ID:pBYbu/U2]
すまん。
ちょっと質問させてくれ。
いまアクションゲーム作ってるんだが、
グラフィック領域をどの程度まで使っていいのかがちょっと不安。

よくVRAM32Mとか書いてあるけど
あれは256X256dot1枚(深度8bit)=64KBと考えて、
1MのVRAMならそれが128枚分載ると思っていいの?
それともアルファを載せたら領域半分になるとか?

また他のソフトの常駐も一応考えるべきだと思うんだが
どの程度VRAMの空きを作っておくべきだろうか?

また現在のグラフィックボードは何Mくらいが標準と考えていいのだろうか?

とりあえず、作る方はなんとかなってるんだが
世間の動向とハード周りの常識がわからないもので、
悪いんけどだれか教えてくだされ。


191 名前:名前は開発中のものです。 mailto:sage [2006/06/18(日) 11:45:42 ID:Jubw01vM]
>>190
VRAMに保持されるのはテクスチャだけじゃないよ。
VRAMがどのように使われるかはドライバ次第なんで
ぶっちゃけPGからはほとんど予測できない。
一応消費量は取得できるからそういうソフと使ってみたり
自分で組んでみるなりやってみ。

192 名前:190 [2006/06/18(日) 12:11:04 ID:pBYbu/U2]
>>191
即レスサンクスです。

そうかあ。
こっちで計算してミッチリ詰め込んだらあかんのか。

重ねて申し訳ないんだけど
VRAM消費量の取得方法を教えて頂けませんか?

193 名前:名前は開発中のものです。 mailto:sage [2006/06/18(日) 14:03:15 ID:ElWGc4Pa]
>>192
DirectX使えばVRAMの使用料とか空きがわかるはず

194 名前:名前は開発中のものです。 mailto:sage [2006/06/18(日) 14:10:17 ID:Jubw01vM]
DirectX9だと使用可能なテクスチャ メモリの推定値しかわからんかも。

195 名前:190 [2006/06/18(日) 14:30:50 ID:pBYbu/U2]
確かになんか不安定というか妙なところで消費されてるぽいなあ。
今、普通の同人アクションゲーだとVRAM32Mとか要求してもいいかな?
昔のゲームって要求するスペック、8Mとか16Mだったと思うんだが。

196 名前:名前は開発中のものです。 [2006/06/18(日) 16:03:19 ID:qq6KWnYE]
BitBltか・・・何もかも懐かしい・・・

197 名前:名前は開発中のものです。 [2006/06/18(日) 20:00:27 ID:ca306MDz]
今ならVRAM64MBは普通に要求しても良い気がする。
むしろ128MBでも良いんじゃないかな。

198 名前:名前は開発中のものです。 mailto:sage [2006/06/18(日) 20:22:51 ID:RClJ2qcr]
内容によると思うが
32MB要求してマリオのパクリものとかだったらなんだかなぁ。
ノートPCも視野に入れるとせいぜい8MBぐらいじゃないの。



199 名前:名前は開発中のものです。 mailto:sage [2006/06/18(日) 21:06:16 ID:ElWGc4Pa]
>>198
死んでくれ orz

200 名前:名前は開発中のものです。 [2006/06/18(日) 21:09:30 ID:ca306MDz]
ノートでも今は128MBとか普通にない?
数年前でも32MBは普通にあったよ
少なくとも8MBなんてのは古すぎて論外でしょ。
そんなんじゃCPUとかもヘボいだろうし

201 名前:名前は開発中のものです。 mailto:sage [2006/06/18(日) 21:21:01 ID:+TAyDrR9]
8MBのノートで、今時ゲームしようってのがずうずうしい。

202 名前:名前は開発中のものです。 mailto:sage [2006/06/18(日) 21:24:29 ID:YI1O1grK]
オンボードでも8Mでもテストしてくれる分には全然おk〜!
えぶりばでぃ・かもん・てぅぎゃざーだぜぇ!!!

でも、動かないものは動かないから、
三点リーダーつけて報告されてもスルーだからな…

203 名前:名前は開発中のものです。 mailto:sage [2006/06/18(日) 21:45:28 ID:RClJ2qcr]
うちのノートもそうだけど、PenIII世代だと8MB普通だと思うが・・・。
というが寧ろ多い方。4MBもザラだし。
2Dのゲームぐらいは出来てほしい。
さすがにこれで3Dゲームやろうとは思わないがね。

204 名前:190 mailto:sage [2006/06/19(月) 20:40:53 ID:/xQO+gJI]
なんか色々意見どうもです。
思い切って32Mとか64Mとか(笑)要求することにしちゃいます。
やっぱりアニメーションパターンとか多いほうがいいと思うんで。

CPU速度も1Gとか1.5Gとか要求していいよね?

205 名前:名前は開発中のものです。 mailto:sage [2006/06/19(月) 21:58:11 ID:y6jN8Acn]
>>204
個人の2Dゲー製作で同時に32M使うほどのパターン用意できるなんて尊敬するよ
プリレンダとか使うなら平気でいきそうだけど
画面解像度はどれくらいにするのか聞いていい?

CPUは、VRAMに64M要求するならバランス的にありだと思う

206 名前:名前は開発中のものです。 mailto:sage [2006/06/19(月) 22:05:02 ID:sQesAY19]
必要1GHz
推奨1.5GHz
ぐらいならありじゃないかな

207 名前:190 [2006/06/20(火) 01:10:00 ID:J9IIGM39]
>>205
640*480でやってます。
プリレンダで2Dはあまりメリットを感じないので全部ドット絵で。

208 名前:名前は開発中のものです。 mailto:sage [2006/06/20(火) 20:45:50 ID:wGNZFSvi]
洋ゲー遊んでいる俺からすっと、よくそんなんで、ゲーム遊べんなーとか思えてくる



209 名前:名前は開発中のものです。 mailto:sage [2006/06/20(火) 21:12:06 ID:U53Og5Sj]
洞窟物語はサクサク動きますが、何か。

210 名前:sage [2006/06/24(土) 03:03:15 ID:m69O2sj/]
すみません、質問なんですが
DirectXのD3DXIntersect関数を使い
当たったメッシュの頂点座標を取得したいのですが
色々触って見ても変な座標しか取れません
変な所があれば教えていただけないでしょうか

//レイを取得
D3DXIntersect(pThing->pMesh,&vecStart,&vecDirection,&boHit,&index,NULL,NULL, pfDistance,&pAllHits,NULL);
// 三角形の頂点バッファを取得する
if( pAllHits != NULL )
{
pHit = (LPD3DXINTERSECTINFO)pAllHits->GetBufferPointer();
index = pHit[0].FaceIndex;
pAllHits->Release();
}

D3DXVECTOR3 vertex[3];
DWORD fvf = pMesh->GetFVF();
DWORD versize = D3DXGetFVFVertexSize(fvf);

PBYTE pvertexBuffer;
pMesh->LockVertexBuffer(D3DLOCK_READONLY,(LPVOID*)&pvertexBuffer);

pvertexBuffer += versize*(index - 1);
for( DWORD i=0; i<3; i++)
{
vertex[i] = *(D3DXVECTOR3*)pvertexBuffer;
pvertexBuffer += versize;
}

211 名前:名前は開発中のものです。 mailto:sage [2006/06/24(土) 03:04:39 ID:m69O2sj/]
すみませんsageミスしました・・・
長くなってしまいましたが
よろしくお願いします。

212 名前:名前は開発中のものです。 mailto:sage [2006/06/24(土) 08:42:06 ID:k4X/jTYk]
プレフィックスでLP〜ってやつのLって何の略?

213 名前:名前は開発中のものです。 mailto:sage [2006/06/24(土) 09:50:47 ID:RIlsIRaW]
16bit時代の名残

214 名前:名前は開発中のものです。 mailto:sage [2006/06/24(土) 10:08:41 ID:1lkTmR+n]
Long

215 名前:名前は開発中のものです。 mailto:sage [2006/06/24(土) 14:23:03 ID:EzoU61rH]
>>210
俺はヘルプ見ただけだから、理解度は低いかもしれないんだけど

if (boHit){
 // ヒットしている
 hitPos = vecStart + vecDirection * (*pfDistance);
}

これじゃ駄目なんかな?

216 名前:210 mailto:sage [2006/06/25(日) 15:39:14 ID:sfFJvfhl]
>>215
すいません言葉足らずでした
取りたいなーと思っているのは
メッシュのポリゴンの頂点座標です。
キャラクターを壁で斜めすべりさせるのに
どうにかして法線を取りたいので

217 名前:名前は開発中のものです。 mailto:sage [2006/06/25(日) 18:21:27 ID:zITz6Cg0]
>>216
俺はWindowsもDirectXも分からないけど、まあまずはぬるめの風呂に30分ほどゆっくり
つかって、プログラミングを始めた頃のこと、初めてゲームをやった時のことなど思い出に
ひたり、それからいい酒飲んでから揚げでもつまみ、いつもより早めに寝てたっぷり睡眠を
取れ。そして1週間ほどプログラミングのことなど忘れて古本屋や映画館を巡ったり、いつも
乗る電車の終点まで行って見知らぬ街を散策してみたりしろ。その後もう一度マニュアル
を見ろ。

218 名前:名前は開発中のものです。 mailto:sage [2006/06/25(日) 23:44:10 ID:5Ua3zqQo]
>>217
216じゃないが、今日は初心に帰ってそうすることにする。



219 名前:名前は開発中のものです。 mailto:sage [2006/06/27(火) 08:43:51 ID:NqVCHwYq]
>>216
どのポリゴンに当たったかってD3DXで調べられなかったっけ?
それが分かれば法線はすぐもとまると思うんだが

220 名前:名前は開発中のものです。 mailto:sage [2006/06/27(火) 22:24:53 ID:0fSvTu/K]
DirectX無しでシューティングゲームとか作れますか?
言語はVB,NETです

221 名前:名前は開発中のものです。 mailto:sage [2006/06/27(火) 22:31:07 ID:bDfJ6ySM]
作れます

222 名前:名前は開発中のものです。 [2006/06/29(木) 22:19:07 ID:wGpJLUUG]
作って

223 名前:名前は開発中のものです。 mailto:sage [2006/06/30(金) 22:06:50 ID:D4ASNYgK]
二次元なら普通にあるだろう

224 名前:名前は開発中のものです。 mailto:sage [2006/07/02(日) 06:47:31 ID:iwWFKEuL]
しつもーん。
3D形状データ(Xファイル)を読み込ませて、拡大縮小回転はなんとかなりそうなんですけど
人型Xファイルを歩かせようとした場合、歩くアニメーションはどうやって作ればいいか
探ってるんですが、もしかしてめっちゃ大変ですか?

人型Xファイルを1体まるごと読み込ませないで、関節ごとに別ファイルとして読み込ませて
各関節ごとに移動回転させて、全体としてアニメーションさせるような
原始的手法なら思いつくのですが、アナタ一体いつの時代の人ですかって聞かれそうでw
これやってたら、何年やっても完成しないので何か便利な方法があると思うんですけど
ぐぐってっも「これだっ!」っていうのがでてこなくて・゚・(ノ∀`)・゚・。
手元の参考書だと載ってない(シューティングゲームがサンプルだったorz)
サルにもわかるような感じでお願いします。

225 名前:名前は開発中のものです。 mailto:sage [2006/07/02(日) 06:51:01 ID:iwWFKEuL]
しまったぁ。 DirectX 9.0 で、です。

226 名前:名前は開発中のものです。 mailto:sage [2006/07/02(日) 08:09:40 ID:z7RUlvoX]
モデリングソフト

227 名前:名前は開発中のものです。 mailto:sage [2006/07/02(日) 22:56:49 ID:irOFBzPh]
>>224
↓ここのひとに尋ねてみるとか

ネギま!の格ゲーを作るスレ
pc8.2ch.net/test/read.cgi/gamedev/1125739113/

228 名前:名前は開発中のものです。 mailto:sage [2006/07/04(火) 02:37:45 ID:/xFpqUiE]
224
どももー。MSDNのサンプルやヘルプからは見落としがちなコラム
っていう想定外の所に解決策がありましたー。



229 名前:名前は開発中のものです。 mailto:sage [2006/07/07(金) 12:37:05 ID:qWQ2Sdmj]
すみません。質問です。
OBB(Oriented Bounding Box)で、物体頂点から、
主成分分析をもちい、共分散行列つくって固有ベクトルで、
3つの軸を見つけることができたのですが、

直方体の物体に対する第一成分の軸が、最長の対角線上
になってしまいます。こうなるとAABBより悪い。。。

確かに普通に軸を、とればそうなるのはわかったのですが、
外国の論文みてると、どうやらこれを回避できるらしいです。
ただ、英語がよくわからないので、もう一歩が読みきれません。
一言でなにかポイントを教えてください。


230 名前:名前は開発中のものです。 mailto:sage [2006/07/07(金) 13:35:29 ID:D9SHDo6P]
英語が良くわからないのなら、英語を勉強すればよいだけじゃないな

231 名前:名前は開発中のものです。 mailto:sage [2006/07/07(金) 13:52:02 ID:qWQ2Sdmj]
お答えどうもありがとうございます。
それでその論文をよんでみると。
ttp://citeseer.ist.psu.edu/rd/54230104%2C188723%2C1%2C0.25%2CDownload/citeseer.ist.psu.edu/cache/papers/cs/1309/ftp:zSzzSzams.sunysb.eduzSzpubzSzgeometryzSzboxtree.pdf/barequet96boxtree.pdf

3.2. Arbitrarily Oriented Boxes
てところにそれらしいことが書いてあって、
次善の策で主成分分析の最小成分に投影した、最小面積にフィット
する矩形を探すということはわかりました。
理屈からいえば当然ですが、”最小面積にフィットする矩形を探す”
のが難しいから、調べてるわけでして。

最善の策ってのは、パイスライスの、ミンコフスキーのピラミッドが
どうのと、これがまたわけわかんなくて。。。。。。



232 名前:名前は開発中のものです。 mailto:sage [2006/07/07(金) 16:18:10 ID:qWQ2Sdmj]
連続でレスですみません。

ちなみに、外国の論文によれば、第3成分方向で
投影して、ミンコフスキー和がどうとか書いてありました。

このミンコフスキー和もいまいちピンとこないのですし、

もしかするとミンコフスキー和も、
直方体の投影面積と、OBBの投影面積に関する
ヒューリスティクスな方法の評価につかわれる
もので、OBBを一意的に決められるもの
ではないのでしょうか。

もし経験者がいたら宜しくお願いします。



233 名前:名前は開発中のものです。 mailto:sage [2006/07/07(金) 21:03:16 ID:cg1vQlls]
経験者じゃないが、OBBが最適になるように、手動で物体を分割しちゃまずいのか?

234 名前:232 mailto:sage [2006/07/08(土) 16:44:34 ID:sISxHTft]
それができれば、それがベストのOBBだと思います。

自分のは、若干モデラーの機能があるので、
ユーザーにOBBを意識させない必要がありまして。。。

AABBでも、2倍もパフォーマンスが悪化することは
ないはずなので、AABBで妥協してもいいんですが。。。



235 名前:名前は開発中のものです。 [2006/07/16(日) 20:12:58 ID:xoc97HXo]
VB.NETでゲーム(ブラックジャック)を作っていますが、わからない箇所が出てきまして、もし見識者の方が居られましたら、是非にお教え下さい。Label4.Textに、ランダムで現れたLabel2.TextとLabel3.Textの中の数の和を表したいのです。
Dim a, b As String Dim c, d As Integer
Private Sub Timer1_Tick:Label1.Text = Int((4 * Rnd()) + 18)
Label2.Text = Int((13 * Rnd()) + 1)
Label3.Text = Int((13 * Rnd()) + 1)
Private Sub Button1_Click:Timer1.Enabled = True
Private Sub Button2_Click:Timer1.Enabled = False
a = Val(Label2.Text)
b = Val(Label3.Text)
c = Str(Label2.Text)
d = Str(Label3.Text)
Label4.Text = c + d
If a = 11 Then
Label2.Text = "J"
ElseIf a = 12 Then
Label2.Text = "Q"
ElseIf a = 13 Then
Label2.Text = "K"
End If
If b = 11 Then
Label3.Text = "J"
ElseIf b = 12 Then
Label3.Text = "Q"
ElseIf b = 13 Then
Label3.Text = "K"
End If
このコードでは、デバック時に『オブジェクト参照がオブジェクト インスタンスに設定されていません。』と表示されてしまい、上のコードからcとdを消去して、Label4.Text = a + bとしても、全く関係の無いような数が表示されます。どうか助けて下さい…

236 名前:名前は開発中のものです。 mailto:sage [2006/07/16(日) 21:12:59 ID:+JiTcTeg]
StrとかValの使い方が明らかにおかしいw
あとその汚いソースコードは何とかしたほうがいい。
a+bは文字列連結だし。

237 名前:名前は開発中のものです。 [2006/07/17(月) 01:11:08 ID:MDyRCzaO]
>>235
ラベルやテキストボックスのValueは、文字列だから。
>236の指摘通り、そこの使い方が根本的に間違えてる。

238 名前:名前は開発中のものです。 mailto:sage [2006/07/17(月) 09:50:04 ID:YehA4Jel]
プログラミングWindows上下巻(Charies Petzold著)と英和辞典が必須か




239 名前:235 [2006/07/17(月) 10:25:35 ID:lqXylc4k]
>236>237
ご指摘ありがとうございました。

240 名前:名前は開発中のものです。 [2006/07/17(月) 12:33:08 ID:lqXylc4k]
VB.NETのゲーム中で音楽を流したいのですが
(プログラム中のFormの場所に?)どのようなコードを記述すれば良いでしょうか?
ちなみに音楽ファイルの種類は『MIDIシーケンス』、『Winamp media file』のものしか持っていないのですが、可能でしょうか?どうかよろしくお願いします。

241 名前:名前は開発中のものです。 mailto:sage [2006/07/23(日) 21:20:12 ID:ak03kWW1]
>Winamp media file
プログラム以前に拡張子に関して勉強やり直してきてくださ

242 名前:名前は開発中のものです。 [2006/07/29(土) 00:23:29 ID:nGtRJv9b]
>>241
てめーに聞いてねえんだよ。クソが。

どなたか質問に答えてくださいおねがいします

243 名前:名前は開発中のものです。 mailto:sage [2006/07/29(土) 01:46:01 ID:S/WdcXq4]
2chでは糞な奴に会う場合が多いので、いちいち書いてたら大変なので糞がを付けないようにしている。
こんにちは(お日柄も良く)みたいにいつも糞がの省略している。

例 適切な解説ありがとう御座います。助かりました(糞が)

244 名前: ◆1porpfThBQ [2006/07/29(土) 04:13:25 ID:N4kXLIKR]
w

245 名前: ◆rCHJ9S75sQ [2006/07/29(土) 04:18:28 ID:N4kXLIKR]
u8

246 名前: ◆Pc8O3myB3o [2006/07/29(土) 04:19:13 ID:N4kXLIKR]
e

247 名前: ◆VsPWT7kee6 [2006/07/29(土) 04:20:02 ID:N4kXLIKR]
y

248 名前: ◆mv8HC/D2Bw [2006/07/29(土) 04:20:49 ID:N4kXLIKR]
r



249 名前:名前は開発中のものです。 mailto:sage [2006/07/29(土) 10:07:48 ID:NBeZ7thm]
>>242
ググればすぐ出てくるでしょう?
一週間も何やってたんですか?w

250 名前:名前は開発中のものです。 mailto:sage [2006/07/30(日) 17:59:57 ID:RVJrt37D]
雨にも負けず 風にも負けず
雪にも夏の暑さにも負けず
丈夫な身体を持ち
欲はなく決していからず
いつも静かに笑っている
一日に玄米四合と味噌と少しの野菜を食べ
あらゆることを自分を勘定に入れずに
よく見聞きし分かり そして忘れず
野原の松の林のかげの
小さなかやぶきの小屋にいて
東に病気の子供あれば
行って看病してやり
西に疲れた母あれば
行ってその稲の束を負い
南に死にそうな人あれば
行って怖がらなくてもいいと言い
北に喧嘩や訴訟があれば
つまらないからやめろと言い
日照りのときは涙を流し
寒さの夏はおろおろ歩き
皆にデクノボーと呼ばれ
ほめられもせず 苦にもされず
そういうものに 私はなりたい(糞が)

251 名前:名前は開発中のものです。 [2006/08/12(土) 20:09:02 ID:nFOVoREH]


252 名前:名前は開発中のものです。 [2006/08/13(日) 00:03:23 ID:NmZSkLh2]
とりあえず
winamp media file
まで読んでみた。

253 名前:名前は開発中のものです。 [2006/08/13(日) 06:47:15 ID:2UkITm4H]
僕らは旅人、常にどこかへ歩いている。
どこに行けばいい?
僕らはここからどこへも行けないの?
誰でもいいから教えてください。
いつまで歩けばこの道は途切れる?
野宿なんてもうこりごりだよ。
目の前にある看板にはなんて書いてある?
町がどこかを書いてあるといいんだけれど。
目の前に見えているのは町?
家があるけど町ではないね。
僕に翼があればいいのに・・・。
翼があれば歩く必要も無い
翼が欲しいな。
何を
どれだけ
どのように
犠牲にすれば手に入る?
僕は何をすれば自由になれる?
翼を求める本当の理由
それは誰にも分かることなし。
むなしくつづる僕の文。
誰にも伝わることの無いこの思い。
preas me
僕にください。
だれでもいい
何人でもいい
条件があってもかまわない
だから、お願い翼をください
僕を自由にしてください。

254 名前:名前は開発中のものです。 mailto:sage [2006/08/13(日) 07:56:34 ID:o/UAG1nJ]
>preas me

255 名前:名前は開発中のものです。 mailto:sage [2006/08/13(日) 10:16:18 ID:ivtGp+tH]
>press me

つぶして!

256 名前:名前は開発中のものです。 [2006/08/25(金) 18:42:13 ID:Gxqk6qh5]
質問です
directxの方かちょっと迷いましたが本題が微妙に違う気がしたので
こちらに書かせてもらいました

今DirectX上で、文字入力をするプログラムを書いています。
表示関係は終わったのですが、入力をどうしたらよいのか迷っています。
検索してもあまりよくわからなかったのですが、普通は入力システムを自前で
全て作るものなのでしょうか?
それとも、APIとかを使って何か内部バッファに入力を溜めるような便利なものが
あるのでしょうか?


257 名前:名前は開発中のものです。 mailto:sage [2006/08/25(金) 18:50:59 ID:RFenyKMu]
Cならchar型の動的配列を自前で用意するとか
C++ならstring型とvectorコンテナかlistコンテナを組み合わせて文字列を格納するとか

258 名前:名前は開発中のものです。 mailto:sage [2006/08/25(金) 21:25:28 ID:RVtfbAQ1]
>>256
話がよくわからないけど、番号が非常にキリがいいので、
エスパー能力全開で答えてみる。

WinAPI使ってるなら
LRESULT CALLBACK WindowProc(HWND hwnd, UINT msg, WPARAM wpr, LPARAM lpr)
みたいなコールバック関数があるはずだ。
ここでmsgに
WM_KEYDOWN
WM_KEYUP
WM_CHAR
があったら要注意。wprの内容を適当に内容を解釈すべし。
WM_IME_STARTCOMPOSITION
WM_IME_ENDCOMPOSITION
についても調べておくとちょっと幸せになるかも。

まぁ、なんかのライブラリを使ったほうがもっと幸せになれるとは思うが。。。



259 名前:名前は開発中のものです。 mailto:sage [2006/08/25(金) 22:22:37 ID:Gxqk6qh5]
>>258
自分で読んで思ったけどこれだとよくわからないですよね
directxで文字入力をする窓を作ったのですが(EDITコントロールみたいなの)
カーソルも含めて表示はDirectXで出来るように作ったのですが
入力はどうやって作ろうかなと悩んでいるのです

ざっと考えると、キー入力があったら、それに対応した文字をバッファに入れればいいような気がしますが
シフトで大文字小文字とかCAPSとかコピーペーストとかIMEの有無や制御とか
全部自力で作るのかなぁと

DirectXでゲームを作っている人で、画面上に文字入力をするような場合は
みんなどのようにしてるんでしょうか

260 名前:名前は開発中のものです。 mailto:sage [2006/08/25(金) 22:27:30 ID:Gxqk6qh5]
付け加え
文字入力する窓というのは、テクスチャで表示している独自に作った
ウィンドウのことです。文字とカーソルもテクスチャで表示しています。

261 名前:補給屋 ◆ZA3g9myNTI [2006/08/25(金) 22:34:03 ID:fUkTY6Eo]
Direct3Dですか?

262 名前:名前は開発中のものです。 mailto:sage [2006/08/25(金) 23:04:52 ID:j9BFP6Ja]
>>259
大文字小文字程度なら WM_CHAR で適用済みの文字コードが受け取れる
IMEは変換中の文字列をどう表示するかが難しそうだな、俺は知らん

263 名前:名前は開発中のものです。 mailto:sage [2006/08/25(金) 23:18:05 ID:RVtfbAQ1]
スレ違いのようだが、
質問は「DirectXでどう入力を受け取るか」だけど、
回答は「WinAPIのウィンドーメッセージで受け取れ」だから、
スレ違いじゃない罠。

>>259
DirectXのDirectはハードの直接制御だから、
ちゃんとした文字列を受け取るのは無理じゃないかと思うが…
どうしても腑に落ちなきゃDirectXスレで聞いてみると良いかもね。

>>262
IMEで変換中の状態が表示されるので、
自分の場合表示位置の座標を変更して、
あたかもプロンプトから入力しているように装ってるw

264 名前:名前は開発中のものです。 mailto:sage [2006/08/25(金) 23:27:43 ID:Gxqk6qh5]
>>261
表示はそうですね。文字入力窓のテクスチャを2Dで表示して
バッファの文字を上に貼り付けてという風に
ネトゲのチャット入力みたいなものですが、やっぱりちゃんと作らないと
だめかぁ

>>262
なるほど…ということは、それを含めてカーソルの移動と挿入削除とコピペと
IMEの判定と変換中と確定後の処理って感じなのかな。道は長い

>>263
多分258さんが言う感じで、入力調べて頑張ってという感じだと思うので
その辺りをちょっと頑張って作ってみます
ありがとう


265 名前:名前は開発中のものです。 mailto:sage [2006/08/26(土) 00:27:44 ID:m2Iaf5aG]
>>264
最近似たような事やってたので一応コレ
ttp://nienie.com/~masapico/api_ImmGetCompositionString.html

266 名前:名前は開発中のものです。 mailto:sage [2006/08/26(土) 02:41:41 ID:tKmIInJP]
RPGのキャラクターとかのメモリビットマップ(PC解像度と同じ)
を作りすぎると、描画速度が遅くなってしまいます。

量としては、フィールドの点滅用(480×480)×3、
マップチップ(256×256)×1、キャラチップ(72×128)×32などです。

だから、一部はファイルにおいて置いて、使うときのみロード
みたいなのも行ったんですが、ロードに時間がかかりすぎます。
(ロードは8ビットだとかなり遅く、24ビットだと少し緩和されます。)

何かいい方法はないでしょうか。
環境は、9x系、128M。

267 名前:名前は開発中のものです。 mailto:sage [2006/08/26(土) 03:37:56 ID:xnHGRGx3]
>>266
描画ってのが何やってんだかわかんね。
それがわからんからフィールドとかマップチップとかキャラチップとか
どれが何なのかわかんね。

268 名前:266 mailto:sage [2006/08/26(土) 04:08:09 ID:tKmIInJP]
>>267
レーザーラモンさんありがとうございますw

描画は全体的な速さというかBitBltの速さです。
最終的な描画は全てBitBltを介してなので。
フィールドは、ウィンドウに表示されているマップ全体の事です。
遅いなと感じるのは、マップをスクロールさせる時です。



269 名前:名前は開発中のものです。 mailto:sage [2006/08/26(土) 04:11:13 ID:MLjkH/sO]
早さを気にするのなら他の描画エンジンを使った方がいい気が。

270 名前:名前は開発中のものです。 mailto:sage [2006/08/26(土) 04:35:21 ID:xnHGRGx3]
>>268
だいたいわかった。けど、やっぱりソースがないと明確なアドバイスはしづらいね。
「こんな方法があるよ」って言っても「それはもうやってる」って言われる可能性が高い。

あと、レーザーラモンじゃなくてレイザーラモンね。

271 名前:266 mailto:sage [2006/08/26(土) 06:11:03 ID:tKmIInJP]
もしかしたら、描画が遅いのではなく、
ウィンドウメッセージが連続で来るスピードが遅いのかもしれません。

スクロールは極端に遅くなりますが、
普通の描画はそんなに遅くなった気がしないので、
キーを押し続けたときのWM_KEYDOWNが遅くなったのかもしれません。

こちらの方について、いろいろ実験してみます。

>>269
GDIとかですかね。何かで結局はBitBltが速い
みたいなのを聞いたので、こればっか使っているんですけど。

>>270
レイザーラモン・・そうでした。
レーザーラモンでもビリビリフォーとかネタはできそうだけど。

試した方法です。
・登録ビットマップ量を少なくする
 それを言ったらおしまいだが最終的にはこれでしょうか
>>266の使うときにロードするやり方
 ロードが遅すぎる
 24ビットマップならそれなりの速度になるが
 作品の容量が大きくなるし、リソースには使えない
・マップに入ったときに、使用する分のみロードする
 なかなかいい方法 使用量が多いときはごめんなさいで
・メモリビットマップの画質をPCと同じではなく、PCより下げる
 極端に遅くなる
 PCの画質とメモリビットマップの画質を
 合わせるのに時間がかかるらしい

272 名前:名前は開発中のものです。 mailto:sage [2006/08/26(土) 07:20:57 ID:jU4tm91q]
区切りの良いスパンでメモリに確保

273 名前:266 mailto:sage [2006/08/26(土) 08:04:08 ID:tKmIInJP]
>>272
なるほど、そこは考えていませんでした。

良さそうな方法がいろいろ見つかったので、
それらを実験してみることにします。
お答えいただいたみなさま、ありがとうございました。

274 名前:名前は開発中のものです。 mailto:sage [2006/09/13(水) 23:08:11 ID:3PoFJJDV]
266さんじゃないんですが、
それを解決するのに「ファイルをオープンしっ放し」という方法を取ったのですが、
これって安全なんでしょうか?

275 名前:名前は開発中のものです。 mailto:sage [2006/09/14(木) 00:49:46 ID:MoDAUHsA]
ファイルハンドルを開放せずに落ちたらどうなるかの

276 名前:名前は開発中のものです。 mailto:sage [2006/09/14(木) 01:47:04 ID:rwvsmMJW]
あったかクノール♪
あったかクノール♪

277 名前:名前は開発中のものです。 [2006/09/14(木) 10:50:53 ID:gNg1nIFw]
>>266 に当てはまらない可能性のほうが高いけど、
俺は以前、クラスをちゃんとdeleteしてなかったせいで重くなってた。

278 名前:名前は開発中のものです。 mailto:sage [2006/09/14(木) 13:39:03 ID:YoSST93w]
>>275
1.おちないようにする(大命題)
2.デストラクタを使ってクリーンアップが完全にできるように
  ファクトリクラスなどを作る。

DirectXの場合など開放の順番が必要になるので
開放の優先順位通りにデストラクタで開放できるようにしておけば
OS的にはほとんど問題ない。




279 名前:名前は開発中のものです。 [2006/09/14(木) 20:04:48 ID:UU058loN]
274ですけど、
落ちるっていうのは、そのアプリケーションが落ちるって事ですよね?
OSが落ちるって事では無いですよね?

275さんによると、OSによる自動ファイル開放は期待できない、ということですね?
でも、278さんによるとデストラクタは呼ばれる可能性があるみたいですね。

もし、強制終了でもデストラクタが呼ばれるなら
ファイル管理クラスのデストラクタで、ファイル開放をすれば解決しそうですが…。

280 名前:名前は開発中のものです。 mailto:sage [2006/09/15(金) 22:50:37 ID:LV6+FZpS]
本日windowsプログラムに手をつけた若造です。
最初にメッセージボックスを表示する文を打ち込んでみましたが、早速つまずきました。
打ち込んだ文は、
#include<windows.h>

int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevIntance,
LPSTR lpCmdLine,
int nCmdShow
){
int MessageBox(NULL,"test","test",MB_OK);
return 0;
}
これだけです。
エラー内容は、messagebox関数の行で「初期化子の数が多すぎます。」とでました。
いろいろ考えてみたけどさっぱり分からないんで、誰か教えてください。

281 名前:名前は開発中のものです。 mailto:sage [2006/09/15(金) 22:54:26 ID:Q4a1m6UH]
int MessageBox(NULL,"test","test",MB_OK);
↑このintは何よ?

282 名前:名前は開発中のものです。 mailto:sage [2006/09/15(金) 22:56:34 ID:B+YyIKNU]
>>280
Cの基礎からやり直せ。

283 名前:名前は開発中のものです。 mailto:sage [2006/09/15(金) 22:59:05 ID:LV6+FZpS]
int抜いたら出来ました、、
Cの基礎からやり直してきます

284 名前:名前は開発中のものです。 mailto:sage [2006/09/16(土) 00:56:51 ID:AkzEWiy4]
>>280
どっからコピーしてきたか知らないけど、一字一句でも間違えたらダメだよ

285 名前:名前は開発中のものです。: [2006/09/18(月) 11:20:58 ID:Sv37SaL7]
windows APIで、画像をひとまとめにしたdatファイルから
LoadImage()等で表示するにはどうすればいいですか?

または、HSPのmemfile命令と同等の関数があれば教えてください。
開発コンパイラ:BCC32

286 名前:名前は開発中のものです。 mailto:sage [2006/09/18(月) 12:27:42 ID:ojXe2P0e]
リソースを読み込むAPIなので用途が違う。
適切なAPIを使え。

287 名前:名前は開発中のものです。 mailto:sage [2006/09/18(月) 17:15:52 ID:T/AO14da]
>>285
そのデータの形式にもよるが、
DIBの形で読み込めるなら、CreateDIBitmapとかで出来ると思う。

288 名前:名前は開発中のものです。 mailto:sage [2006/09/22(金) 05:20:19 ID:UxeWHvRU]
TextureならFromFileInMemoryとか



289 名前:名前は開発中のものです。 [2006/10/05(木) 08:54:14 ID:UCkPjisv]
うむ

290 名前:名前は開発中のものです。 [2006/10/06(金) 23:22:42 ID:nNc3THyN]
すいません、困っているので、教えてください。

今、スマートボールを作っているのですが
方向ごとの衝突反応が上手くできなくて困っています。

ブロックの左に玉がぶつかったら
右の衝突反応が優先されてしまったりしてしまっています。

ブロックの左に当たったら
左の衝突反応。
ブロックの上に当たったら
上の衝突反応。
といったようにきちんとした反応が返ってくるようにしたいです。

たぶん衝突判定あたりが問題だと思うのですが
どうにも直すことができません。
誰か教えてください。






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

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

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