[過去ログ] Delphiゲームプログラミング相談室 (976レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
51(3): 名前は開発中のものです。 [] 02/01/15 22:08 ID:aT6JIdrh(1) AAS
>>5050(3): 名前は開発中のものです。 [] 02/01/15 22:00 ID:no/G6LIu(1) AAS
ゲームを作ってみようと思って最近Delphi入手してプログラムの勉強を始め、
とりあえず画面にスプライトをたくさん表示してみたりしてるとこなんですが
どうにも画面のちらつきが気になってしまう。
自分の持ってる知識では
1.裏バッファに描画。
2.V-ブランクを待つ。
3.表バッファと裏バッファの入れ替え(ん?考えてみたらフルスクリーンじゃなきゃダメなのかな?だと裏→表バッファへコピーかな)
って感じでやれば良いと思うんですが、
V-ブランクのタイミングを調べる関数がどうしても見つかりません。
そもそもDelphiにはそんな関数は存在しないんでしょうか?
よく知らないんだがWIN32APIってのを使わないといけないのだろうか。
外部リンク[htm]:home4.highway.ne.jp
ここのサンプル見てみた?
52: 50 [] 02/01/15 23:50 ID:Ix5dcxBu(1) AAS
>>51
え〜と、そのサンプルは見てみましたが、
Vブランクのチェックとか裏バッファ使うとかやってませんし,残念ながら画面もちらつきまくってます。
ちょっと話がずれますが
サンプルでBitbltって関数を使ってますが、これはWin32APIの関数なのかな?
自作のコードではCanvas.Transparent:=TrueにしてCanvas.Draw()でスプライトを表示してました。
多分、BitBltを使うほうが速いのか? これから処理メーターでも作って比較してみます。
あぁ、でも処理メーター作るのには時間を計る関数を調べなきゃならないなぁ。
Delphiのヘルプって使いずらくてしんどいです。
Delphi6Personalのダウンロード版をってるんですがパッケージ版についてる紙のマニュアルは見やすいんですかね?
見やすいのなら買ってみようと思います。
56(1): 51 [sage] 02/01/16 01:51 ID:??? AAS
実はレスしているのは全部私だったりして。
51のリンク先のサンプルをダブルバッファリングするように書き変えてみましたが、
高速化の工夫を何もしていないとはいえ、かなり描画が引っかかります。
全面をBltするのはやめたほうがいいかも。面倒ですが。
57: 51 [sage] 02/01/16 01:54 ID:??? AAS
>56で描画が引っかかると書いたのは間違いだった模様。(裏で重いアプリが動いていたせい)
あの程度の描画量だと引っかかりもなくスムーズに描けました。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.039s