[過去ログ]
Delphiゲームプログラミング相談室 (976レス)
Delphiゲームプログラミング相談室 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
557: 名前は開発中のものです。 [sage] 04/07/25 15:35 ID:y86X+J8o あ、言い忘れた。 当たり前だけど毎描画Writeするのも重いはず。 別に文字列持っておいて変化したらWriteするようにするのが普通だと思う。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/557
558: 551 [sage] 04/07/25 16:26 ID:TtxXwPsH >>556-557 おあーぁぁー、Writeってそういうことだったんですね…。 メソッド名そのままの効果…何故気付かないのか私は_| ̄|○ これなら期待通りの動作をしてくれます! > 別に文字列持っておいて変化したらWriteするようにする CPU使用率が(一部)断然下がりました。 おかげさまで、描画系の作成に苦労しなくて済みそうです。 >>552,554(=556,557?)さんをはじめ、スレ住人皆さん、 ご教授いただき有難うございました<(_ _)> QDmanual/ML/sampleの山|λ...... http://echo.5ch.net/test/read.cgi/gamedev/1006249204/558
559: 名前は開発中のものです。 [sage] 04/08/04 16:08 ID:ZmvuRdM9 初心者丸出しの質問ですいませんが ゲームのハイスコア(1位から10位ほど)を保存したいんですけど 何を使えばいいんでしょうか http://echo.5ch.net/test/read.cgi/gamedev/1006249204/559
560: 名前は開発中のものです。 [sage] 04/08/04 17:22 ID:WqrQethy tstringlist http://echo.5ch.net/test/read.cgi/gamedev/1006249204/560
561: 名前は開発中のものです。 [sage] 04/08/04 23:29 ID:5TXw5Lpo Quadruple Dを使ってゲーム作っているのですが、 画像の一部だけを描画するにはこの方法でいいのでしょうか? Scene.PushSprite( Vector2D(0,0), [ SXVertexSP(50,50, $FFFFFFFF, 0.0,0.0), SXVertexSP(100,50, $FFFFFFFF, 50/Texture.Width, 0.0), SXVertexSP(50,100, $FFFFFFFF, 0.0, 50/Texture.Height), SXVertexSP(100,100, $FFFFFFFF, 50/Texture.Width, 50/Texture.Height) ], Texture, sxbAlpha, False ); もっとスマートな方法ってありますか? http://echo.5ch.net/test/read.cgi/gamedev/1006249204/561
562: 名前は開発中のものです。 [sage] 04/08/12 22:35 ID:lCkZPmie >>561 それでよし >>559 漏れもTStringListに一票 桁揃えておけばソートできるしな 暇ならハイスコアコンポーネントでも作って公開してくれ >>550 変える順番が大事 変える個所は合ってる >>543 ほかの個所は使ってる >>536 前回のキー入力を保存 状態遷移でググると基本的な考え方がわかる やね本2の解説がわかりやすい >>528 QDの良い所はVCL連携と3Dオブジェクト(しかもモーション付き)の扱いが楽 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/562
563: 名前は開発中のものです。 [sage] 04/08/12 23:43 ID:Ev6Dy7m9 >>562 レスありがとうございます。 でもこれだと解像度の違いのせいか、描画したい元画像の範囲選択が上手くいかないんです。 解像度を800×600にして、元の画像の大きさが50×100だとすると、下のソースでは 画像の Rect(0, 20, 50, 50) の部分が描画されると思うのですが、ずれてしまいます。 Scene.PushSprite( Vector2D(0,0), [ SXVertexSP(0, 0, $FFFFFFFF, 0.0, 0.2), SXVertexSP(0, 50, $FFFFFFFF, 1.0, 0.2), SXVertexSP(30, 0, $FFFFFFFF, 0.0, 0.5), SXVertexSP(50, 30, $FFFFFFFF, 1.0, 0.5) ], Texture, sxbAlpha, False ); ゲームでたくさんの画像を使うときには皆さんどうしているのですか? 一つ一つテクスチャを作るか、それとも一つのファイルに画像を収めて 一部だけを描画するようにしているのでしょうか。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/563
564: 名前は開発中のものです。 [sage] 04/08/13 01:22 ID:y25szJtr そりゃずれると思われ http://echo.5ch.net/test/read.cgi/gamedev/1006249204/564
565: 名前は開発中のものです。 [sage] 04/08/14 10:53 ID:ennbBjlN 微妙に間違えてますた。 でも、これでもずれますが、どのようにパラメータを指定すればいいんでしょう。 Scene.PushSprite( Vector2D(0,0), [ SXVertexSP(0, 0, $FFFFFFFF, 0.0, 0.2), SXVertexSP(50, 0, $FFFFFFFF, 1.0, 0.2), SXVertexSP(0, 30, $FFFFFFFF, 0.0, 0.5), SXVertexSP(50, 30, $FFFFFFFF, 1.0, 0.5) ], Texture, sxbAlpha, False ); http://echo.5ch.net/test/read.cgi/gamedev/1006249204/565
566: 名前は開発中のものです。 [] 04/08/15 02:11 ID:PuiE5qNp >>565 画像のサイズが2のn乗じゃないから。 テクスチャのサイズは読み込んだ画像と同じとは限りません。 TDGTextureのプロパティTotalWidthなどで確認できます。 Widthとの値の差を見比べるとよいでしょう。 読み込んだ画像が2のn乗に満たない場合は自動的にテクスチャのサイズが拡張されます。 そのサイズは読み込んだ画像以上でなおかつ最小の2のn乗になります。 50x100の場合は64x128になります。 たとえば50x100の画像を読み込んで作ったテクスチャの左上から32x32を表示したい場合は テクスチャが64x128に拡張されているので以下のようにしてUVを求められます。 U=1/64*32 V=1/128*32 ここからは余談ですがグラフィックボードによってはテクスチャに色々な制限があります。 ・256x256以下のサイズしか扱えない ・正方形でないとならない ・2のn乗サイズでないといけない ・32bit色が使えない 記憶を頼りに書いてるので間違ってたらツッコミおながいします。 ちなみにVoodooシリーズがこれらの制限に全てひっかかるカードです。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/566
567: 名前は開発中のものです。 [sage] 04/08/15 04:22 ID:PuiE5qNp >>565 とりあえずサンプル http://gamdev.org/up/img/1047.lzh http://echo.5ch.net/test/read.cgi/gamedev/1006249204/567
568: 名前は開発中のものです。 [sage] 04/08/15 09:35 ID:moZoUrx5 丁寧な解説ありがd >>567 起動してくれません。デバッグログには、 「Direct3DDeviceオブジェクトの生成に失敗しました(Error Code D3DERR_OUTOFVIDEOMEMORY)」 とあります。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/568
569: 名前は開発中のものです。 [sage] 04/08/15 13:01 ID:PuiE5qNp >>568 たぶんビデオカードのメモリが不足してるだけだからテクスチャのサイズが小さくなれば解決すると思う サンプルでは512キロバイト使ってるからグラフィックボードを買い足していない環境じゃつらいかも 思いついた対策を書いておきます これでもダメならグラフィックチップの種類やVRAM容量、エラーログの全文がわかればもう少し詳しく調べられるかも ・画像編集ソフト(ペイントなど)で画像のサイズ(今は288x256)をもっと小さくする(試しに32x32ぐらいに) ・画像編集ソフト(ペイントなど)で画像の色数を減らす(16ビット色に) ・TDGCarad(女の子のアイコンのコンポーネント)のプロパティUseSoftwareVertexProcessingをTrueにする http://echo.5ch.net/test/read.cgi/gamedev/1006249204/569
570: 名前は開発中のものです。 [sage] 04/08/15 18:34 ID:moZoUrx5 >>569 全部試してみたけどダメでした。ファイルサイズは630バイトくらい。 ビデオRAM : 4MB グラフィックアクセラレータ : ATI社製RAGE(TM) Mobility-CL(AGP) ノートパソコンなので画像系には弱いのですかね? Lavie Lシリーズです。 前略(特に問題ナシ) #00013 | ■■■画面モードを初期化します■■■ #00014 | Driver : ati2drab.dll #00015 | Description : ATI RAGE MOBILITY AGP #00016 | VendorID : 00001002, DeviceID : 00004C4D, SubSysID : 81581033, Revision : 00000064 #00017 | ウィンドウモード 640x473で初期化します #00018 | ハードウェアアクセラレーションを利用します #00019 | 希望のデプスステンシルサーフェスのフォーマットが見つかりませんでした #00020 | デプスステンシルサーフェスのフォーマット...UNKNOWN #00021 | ソフトウェアT&Lを利用します #00022 | Direct3DDeviceオブジェクトの生成を行います #00023 | Direct3DDeviceオブジェクトの生成に失敗しました(Error Code = D3DERR_OUTOFVIDEOMEMORY) #00024 | #00025 | ■■■お別れの時がやってまいりました■■■ 以下略(特に問題ナシ) http://echo.5ch.net/test/read.cgi/gamedev/1006249204/570
571: 名前は開発中のものです。 [sage] 04/08/15 21:05 ID:PuiE5qNp >>570 RAGEのグラフィックボードを使って試してみました。 同じエラーがでるし原因究明は楽かなと思いました ……がその前にちゃんと計算すればよかった orz バックバッファ:640x480x3(=900kbyte) フロントバッファ:640x480x3(=900kbyte) windowsの解像度:1024x768x3(=2.25Mbyte) テクスチャ:512x256x3=(384kbyte) 合計:4.3828125Mbyte テクスチャのサイズを変えた所で足りません。 Form1のClientWidthとClientHeightを320x240にすると バッファ2つあわせても450kbyteになるので合計で4Mbyte以下に抑えられます。 とりあえずこっちでは動きました。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/571
572: 名前は開発中のものです。 [sage] 04/08/16 09:15 ID:WpFw0zco > ビデオRAM : 4MB さすがに、これはキツイと思われ http://echo.5ch.net/test/read.cgi/gamedev/1006249204/572
573: 名前は開発中のものです。 [sage] 04/08/16 13:37 ID:tdeixu8e Formを小さくしてみてもダメでした。 BIOS設定でもVRAM増やせないみたいだし。 _/ ̄|○モウダメポ・・・ http://echo.5ch.net/test/read.cgi/gamedev/1006249204/573
574: 名前は開発中のものです。 [sage] 04/08/16 14:54 ID:OSpqsJ8k >>573 動かないサンプルを動かそうとするよりすでに動いているものがあれば それを改造していったほうが早いんじゃないかと思います (質問ではテクスチャがズレてしまったとあるのでそのプログラムのUV値をいじるだけでいいはず) もともとの問題はテクスチャがずれる理由の解明で それは解決してるはずです なぜ動かないかは気になるのでもし改造していって動かなくなったり 動くものが完成したら教えてください http://echo.5ch.net/test/read.cgi/gamedev/1006249204/574
575: 名前は開発中のものです。 [sage] 04/08/16 19:04 ID:tdeixu8e そうですね。 今動いているもので全く問題ないので、それでやっていこうと思います。 丁寧にありがとうございました。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/575
576: 名前は開発中のものです。 [sage] 04/08/17 05:24 ID:+sFdTfOm http://deliverer.s5.xrea.com/xx/xxx/000061.html //u,v : single; u := texture.u; v := texture.v; Scene.PushSprite( Vector2D(0,0), [ SXVertexSP(0, 0, $FFFFFFFF, 0.0 * u, 0.2 * v), SXVertexSP(0, 50, $FFFFFFFF, 1.0 * u, 0.2 * v), SXVertexSP(30, 0, $FFFFFFFF, 0.0 * u, 0.5 * v), SXVertexSP(50, 30, $FFFFFFFF, 1.0 * u, 0.5 * v) ], Texture, sxbAlpha, False ); とするのが正しい。 texture.uとtexture.vは、1.0とは限らない。 又、元の画像の一辺の長さは4の倍数にするべき。 トラブルを避ける意味では、辺が2のべき乗の長さの正方形の画像がいいかもしれない。 また、テクスチャに関しては、複数作る場合も一つしか作らない場合もどちらもあり。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/576
577: 名前は開発中のものです。 [sage] 04/08/17 09:30 ID:kgt5GdeF >>576 参考になりました。ありがとうございます。 リンク先も見てみましたが、変なレスって・・・。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/577
578: 名前は開発中のものです。 [] 04/08/21 04:12 ID:rcQjHDLj QD3.00が入っている環境にQD3.01をインストールするにはどうすればいいですか? http://echo.5ch.net/test/read.cgi/gamedev/1006249204/578
579: 名前は開発中のものです。 [sage] 04/08/21 13:18 ID:53W2Uy5k >>578 今までインストールされていた3.00に、3.01のファイルを上書きすればOKです http://echo.5ch.net/test/read.cgi/gamedev/1006249204/579
580: 名前は開発中のものです。 [sage] 04/08/23 17:24 ID:N4BM/CKc >>577 先日の記事で更に修正されているようです。 もう解決してるとは思いますが。 QD3.01のDGCarad9.pas[1839]の、 SetWindowPos()は必要なんでしょうか? これがあると、フォーム作成途中に 強制表示される等して、厄介で…。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/580
581: 名前は開発中のものです。 [sage] 04/08/24 17:36 ID:fDj+wn71 QD3.01a入れたら変になっちゃった。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/581
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 395 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.021s