[過去ログ] Delphiゲームプログラミング相談室 (976レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
904
(1): 名前は開発中のものです。 [] 2006/05/27(土) 03:47:07 ID:DbCpqm4N(2/5) AAS
で、手段はいくつかある。

まず、用語解説。一般的じゃないかもしれんが、勘弁してくれ。

バックバッファ: ちらつかないようにするための裏画面
表示バッファ: 画面に見える

その1、TImageを利用する方法

・表示バッファ用のTImage
 VisibleをTrueにしとく
・バックバッファ用のTImage
 VisibleをFalseにしとく
・キャラクタ画像用のTImage複数
 VisibleをFalse、TransparentをTrue、
 あらかじめ適当な画像を読み込んでおく

あとは、
・バックバッファを適当に消去
 Canvas.FillRectあたりを使う
・キャラ画像をバックバッファにコピー
 TImage.Canvas.Drawを使う
・バックバッファを表示バッファにコピー
 上と同じ

これで、キャラ画像の背景を透過して、
ちらつかないで画像が表示できる(はず)
速度はちと遅い(でも数年前の話)けど、慣れたら簡単
911
(1): 名前は開発中のものです。 [sage] 2006/05/28(日) 03:30:14 ID:T/x78PMQ(1) AAS
>903-907
補足しておく。
TForm(TWinControl)のDoubleBufferedプロパティをTrueにすれば同じ効果が得られる。
後、画面がちらつくのは一度画面クリアしてから描画を行っているからなので、ダブルバッファを使わなくても画面クリアを行わないようにすればちらつかない。
del6で確認した所procedure Paint;時に画面クリアしているので、overrideして内部でinheritedを呼ばないようにすればOK。
ゲーム用ならTFormのprocedure Paintをoverrideして直接Canvasに描画するやり方が楽かも。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.045s