[過去ログ]
Delphiゲームプログラミング相談室 (976レス)
Delphiゲームプログラミング相談室 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
48: 名前は開発中のものです。 [] 02/01/11 03:34 ID:4gfbUP+R かなり良さげなページハケーン http://www.suzuka-ct.ac.jp/studentlife/club/com/members/okumura/ http://echo.5ch.net/test/read.cgi/gamedev/1006249204/48
49: 名前は開発中のものです。 [sage] 02/01/11 12:46 ID:??? >>41 C言語の腐ったような、おままごと見たいな言語よりは、 まともな言語使っておいた方が自分のためにもいいぜ。 けっこうまともなデバッガも付いてるしさ。 別に乗り換え先の言語はDelphiじゃなくてもいいけど。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/49
50: 名前は開発中のものです。 [] 02/01/15 22:00 ID:no/G6LIu ゲームを作ってみようと思って最近Delphi入手してプログラムの勉強を始め、 とりあえず画面にスプライトをたくさん表示してみたりしてるとこなんですが どうにも画面のちらつきが気になってしまう。 自分の持ってる知識では 1.裏バッファに描画。 2.V-ブランクを待つ。 3.表バッファと裏バッファの入れ替え(ん?考えてみたらフルスクリーンじゃなきゃダメなのかな?だと裏→表バッファへコピーかな) って感じでやれば良いと思うんですが、 V-ブランクのタイミングを調べる関数がどうしても見つかりません。 そもそもDelphiにはそんな関数は存在しないんでしょうか? よく知らないんだがWIN32APIってのを使わないといけないのだろうか。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/50
51: 名前は開発中のものです。 [] 02/01/15 22:08 ID:aT6JIdrh >>50 http://home4.highway.ne.jp/ora_soft/main/ora_prog.htm ここのサンプル見てみた? http://echo.5ch.net/test/read.cgi/gamedev/1006249204/51
52: 50 [] 02/01/15 23:50 ID:Ix5dcxBu >>51 え〜と、そのサンプルは見てみましたが、 Vブランクのチェックとか裏バッファ使うとかやってませんし,残念ながら画面もちらつきまくってます。 ちょっと話がずれますが サンプルでBitbltって関数を使ってますが、これはWin32APIの関数なのかな? 自作のコードではCanvas.Transparent:=TrueにしてCanvas.Draw()でスプライトを表示してました。 多分、BitBltを使うほうが速いのか? これから処理メーターでも作って比較してみます。 あぁ、でも処理メーター作るのには時間を計る関数を調べなきゃならないなぁ。 Delphiのヘルプって使いずらくてしんどいです。 Delphi6Personalのダウンロード版をってるんですがパッケージ版についてる紙のマニュアルは見やすいんですかね? 見やすいのなら買ってみようと思います。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/52
53: 名前は開発中のものです。 [sage] 02/01/15 23:57 ID:??? バックバッファとしてTImageを用意してそこに描画、そこから画面全体(もしくは更新部分のみ) を表にBitBlt。 それで描画が遅くて耐えられないようだったら他の方法を考えるのでいいかと。 BitBltはWin32APIです。 パッケージ版はどうかな。買うほどではないと聞きますが。 ヘルプは慣れです^^; http://echo.5ch.net/test/read.cgi/gamedev/1006249204/53
54: 名前は開発中のものです。 [sage] 02/01/16 00:04 ID:??? http://www.osk.3web.ne.jp/~bwsoft/rpgdiary.html#idx02 ここにもあるように、VSYNC待ちはいろいろと面倒です。。 (ちなみにVSYNCを待って転送するAPIはDirectXのものしか知りません。 通常のWin32 GDIにあるんでしょうかね?) その前に別の方法で高速化するのがいいかと。 すごいシビアならばDirectDrawつかわにゃなりませんし。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/54
55: 50 [sage] 02/01/16 01:30 ID:??? >>53 パッケージ版はいまいちですか。その分のお金をDelphiなりWin32Apiの解説本に使ったほうが良さそうですね。 >>54 紹介のページ見てみました。そうか、PCだとコンシューマーと違って環境ごとにリフレッシュレートが違うって事が頭から抜けてました。 大昔、ゲームメーカーにいた時にプログラマーさんから教えてもらった知識が頭にあって、 Vsyncに同期を取って描画、ウェイト処理をするのが当たり前だと考えてました。 んー。結局、ちらつきのまったく無い画面、スムーズなスクロール等を実現したければ フルスクリーンにして、リフレッシュレートもこちらから指定しないと難しいみたいですね。 で、そのためにはDirectDrawを覚える、と。 今作ってるゲームは練習用ですし、ちらつきは我慢してとりあえず完成させてみます。 DirectX以前に勉強しなきゃならないことは、いっぱいありますし。 レスくださった方々、どうもありがとうございます。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/55
56: 51 [sage] 02/01/16 01:51 ID:??? 実はレスしているのは全部私だったりして。 51のリンク先のサンプルをダブルバッファリングするように書き変えてみましたが、 高速化の工夫を何もしていないとはいえ、かなり描画が引っかかります。 全面をBltするのはやめたほうがいいかも。面倒ですが。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/56
57: 51 [sage] 02/01/16 01:54 ID:??? >56で描画が引っかかると書いたのは間違いだった模様。(裏で重いアプリが動いていたせい) あの程度の描画量だと引っかかりもなくスムーズに描けました。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/57
58: 名前は開発中のものです。 [] 02/01/21 01:02 ID:3QJf94A+ 情報が少なすぎてなにやっていいのかさっぱりです。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/58
59: 名前は開発中のものです。 [sage] 02/01/21 07:49 ID:??? プログラムをするのがはじめてなら、最初は人のプログラムを真似ることから始めると良いよ。 最初は訳わかんなくても、やってるうちに覚えてきます。以下お薦めのページ。 プログラムをしたことが無いなら、ここ。 ゼロから始めるDelphi講座 ttp://www.text2music.com/mine/delphi/kouza/index.htm 次に、このへん flow of water のプログラム講座 ttp://isweb21.infoseek.co.jp/computer/wblue/prog/chair_top.htm http://echo.5ch.net/test/read.cgi/gamedev/1006249204/59
60: Delフサギコ [sage] 02/01/21 09:57 ID:??? ,,,,,,,,,,,,,∧,,∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 〜′,,,,,,,ミ,,゚Д゚彡 < ひまわりって、Delphiの人つくったん? UU""" U U \_______________ http://echo.5ch.net/test/read.cgi/gamedev/1006249204/60
61: 名前は開発中のものです。 [] 02/01/21 12:21 ID:cvZI6toD delphiで、効果音とかの短いwavを、いったんメモリに読み込んで鳴らそうて思ってるんですが なかなか上手くいかないんで教えろ。 今のところ sndPlaySound(Pchar('koukaon.wav'),SND_ASYNC) ってなってるところ、最後のパラメーターをSND_MEMORYって書き換えたいんだけど そうするとファイル名のところをポインタ型にしなくちゃいけないらしんだよ。windows的に。 で、filestreamとか使ってwavfile読み込んだ変数のポインタ渡そうとしても 型が違いますとかコンパイラの人に怒られちゃうんですが、 どうしたら良いんでしょうか? フサギコさん教えて! http://echo.5ch.net/test/read.cgi/gamedev/1006249204/61
62: Delフサギコ [sage] 02/01/21 13:04 ID:??? 氏らん事は教えられません。 よくわかなんだけど PFileStreamとか定義するんじゃないかしら . ̄ ̄∨ ̄ ̄ ̄ . ∧,,∧ ミ ゚Д゚ ミ たんにwavだけなら (ミ ミ) ム技板で質問してもいいかもね。 〜ミ ミ ∪''∪ http://echo.5ch.net/test/read.cgi/gamedev/1006249204/62
63: 名前は開発中のものです。 [sage] 02/01/21 15:52 ID:??? >>61 function load(fn: string): string; var fs: TFileStream; ss: TStringStream; begin result := ''; fs := TFileStream.Create(fn, fmOpenRead); try ss := TStringStream.Create(''); try ss.CopyFrom(fs, fs.Size); result := ss.DataString; finally ss.Free; end; finally fs.Free; end; end; こんなコードを使って s: string; s := load('gikohahaha.wav'); sndPlaySound( pchar(s), SND_MEMORY or SND_ASYNC ); とか。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/63
64: 名前は開発中のものです。 [sage] 02/01/21 18:55 ID:??? stringヲツカウトハ━━━━━━(゚∀゚)━━━━━━ !! http://echo.5ch.net/test/read.cgi/gamedev/1006249204/64
65: 61 [sage] 02/01/21 23:34 ID:??? >>Delフサギコ ム板はなんだか敷居が高く感じられるので(;´Д`)コワヒ。。。 >>63様 無事動きました。(゚д゚)ウマー えーと、いったんTStringStreamに読み込んで。。。 (;´Д`)理解するまでもう少し時間をください。 これから研究してみます。 ありがとうございました。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/65
66: 名前は開発中のものです。 [] 02/01/22 01:16 ID:97pziEaT MemoryStreamに読み込んで、Pointerプロパティを使うとかどうですかね http://echo.5ch.net/test/read.cgi/gamedev/1006249204/66
67: 61 [sage] 02/01/22 03:00 ID:??? いや、問題は windowsはポインタを要求してるのに delphiのコンパイラの型チェックが string型しか通しませんぞゴルァ と言ってるんで、どうしたものかと。。。 あれ、ひょっとして単に型キャストすれば良いのか? pointerをPCharにキャストってできるもんなの? http://echo.5ch.net/test/read.cgi/gamedev/1006249204/67
68: 名前は開発中のものです。 [] 02/01/22 03:19 ID:97pziEaT できます http://echo.5ch.net/test/read.cgi/gamedev/1006249204/68
69: 名前は開発中のものです。 [] 02/01/22 03:28 ID:97pziEaT あ、Memoryプロパティの間違いでした こんな感じで、キャストはいりません ms:=TMemoryStream.Create; ms.LoadFromFile('ding.wav'); //鳴らしたいときに sndPlaySound(ms.Memory, SND_MEMORY Or SND_ASYNC); //再生が終わったら ms.Free; http://echo.5ch.net/test/read.cgi/gamedev/1006249204/69
70: 61 [] 02/01/22 03:31 ID:ygXI2h8+ ━━━━━━(゚д゚)━━━━━━ !! お騒がせしました。忘れてください。 //でも処理落ちの原因は別のことらしいことがわかっただけでも収穫。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/70
71: 61 [] 02/01/22 03:37 ID:ygXI2h8+ ていうか普通にポインタ渡せるじゃん。今やってみたら。 【謎】何で前やったときできないと思ったんだろう。【馬鹿】 というわけで逝ってきます。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/71
72: 63 [sage] 02/01/22 10:14 ID:??? stringに入れるのはキャストの問題っつーよりも 後始末忘れていいっていうメリットのためだったりする。 すでに動いてるコードがあったので貼っただけで、 キャストは普通にできるという指摘はするの忘れた(笑) あと、ファイルから文字列への読み込みはこんな回りくどいことしなくても TFileStreamからサイズ得て、読込先文字列にSetLengthして Read(文字列[1], サイズ)とかやってしまうほうが手っ取り早いね。 なにぶん昔書いたコードなんで。 http://echo.5ch.net/test/read.cgi/gamedev/1006249204/72
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 904 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s