[過去ログ] Delphiゲームプログラミング相談室 (976レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
286(2): 名前は開発中のものです。 [sage] 03/05/20 02:17 ID:zL9Q18du(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;  
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>66(1): 1 [sage] 01/11/22 12:16 ID:??? AAS
 begin 
  game := TGame.Create; 
  game.Execute; 
  game. 
 end;  
 then cnt:=1; 
 end; 
  
 というのは如何でしょう? 
 あと、 bmp ファイルは最初にまとめて ImageList へ読み込ませては? 
上下前次1-新書関写板覧索設栞歴
あと 690 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.019s