home *** CD-ROM | disk | FTP | other *** search
- ╠≤δⁿ≥Φ∞Φ╦ΦΦ Φ Φπ≡√
- ╫α±≥ⁿ VII
-
- φσεß⌡εΣΦ∞ε τα∩εδφΦ≥ⁿ ∩εδ °Φ≡Φφ√ Φ ÷√±ε≥√ (dwWidth Φ dwHeiglit), α τα≥σ∞ ≤±≥αφε∩Φ≥ⁿ ⌠δαπΦ Γ dwFlags, ≈≥εß√ ±Ωατα≥ⁿ, ≈≥ε
- ²≥Φ ∩εδ ΣσΘ±≥ΓΦ≥σδⁿφ√. ╙±≥αφεΓΦ≥σ ≥Φ∩ ∩εΓσ≡⌡φε±≥Φ Γ DDSCaps.dwCaps, Φ τα≥σ∞ Γ√ ß≤Σσ≥σ πε≥εΓ√ Γ√τΓα≥ⁿ DirectDraw.Cre-
- ateSurface.
-
- ╟α≥σ∞ ≤±≥αφεΓΦ≥σ ÷Γσ≥φεΘ Ωδ■≈, ΩαΩ Γ√ ≤±≥αφαΓδΦΓαδΦ Γ ∩εΓσ≡⌡φε±≥Φ Image, ∩ε≥ε∞≤ ≈≥ε φσεß⌡εΣΦ∞ε ε≥εß≡ατΦ≥ⁿ ±≥α≥Φ±-
- ≥Φ≈σ±Ω≤■ Φφ⌠ε≡∞α÷Φ■ Γ ΓΦΣσ ≥σΩ±≥α ∩εΓσ≡⌡ ⌠εφα Φ ±∩≡αΘ≥εΓ.
-
- ▀ ΣεßαΓΦδ StatsCanvas Φ Σ≡≤πΦσ εß·σΩ≥√ TDDCanvas, Φ∞σ■∙Φσ± ≥α∞. ╤ετΣαΘ≥σ Φ ΦφΦ÷ΦαδΦτΦ≡≤Θ≥σ σπε Γ FormShow ≥αΩ,
- ≈≥εß√ ÷α∞ φσ ∩≡Φ⌡εΣΦδε±ⁿ Σσδα≥ⁿ ²≥ε Γ± ΩΦΘ ≡ατ ∩≡Φ φσεß⌡εΣΦ∞ε±≥Φ εßφεΓΦ≥ⁿ ∩εΓσ≡⌡φε±≥ⁿ Stats, ΩαΩ ∩εΩαταφε Γ δΦ±≥Φφπσ 32.38.
-
- ╦Φ±≥Φφπ 32.38 ╤ετΣαφΦσ Φ ΦφΦ÷ΦαδΦτα÷Φ ∩εΓσ≡⌡φε±≥Φ Stats.
-
- StatsCanvas : = TDDCanvas . Create ( Stats ) ;
- with StatsCanvas do try
- Font.Name := 'Arial' ;
- Font. Size := 16 ;
- Font, Color := clWhite ;
- finally
-
- Release ;
- end ;
-
- ┬Φτ≤αδΦτα÷Φ ±∩≡αΘ≥εΓ
-
- ▀ ±Ωαταδ, ≈≥ε ∩≡Φ∞σφσφΦσ ±∩≡αΘ≥εΓ Γδ σ≥± ≡εΣεΓ√∞, ∩ε≥ε∞≤ ≈≥ε εφΦ φσ τφα■≥, ΩαΩ ±σß ΓΦτ≤αδΦτΦ≡εΓα≥ⁿ, ≥αΩ ≈≥ε Φ⌡
- ∞εµφε Φ±∩εδⁿτεΓα≥ⁿ ± δ■ßεΘ ≥σ⌡φεδεπΦσΘ ε≥εß≡αµσφΦ , ΓΩδ■≈α DirectDraw. ┬Φτ≤αδΦτα÷Φ (rendering) ∩≡εΦτΓεΣΦ≥± Γ ∞ε-
- ΣΦ⌠Φ÷Φ≡εΓαφφε∞ ∞σ≥εΣσ UpdateDisplay. ╬φα φα≈Φφασ≥± ≥αΩ µσ, ΩαΩ Φ Γ ∩≡σΣ√Σ≤∙σ∞ ∩≡Φ∞σ≡σ, ∩σ≡σΣαΓα ±φα≈αδα ⌠εφεΓεσ
- Φτεß≡αµσφΦσ. ═ε ≥σ∩σ≡ⁿ Γ∞σ±≥ε ±ετΣαφΦ ∩≡ε±≥√⌡ αφΦ∞α÷Φεφφ√⌡ εß·σΩ≥εΓ Γ√ Σεδµφ√ φα≡Φ±εΓα≥ⁿ ±∩≡αΘ≥√, ΩαΩ ∩≡εΣσ∞εφ-
- ±≥≡Φ≡εΓαφε Γ δΦ±≥Φφπσ 32.39.
-
- ╦Φ±≥Φφπ 32.39 ┬Φτ≤αδΦτα÷Φ ±∩≡αΘ≥εΓ.
-
- TicIcCount := GetTickCount ;
- TicIcsSinceLast := 0 ;
- if LastTickCount <> 0 then
-
- TicIcsSincebast ;= TickCount - liastTickCount ;
- // ε∩≡σΣσδΦ≥ⁿ Γ≡σ∞ , ∩≡ε°σΣ°σσ ε≥ ∩ε±δσΣφσπε εßφεΓδσφΦ
- if Tic^sSinceLast > MaxJump then TicksSinceLast := MaxJump ;
- for i := 0 to Sprites. Count - I do begin
- with TDDSprite( Sprites [ i ] ) do if Visible then begin
- ACurrentFrame := 0 ;
-
- GetFrameNuinber( TicleCount, TicksSinceLast, ACurrentFrame ) ;
- if ACurrentFrame > 59 then ACurrentFrame := 59 ;
-
- ARect := Bounds ( ( ACurrentFrame mod 10 ) * 64, ( ACurrentFrame div 10) * 64+ 480, 64, 64 ) ;
- repeat
-
- until MakeltSot BackBuffer.BItFastI X, Y, Image, ARect, DDBLTFAST_SRCCOI.ORKEY ) ) ;
- end ;
- end ;
-
- ╠φσ φσεß⌡εΣΦ∞ε ≤τφα≥ⁿ ≈Φ±δε ∞ΦδδΦ±σΩ≤φΣ, Ωε≥ε≡√σ Φ±≥σΩδΦ ± ∞ε∞σφ≥α ∩ε±δσΣφσπε εßφεΓδσφΦ ±∩≡αΘ≥α. ╥αΩΦ∞ εß≡α-
- τε∞, Γ√τ√Γα■ GetTickCount Φ ε≥φΦ∞α■ ≡στ≤δⁿ≥α≥ ε≥ LastTickCount, τφα≈σφΦσ Ωε≥ε≡επε Γτ ≥ε Γ ≥σΩ≤∙ΦΘ ∞ε∞σφ≥ Φ φσ Γ
- ∩σ≡Γ√Θ ≡ατ Γ ∩≡ε÷σ±±σ ÷ΦΩδα (≥επΣα LastTickCount ß√δε ß√ φ≤δσ∞). ▀ ≥αΩµσ επ≡αφΦ≈ΦΓα■ ≈Φ±δε ∞ΦδδΦ±σΩ≤φΣ φα ±δ≤≈αΘ,
- ΩεπΣα αΩ≥ΦΓφε±≥ⁿ ΩαΩεΘ-φΦß≤Σⁿ ΦφεΘ ±Φ±≥σ∞√ ∩≡σΣε≥Γ≡α≥Φ≥ εßφεΓδσφΦσ φα ßεδσσ ∩≡εΣεδµΦ≥σδⁿφεσ Γ≡σ∞ , ≈σ∞ εß√≈φε. ▌≥ε
- ΣεΓεδⁿφε εß√≈φε Γ Windows 95 Φ ∞εµσ≥ ß√≥ⁿ Γ√τΓαφε αΓ≥ε∞α≥Φ≈σ±ΩΦ δ■ßεΘ αΩ≥ΦΓφε±≥ⁿ■, φα∩≡Φ∞σ≡ ±ετΣαφΦσ∞ ≡στσ≡Γφ√⌡
- Ωε∩ΦΘ ΦδΦ ±ΩαφΦ≡εΓαφΦ ∞Φ ΣΦ±Ωα. ╟αΣσ≡µΩα ∞εµσ≥ ∩≡εΦτεΘ≥Φ Σαµσ Γ φσ±ΩεδⁿΩε ±σΩ≤φΣ Φ φσ ⌡ε≈≤, ≈≥εß√ ±∩≡αΘ≥√ ∩≡Φ
- ΣΓΦµσφΦΦ ±εΓσ≡°αδΦ τα∞Ωφ≤≥√Θ Ω≡≤π.
-
- ╩εΣ ÷ΦΩδΦ≈σ±ΩΦ ∩≡ε⌡εΣΦ≥ ±∩Φ±εΩ Sprites Φ Σδ ΩαµΣεπε ΓΦΣΦ∞επε ±∩≡αΘ≥α Γ√τ√Γασ≥ ∞σ≥εΣ GetFrameNumber. ▌≥ε≥ ∞σ≥εΣ
- ΓετΓ≡α∙ασ≥ φε∞σ≡ ΩαΣ≡α, Ωε≥ε≡√Θ ≥≡σß≤σ≥± Σδ ΓΦτ≤αδΦτα÷ΦΦ ±∩≡αΘ≥α. ┴√±≥≡α ∩≡εΓσ≡Ωα ∩≡εΦτΓεΣΦ≥± Σδ ≥επε, ≈≥εß√
- ≤ßσΣΦ≥ⁿ± , ≈≥ε ²≥ε ≈Φ±δε φσ Γ√°σ 59, ≥ε σ±≥ⁿ φσ ßεδⁿ°σ ≈Φ±δα ΩαΣ≡εΓ Γ ALLBMP ∞Φφ≤± ]. ┬√ Φ±∩εδⁿτεΓαδΦ ≥αΩεΘ µσ ∩εΣ±≈σ≥
- Γ ∩ε±δσΣφΦΘ ≡ατ Σδ ∩εδ≤≈σφΦ Φ±⌡εΣφεπε ∩≡ ∞ε≤πεδⁿφΦΩα Σδ ±∩σ÷Φ⌠Φ≈σ±Ωεπε ΩαΣ≡α. ╚±∩εδⁿτ≤Θ≥σ BItFast Γ ²≥Φ⌡ ÷σδ ⌡, ΩαΩ
- Φ ≡αφⁿ°σ.
-
- ╥σ∩σ≡ⁿ, ΩεπΣα φα≡Φ±εΓαφ√ ⌠εφ Φ ±∩≡αΘ≥√, Γ√ Σεδµφ√ ∩εΩ≡√≥ⁿ ∩εδ≤≈σφφεσ ±≥α≥Φ±≥Φ≈σ±ΩεΘ Φφ⌠ε≡∞α÷ΦσΘ. ▌≥ε ∩≡ε±≥εΘ
- ±δ≤≈αΘ ± Γ√τεΓε∞ BItFast ε∩ ≥ⁿ ± Stats Γ Ωα≈σ±≥Γσ Φ±⌡εΣφεΘ ∩εΓσ≡⌡φε±≥Φ. ╓σφ≥≡Φ≡≤Θ≥σ Σαφφ√σ Γ√ΓεΣα Φ ±∞σ±≥Φ≥σ Φ⌡ φα
- ≈σ≥Γσ≡≥ⁿ ≡α±±≥ε φΦ Ω φΦµφσΘ ≈α±≥Φ ΣΦ±∩δσ :
-
- // ∩σ≡σφε± ±≥α≥ε±≥Φ≈σ±ΩΦ⌡ Σαφφ√⌡
- repeat
- until MakeltSo( BackBuffer. BItFast ( ( 640 - StatsRect. Right ) div 2, 120,
-
- Stats, StatsRect,
- DDBLTFAST SRCCObORKEY ) ) ;
-
-