home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / Delphi.5 / Doc / Other / DX_DELPH.exe / L22.TXT < prev    next >
Encoding:
Text File  |  1998-12-05  |  3.8 KB  |  82 lines

  1. ╠≤δⁿ≥Φ∞Φ╦ΦΦ Φ Φπ≡√
  2. ╫α±≥ⁿ VII
  3.  
  4. φσεß⌡εΣΦ∞ε τα∩εδφΦ≥ⁿ ∩εδ  °Φ≡Φφ√ Φ ÷√±ε≥√ (dwWidth Φ dwHeiglit), α τα≥σ∞ ≤±≥αφε∩Φ≥ⁿ ⌠δαπΦ Γ dwFlags, ≈≥εß√ ±Ωατα≥ⁿ, ≈≥ε
  5. ²≥Φ ∩εδ  ΣσΘ±≥ΓΦ≥σδⁿφ√. ╙±≥αφεΓΦ≥σ ≥Φ∩ ∩εΓσ≡⌡φε±≥Φ Γ DDSCaps.dwCaps, Φ τα≥σ∞ Γ√ ß≤Σσ≥σ πε≥εΓ√ Γ√τΓα≥ⁿ DirectDraw.Cre-
  6. ateSurface.
  7.  
  8. ╟α≥σ∞ ≤±≥αφεΓΦ≥σ ÷Γσ≥φεΘ Ωδ■≈, ΩαΩ Γ√ ≤±≥αφαΓδΦΓαδΦ Γ ∩εΓσ≡⌡φε±≥Φ Image, ∩ε≥ε∞≤ ≈≥ε φσεß⌡εΣΦ∞ε ε≥εß≡ατΦ≥ⁿ ±≥α≥Φ±-
  9. ≥Φ≈σ±Ω≤■ Φφ⌠ε≡∞α÷Φ■ Γ ΓΦΣσ ≥σΩ±≥α ∩εΓσ≡⌡ ⌠εφα Φ ±∩≡αΘ≥εΓ.
  10.  
  11. ▀ ΣεßαΓΦδ StatsCanvas Φ Σ≡≤πΦσ εß·σΩ≥√ TDDCanvas, Φ∞σ■∙Φσ±  ≥α∞. ╤ετΣαΘ≥σ Φ ΦφΦ÷ΦαδΦτΦ≡≤Θ≥σ σπε Γ FormShow ≥αΩ,
  12. ≈≥εß√ ÷α∞ φσ ∩≡Φ⌡εΣΦδε±ⁿ Σσδα≥ⁿ ²≥ε Γ± ΩΦΘ ≡ατ ∩≡Φ φσεß⌡εΣΦ∞ε±≥Φ εßφεΓΦ≥ⁿ ∩εΓσ≡⌡φε±≥ⁿ Stats, ΩαΩ ∩εΩαταφε Γ δΦ±≥Φφπσ 32.38.
  13.  
  14. ╦Φ±≥Φφπ 32.38 ╤ετΣαφΦσ Φ ΦφΦ÷ΦαδΦτα÷Φ  ∩εΓσ≡⌡φε±≥Φ Stats.
  15.  
  16. StatsCanvas : = TDDCanvas . Create ( Stats ) ;
  17. with StatsCanvas do try
  18. Font.Name := 'Arial' ;
  19. Font. Size := 16 ;
  20. Font, Color := clWhite ;
  21. finally
  22.  
  23. Release ;
  24. end ;
  25.  
  26. ┬Φτ≤αδΦτα÷Φ  ±∩≡αΘ≥εΓ
  27.  
  28. ▀ ±Ωαταδ, ≈≥ε ∩≡Φ∞σφσφΦσ ±∩≡αΘ≥εΓ  Γδ σ≥±  ≡εΣεΓ√∞, ∩ε≥ε∞≤ ≈≥ε εφΦ φσ τφα■≥, ΩαΩ ±σß  ΓΦτ≤αδΦτΦ≡εΓα≥ⁿ, ≥αΩ ≈≥ε Φ⌡
  29. ∞εµφε Φ±∩εδⁿτεΓα≥ⁿ ± δ■ßεΘ ≥σ⌡φεδεπΦσΘ ε≥εß≡αµσφΦ , ΓΩδ■≈α  DirectDraw. ┬Φτ≤αδΦτα÷Φ  (rendering) ∩≡εΦτΓεΣΦ≥±  Γ ∞ε-
  30. ΣΦ⌠Φ÷Φ≡εΓαφφε∞ ∞σ≥εΣσ UpdateDisplay. ╬φα φα≈Φφασ≥±  ≥αΩ µσ, ΩαΩ Φ Γ ∩≡σΣ√Σ≤∙σ∞ ∩≡Φ∞σ≡σ, ∩σ≡σΣαΓα  ±φα≈αδα ⌠εφεΓεσ
  31. Φτεß≡αµσφΦσ. ═ε ≥σ∩σ≡ⁿ Γ∞σ±≥ε ±ετΣαφΦ  ∩≡ε±≥√⌡ αφΦ∞α÷Φεφφ√⌡ εß·σΩ≥εΓ Γ√ Σεδµφ√ φα≡Φ±εΓα≥ⁿ ±∩≡αΘ≥√, ΩαΩ ∩≡εΣσ∞εφ-
  32. ±≥≡Φ≡εΓαφε Γ δΦ±≥Φφπσ 32.39.
  33.  
  34. ╦Φ±≥Φφπ 32.39 ┬Φτ≤αδΦτα÷Φ  ±∩≡αΘ≥εΓ.
  35.  
  36. TicIcCount := GetTickCount ;
  37. TicIcsSinceLast := 0 ;
  38. if LastTickCount <> 0 then
  39.  
  40. TicIcsSincebast ;= TickCount - liastTickCount ;
  41. // ε∩≡σΣσδΦ≥ⁿ Γ≡σ∞ , ∩≡ε°σΣ°σσ ε≥ ∩ε±δσΣφσπε εßφεΓδσφΦ 
  42. if Tic^sSinceLast > MaxJump then TicksSinceLast := MaxJump ;
  43. for i := 0 to Sprites. Count - I do begin
  44. with TDDSprite( Sprites [ i ] ) do if Visible then begin
  45. ACurrentFrame := 0 ;
  46.  
  47. GetFrameNuinber( TicleCount, TicksSinceLast, ACurrentFrame ) ;
  48. if ACurrentFrame > 59 then ACurrentFrame := 59 ;
  49.  
  50. ARect := Bounds ( ( ACurrentFrame mod 10 ) * 64, ( ACurrentFrame div 10) * 64+ 480, 64, 64 ) ;
  51. repeat
  52.  
  53. until MakeltSot BackBuffer.BItFastI X, Y, Image, ARect, DDBLTFAST_SRCCOI.ORKEY ) ) ;
  54. end ;
  55. end ;
  56.  
  57. ╠φσ φσεß⌡εΣΦ∞ε ≤τφα≥ⁿ ≈Φ±δε ∞ΦδδΦ±σΩ≤φΣ, Ωε≥ε≡√σ Φ±≥σΩδΦ ± ∞ε∞σφ≥α ∩ε±δσΣφσπε εßφεΓδσφΦ  ±∩≡αΘ≥α. ╥αΩΦ∞ εß≡α-
  58. τε∞,   Γ√τ√Γα■ GetTickCount Φ ε≥φΦ∞α■ ≡στ≤δⁿ≥α≥ ε≥ LastTickCount, τφα≈σφΦσ Ωε≥ε≡επε Γτ ≥ε Γ ≥σΩ≤∙ΦΘ ∞ε∞σφ≥ Φ φσ Γ
  59. ∩σ≡Γ√Θ ≡ατ Γ ∩≡ε÷σ±±σ ÷ΦΩδα (≥επΣα LastTickCount ß√δε ß√ φ≤δσ∞). ▀ ≥αΩµσ επ≡αφΦ≈ΦΓα■ ≈Φ±δε ∞ΦδδΦ±σΩ≤φΣ φα ±δ≤≈αΘ,
  60. ΩεπΣα αΩ≥ΦΓφε±≥ⁿ ΩαΩεΘ-φΦß≤Σⁿ ΦφεΘ ±Φ±≥σ∞√ ∩≡σΣε≥Γ≡α≥Φ≥ εßφεΓδσφΦσ φα ßεδσσ ∩≡εΣεδµΦ≥σδⁿφεσ Γ≡σ∞ , ≈σ∞ εß√≈φε. ▌≥ε
  61. ΣεΓεδⁿφε εß√≈φε Γ Windows 95 Φ ∞εµσ≥ ß√≥ⁿ Γ√τΓαφε αΓ≥ε∞α≥Φ≈σ±ΩΦ δ■ßεΘ αΩ≥ΦΓφε±≥ⁿ■, φα∩≡Φ∞σ≡ ±ετΣαφΦσ∞ ≡στσ≡Γφ√⌡
  62. Ωε∩ΦΘ ΦδΦ ±ΩαφΦ≡εΓαφΦ ∞Φ ΣΦ±Ωα. ╟αΣσ≡µΩα ∞εµσ≥ ∩≡εΦτεΘ≥Φ Σαµσ Γ φσ±ΩεδⁿΩε ±σΩ≤φΣ Φ   φσ ⌡ε≈≤, ≈≥εß√ ±∩≡αΘ≥√ ∩≡Φ
  63. ΣΓΦµσφΦΦ ±εΓσ≡°αδΦ τα∞Ωφ≤≥√Θ Ω≡≤π.
  64.  
  65. ╩εΣ ÷ΦΩδΦ≈σ±ΩΦ ∩≡ε⌡εΣΦ≥ ±∩Φ±εΩ Sprites Φ Σδ  ΩαµΣεπε ΓΦΣΦ∞επε ±∩≡αΘ≥α Γ√τ√Γασ≥ ∞σ≥εΣ GetFrameNumber. ▌≥ε≥ ∞σ≥εΣ
  66. ΓετΓ≡α∙ασ≥ φε∞σ≡ ΩαΣ≡α, Ωε≥ε≡√Θ ≥≡σß≤σ≥±  Σδ  ΓΦτ≤αδΦτα÷ΦΦ ±∩≡αΘ≥α. ┴√±≥≡α  ∩≡εΓσ≡Ωα ∩≡εΦτΓεΣΦ≥±  Σδ  ≥επε, ≈≥εß√
  67. ≤ßσΣΦ≥ⁿ± , ≈≥ε ²≥ε ≈Φ±δε φσ Γ√°σ 59, ≥ε σ±≥ⁿ φσ ßεδⁿ°σ ≈Φ±δα ΩαΣ≡εΓ Γ ALLBMP ∞Φφ≤± ]. ┬√ Φ±∩εδⁿτεΓαδΦ ≥αΩεΘ µσ ∩εΣ±≈σ≥
  68. Γ ∩ε±δσΣφΦΘ ≡ατ Σδ  ∩εδ≤≈σφΦ  Φ±⌡εΣφεπε ∩≡ ∞ε≤πεδⁿφΦΩα Σδ  ±∩σ÷Φ⌠Φ≈σ±Ωεπε ΩαΣ≡α. ╚±∩εδⁿτ≤Θ≥σ BItFast Γ ²≥Φ⌡ ÷σδ ⌡, ΩαΩ
  69. Φ ≡αφⁿ°σ.
  70.  
  71. ╥σ∩σ≡ⁿ, ΩεπΣα φα≡Φ±εΓαφ√ ⌠εφ Φ ±∩≡αΘ≥√, Γ√ Σεδµφ√ ∩εΩ≡√≥ⁿ ∩εδ≤≈σφφεσ ±≥α≥Φ±≥Φ≈σ±ΩεΘ Φφ⌠ε≡∞α÷ΦσΘ. ▌≥ε ∩≡ε±≥εΘ
  72. ±δ≤≈αΘ ± Γ√τεΓε∞ BItFast ε∩ ≥ⁿ ± Stats Γ Ωα≈σ±≥Γσ Φ±⌡εΣφεΘ ∩εΓσ≡⌡φε±≥Φ. ╓σφ≥≡Φ≡≤Θ≥σ Σαφφ√σ Γ√ΓεΣα Φ ±∞σ±≥Φ≥σ Φ⌡ φα
  73. ≈σ≥Γσ≡≥ⁿ ≡α±±≥ε φΦ  Ω φΦµφσΘ ≈α±≥Φ ΣΦ±∩δσ :
  74.  
  75. // ∩σ≡σφε± ±≥α≥ε±≥Φ≈σ±ΩΦ⌡ Σαφφ√⌡
  76. repeat
  77. until MakeltSo( BackBuffer. BItFast ( ( 640 - StatsRect. Right ) div 2, 120,
  78.  
  79. Stats, StatsRect,
  80. DDBLTFAST SRCCObORKEY ) ) ;
  81.  
  82.