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

  1. ╚π≡εΓεΘ SDK
  2. ├δαΓα 32
  3.  
  4. ╥σ∩σ≡ⁿ 1!█ πε≥εΦ√ Ω ß√±≥≡εΘ ±∞σφσ ±≥≡αφΦ÷. ╬φα ≥αΩα  µσ, ΩαΩ Φ ≡αφσσ, ≥εδⁿΩε φα ²≥ε≥ ≡ατ Γ√ß≤Σσ≥σ ≤ΓσδΦ≈ΦΓα≥ⁿ φα
  5. σΣΦφΦ÷≤ FlipCount, Ωε≥ε≡√Θ   ΣεßαΓΦδ Γ ⌠ε≡∞≤. ▌≥ε ∩εδσ ± ≥Φ∩ε∞ integer Σδ  ⌡≡αφσφΦ  εß∙σπε ≈Φ±δα ±∞σφφ√⌡ ±≥≡αφΦ÷,
  6. ε≥εß≡αµασ∞√⌡ φα ²Ω≡αφσ Γ ±σΩ≤φΣ≤. ┬ε≥ ∞εΣΦ⌠Φ÷Φ≡εΓαφφ√Θ ΩεΣ ß√±≥≡εΘ ±∞σφ√ ±≥≡αφΦ÷:
  7.  
  8. // ±σΘ≈α± ∩≡εΦτΓεΣΦ∞ ±∞σφ≤
  9. repeat
  10.  
  11. until MakeltSo( PrimarySurf α±σ. Flip ( NIL, DDFIilP_WAIT ) ) ;
  12. inc ( FlipCount ) ;
  13.  
  14. ╚ ∩εΣ Ωεφσ÷ ∩σ≡σΣΓΦφσ∞ ±∩≡αΘ≥√. ▌≥ε ∩≡ε±≥εΘ ±δ≤≈αΘ Γ√τεΓα Φ⌡ ∞σ≥εΣα Move Φ ∩σ≡σΣα≈Φ ≈Φ±δα ε≥±≈σ≥εΓ Γ≡σ∞σφΦ ±ε
  15. Γ≡σ∞σφΦ ∩ε±δσΣφσπε ΣΓΦµσφΦ . ╩δα±± ±∩≡αΘ≥εΓ ε≥Γσ≈ασ≥ τα ∩±σ ∩εΣ≡εßφε±≥Φ, ∩εΣ±≈Φ≥√Γασ≥ φεΓ≤■ ∩ετΦ÷Φ■ ±∩≡αΘ≥α, ε±φε-
  16. Γαφφ≤■ φα ∩εΣ±≈σ≥α⌡ σπε ±Ωε≡ε±≥Φ, εßφεΓδ σ≥ ±Ωε≡ε±≥ⁿ ΓΓσΣσφΦσ∞ ≤±Ωε≡σφΦ  Φ Γ√τ√Γασ≥ ±εß√≥Φσ OnCheckLimits, ≈≥εß√
  17. ∩ετΓεδΦ≥ⁿ ∩≡εΦτΓεΣΦ≥ⁿ ∩σ≡σΩ≡√≥Φ , σ±δΦ ²≥ε φσεß⌡εΣΦ∞ε. ╬ßφεΓΦ≥σ LastTickCount ∩σ≡σΣ Γ√⌡εΣε∞ Φτ ∩≡ε÷σΣ≤≡√. ╦Φ±≥Φφπ
  18. 32.40 ∩εΩατ√Γασ≥ Γα∞. ΩαΩΦ∞ εß≡ατε∞ ±δσΣ≤σ≥ ∩σ≡σ∞σ∙α≥ⁿ ±∩≡αΘ≥√.
  19.  
  20. ╦Φ±≥Φφπ 32.40 ╧σ≡σΣΓΦµσφΦσ ±∩≡αΘ≥εΓ
  21.  
  22. // ∩σ≡σ∞σ±≥Φ≥ⁿ ±∩≡αΘ≥√
  23. for i := 0 to Sprites .Count - I do
  24. TDDSprite( Sprites [ i ] ).Move( TicksSinceLast ) ;
  25.  
  26. // ∩ε∞φΦ≥ⁿ ε TickCount
  27. LastTickCount := TickCount ;
  28. end ;
  29.  
  30. ╬ßφεΓδσφΦσ ±≥α≥Φ±≥ΦΩΦ
  31.  
  32. ┬√ φσ εßφεΓδ σ≥σ ±≥α≥Φ±≥ΦΩ≤ ± ΩαµΣεΘ ±∞σφεΘ ±≥≡αφΦ÷. ▌≥ε ß√δε ß√ φσ²⌠⌠σΩ≥ΦΓφε, Γ√⌡εΣφ√σ Σαφφ√σ "φσ≡ΓφΦ≈αδΦ ß√
  33. ΩαΩ ±≤∞α±°σΣ°Φσ", εßφεΓδ  ±ⁿ ±ε ±Ωε≡ε±≥ⁿ■ 60 ≡ατ Γ ±σΩ≤φΣ≤ Φ ßεδⁿ°σ! ┬∞σ±≥ε ²≥επε ΣεßαΓⁿ≥σ TTimer ± Φφ≥σ≡Γαδε∞ Γ εΣφ≤
  34. ±σΩ≤φΣ≤ Φ εßφεΓΦ≥σ ∩εΓσ≡⌡φε±≥ⁿ Stats ∩≡Φ τα∩≤±Ωσ ≥αΘ∞σ≡α. ╤επδα±φε Γ√°σΦτδεµσφφε∞≤, Γ√ ΓσΣσ≥σ ≤≈σ≥ ≈Φ±δα ±∞σφφ√⌡
  35. ±≥≡αφΦ÷ Γ FlipCount. ┬√ Φ±∩εδⁿτ≤σ≥σ Σ≡≤πεσ ∩εδσ Σδ  ≤≈σ≥α τφα≈σφΦ  TickCount ± ∞ε∞σφ≥α ∩ε±δσΣφσπε εß≡α∙σφΦ  Ω ≥αΘ∞σ≡≤,
  36. ≈≥ε ∩ετΓεδ σ≥ ∩εδ≤≈Φ≥ⁿ ≥ε≈φ√Θ τα∞σ≡ Φφ≥σ≡Γαδα ∞σµΣ≤ ±εß√≥Φ ∞Φ ≥αΘ∞σ≡α. ╙±≥αφεΓΦ≥σ εß≡αßε≥≈ΦΩ ±εß√≥Φ  OnTimer Σδ 
  37. Γ√τεΓα (JpdateStatsData, Ωε≥ε≡α  ∩εΣ±≈Φ≥ασ≥ φεΓεσ ≈Φ±δε ΩαΣ≡εΓ Γ ±σΩ≤φΣ≤ Φ ±Ωε≡ε±≥ⁿ ∩σ≡σΣα≈Φ Φτεß≡αµσφΦ  Γ ∞σπαßαΘ≥α⌡ Γ
  38. ±σΩ≤φΣ≤, ⌡≡αφ  Φ⌡ ±εε≥Γσ≥±≥Γσφφε Γ ∩εδ ⌡ ⌠ε≡∞√ FPS (±εΩ≡α∙σφΦσ Σδ  Frames Per Second, "ΩαΣ≡√ Γ ±σΩ≤φΣ≤") Φ MBperSec
  39. (±εΩ≡α∙σφΦσ Σδ  MegaBytes per Second, "∞σπαßαΘ≥√ Γ ±σΩ≤φΣ≤").
  40.  
  41. ╦Φ±≥Φφπ 32.41 ╠σ≥εΣ UpdateStatsData εßφεΓδ σ≥ ±≥α≥Φ±≥Φ≈σ±Ω≤■ Φφ⌠ε≡∞α÷Φ■.
  42.  
  43.  
  44.  
  45. procedure TFormI. UpdateStatsData ;
  46. var TickCount : integer ;
  47. begin
  48.  
  49. TickCount := GetTickCount ;
  50. if FlippingEnabled and ( LastTimerTick <> 0 ) and
  51.  
  52. ( TickCount <> LastTimerTick ) then
  53. begin
  54.  
  55. FPS ;= FlipCount * 1000 div ( TickCount - LastTimerTick ) ;
  56. MBperSec := ( ( 640 * 480 ) + Sprites. Count * ( 64 * 64 )+
  57.  
  58. ( StatsRect. Right * StatsRect. Bottom ) ) * FPS / ( 1024 * 1024 ) ;
  59. end ;
  60.  
  61. LastTimerTick := TickCount ;
  62. FlipCount := 0 ;
  63. end ;
  64.  
  65. ╟α∞σ≥ⁿ≥σ, ≈≥ε ∩σ≡σΣ ΩαµΣεΘ ±∞σφεΘ ±≥≡αφΦ÷√ Γ√ ∩σ≡σφε±Φ≥σ ∩εδφε±≥ⁿ■ ⌠εφεΓ≤■ εßδα±≥ⁿ. ▌≥ε ±ε±≥αΓδ σ≥ 640⌡480 ∩ΦΩ-
  66. ±σδσΘ, ΦδΦ 307200 ßαΘ≥εΓ Φ ε∩≡σΣσδ σ≥ ∞ΦφΦ∞αδⁿφ≤■ ±Ωε≡ε±≥ⁿ ∩σ≡σφε±α. ┼±δΦ ß√ φα° ∞εφΦ≥ε≡ Φ∞σδ Γετ∞εµφε±≥ⁿ εßφεΓ-
  67. δ ≥ⁿ±  ± ≈α±≥ε≥εΘ 75 π÷, ²≥ε ß√ ∩≡ΦΓσδε Ω ε±φεΓφεΘ ±Ωε≡ε±≥Φ ∩σ≡σφε±α 75*307200, ΦδΦ φσ±ΩεδⁿΩε ∞σφⁿ°σ, ≈σ∞ 22╠┬ Γ
  68. ±σΩ≤φΣ≤ Σαµσ ßστ ±∩≡αΘ≥εΓ! ╥αΩα  ±Ωε≡ε±≥ⁿ ß√δΦ ß√ φσΓετ∞εµφεΘ ±ε ±≥α≡εΘ °ΦφεΘ AT, φε Σαµσ ± δεΩαδⁿφ√∞Φ °Φφα∞Φ εφ ß√
  69. Γ±α±√Γαδ Γ ±σß  ±εδΦΣφ√Θ Ω≤±εΩ ∩≡ε∩≤±ΩφεΘ ±∩ε±εßφε±≥Φ °Φφ√. ═ε ∞√ Φ±∩εδⁿτ≤σ∞ DirectDraw, Φ ∩ΦΩ±σδΦ ∩≡ε±≥ε τα∩Φ±√-
  70. Γα■≥±  Γ ∩α∞ ≥ⁿ φα ΓΦΣσεΩα≡≥σ ± ∩ε∞ε∙ⁿ■ Φ∞σ■∙σπε±  φα ΓΦΣσεΩα≡≥σ α∩∩α≡α≥φεπε εßσ±∩σ≈σφΦ  ∩σ≡σΣα≈Φ ßΦ≥εΓ√⌡ ßδεΩεΓ.
  71. ┬ε≥ ∩ε≈σ∞≤ ∞√ ∞εµσ∞ εßσ±∩σ≈Φ≥ⁿ ≥αΩεΘ Γ√±εΩΦΘ ≤≡εΓσφⁿ ±Ωε≡ε±≥Φ ∩σ≡σΣα≈Φ ßΦ≥εΓ√⌡ ßδεΩεΓ.
  72.  
  73. ┬√ τα∞σ≥Φ≥σ ≤ΓσδΦ≈σφΦσ ±Ωε≡ε±≥Φ ∩σ≡σΣα≈Φ ßΦ≥εΓ√⌡ ßδεΩεΓ, σ±δΦ ΣεßαΓΦ≥σ ±∩≡αΘ≥√. ═α ±εΓ≡σ∞σφφ√⌡ π≡α⌠Φ≈σ±ΩΦ⌡ Ωα≡-
  74. ≥α⌡ ±Ωε≡ε±≥ⁿ Γ 40╠┬ Γ ±σΩ≤φΣ≤ Γ∩εδφσ Σε±≥ΦµΦ∞α. ╬φα ≡αΓφα 60 φα°Φ∞ ±∩≡αΘ≥α∞ ∩δ■± ⌠εφ; ΣεΓεδⁿφε Γ∩σ≈α≥δ ■∙ΦΘ ≡στ≤δⁿ-
  75. ≥α≥ ± ≤≈σ≥ε∞ ≥επε, ≈≥ε Γ√∩εδφσφΦσ ∩≡εΦ±⌡εΣΦ≥ ±ε ±Ωε≡ε±≥ⁿ■ 75 ΩαΣ≡εΓ Γ ±σΩ≤φΣ≤. ─αµσ ßεδσσ, ≈σ∞ Γ∩σ≈α≥δ ■∙σ - ∩≡Φ
  76. ΣεΓεδⁿφε ∩≡Φσ∞δσ∞εΘ ±Ωε≡ε±≥Φ Γ 25 ΩαΣ≡εΓ Γ ±σΩ≤φΣ≤ ∞√ ∞επδΦ ß√ ∩εδ≤≈Φ≥ⁿ ±Γ√°σ 340 ≡ατ∞σ≡ε∞ 64⌡64 ±∩≡αΘ≥εΓ - Γε≥ ²≥ε
  77. Σε±≥ΦµσφΦσ!
  78.  
  79. ┬σ≡φσ∞±  Ω ΩεΣ≤. ┬ ±εß√≥ΦΦ OnTimer ∞√ ∞εµσ∞ τα≥σ∞ Γ√τΓα≥ⁿ UpdateStatsSurface Σδ  Γ√ΓεΣα ≥σΩ±≥α, ΩαΩ ∩εΩαταφε Γ
  80. δΦ±≥Φφπσ 32.42.
  81.  
  82.