[過去ログ] Delphiゲームプログラミング相談室 (976レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
292(1): 名前は開発中のものです。 [sage] 03/05/24 02:30 ID:LSDvOFkW(1) AAS
291は何なの!? 荒らしいらい?
299: 名前は開発中のものです。 [sage] 03/05/26 17:01 ID:rwyNVs4A(1) AAS
>>285285(2): 名前は開発中のものです。 [sage] 03/05/20 01:21 ID:mVYsvlCM(1/2) AAS
Bitbltを使ってアニメーションをさせてるんですが、開始すると
アニメーションは割と綺麗に動きますが、実行させてるFormが
非常に重たくなります。Formを移動させようとしようものなら、
かなりガクガクに動くように…(開発環境マシンはP42.53GHzです)
何方か対策をご教授願えれば幸いです。
// TimerのIntervalは500に設定してます。
procedure TForm1.Timer1Timer(Sender: TObject);
begin
image1.Picture.LoadFromFile('C:\001.bmp');
BitBlt(image2.Canvas.Handle,0,0,37,75,image1.Canvas.Handle,0,0,SRCCOPY);
image2.Repaint;
sleep (100);
image1.Picture.LoadFromFile('C:\002.bmp');
BitBlt(image2.Canvas.Handle,0,0,37,75,image1.Canvas.Handle,0,0,SRCCOPY);
image2.Repaint;
sleep (100);
.
.
.
image1.Picture.LoadFromFile('C:\006.bmp');
BitBlt(image2.Canvas.Handle,0,0,37,75,image1.Canvas.Handle,0,0,SRCCOPY);
image2.Repaint;
end;
もう直したかもしれないけれど、LoadFromFile は、描画ごとに毎回やるには
むちゃくちゃ遅いです。>>286286(2): 名前は開発中のものです。 [sage] 03/05/20 02:17 ID:zL9Q18du(1) AAS
>>285
sleep() でウェイトをかましているからでは。
WINのタスクを独り占めして文字通り眠ったようになりますから。
タイマーとカウンタを使うのはどうでしょう?
TForm1.FormCreate の所で cnt を 1 に設定しておいてから、
procedure TForm1.Timer1Timer(Sender: TObject);
begin
image1.Picture.LoadFromFile('C:\00' + IntToStr(cnt) + '.bmp');
BitBlt(image2.Canvas.Handle,0,0,37,75,image1.Canvas.Handle,0,0,SRCCOPY);
image2.Repaint;
Inc(cnt);
if cnt>6 then cnt:=1;
end;
というのは如何でしょう?
あと、 bmp ファイルは最初にまとめて ImageList へ読み込ませては?
のようにTImageかTImageListに、あらかじめ格納しておくに一票。
>>292
TAlphaBitmapっていうグラフィックエンジンの紹介かと
>>298298(1): 290 [sage] 03/05/25 17:41 ID:ll42N4KR(3/3) AAS
連続投稿すみません。
キャラ絵を見てみましたが、瞳の中や影にあたる部分に背景を透けさせる色
RGB(0,0,0) で塗られている部分があります。
この絵からマスクをつくると、目の部分が抜けてしまいますね。
普通はマスクの色は、使っていない色を使います。
でも、フルカラーとかハイカラーで書いていると面倒だよね。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.048s