рд╣рдмреНрдмрд░рдмреНрд░рд┐рдЬ рдкрд░, рд╕рдордп-рд╕рдордп рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдкрдХреНрд╖реЛрдВ рд╕реЗ рдЧреЗрдо рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ - 3 рдбреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рдЕрд╡рддрд╛рд░ рд╕реЗ рд▓реЗрдХрд░ рдиреЗрдЯрд╡рд░реНрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдирд┐рд░реНрдорд╛рдг рддрдХред рдпреЗ рд╡рд┐рд╖рдп рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВ, рдмрд▓реНрдХрд┐ рд╕рдВрдХреАрд░реНрдг рд╣реИрдВред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдПрдХ рд╡реНрдпрд╛рдкрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ - рдореИрдВ рддрдерд╛рдХрдерд┐рдд рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреЗрдо рдЗрдВрдЬрди рдмрдирд╛рдиреЗ рдХреЗ
рд╕рд┐рджреНрдзрд╛рдВрдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛ рдЖрдХрд╕реНрдорд┐рдХ рдЦреЗрд▓ред рд╡рд░реНрдгрд┐рдд рдореИрдХреЗрдирд┐рдХреНрд╕ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреИрдХреНрд╕рдореИрди, рдЕрд░реНрдХрд╛рдиреЙрдЗрдб, рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд░, рдЖрджрд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдЙрдкрдпреБрдХреНрдд рд╣реИред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдПрдХ рдЖрджрд┐рдо рд╕реНрдХреЙрд░реЛрд▓рдбрд╛рдЙрди рд╢реВрдЯрд░ (
рдЬрд╝реЗрдмреЗрдХреНрд╕ рдФрд░
рдПрдХреНрд╕рд░реЗрдм рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╕реАрди рднрд╛рд╡рдирд╛рдУрдВ рд╕реЗ) рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╣реЛрдЧрд╛ - рд╣рдо рдкреВрд░реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрдбрд╝рддреЗ рд╣реИрдВ, рдЙрд▓реНрдХрд╛рдкрд┐рдВрдб рджрд╕реНрддрдХ рджреЗрддреЗ рд╣реИрдВред рдЙрдкрдХрд░рдг - рдХреНрдпреВрдЯреАред
рддреБрд░рдВрдд рдПрдХ рдЖрд░рдХреНрд╖рдг рдХрд░реЗрдВ рдХрд┐ рдХреЛрдб рдореЗрдВ рдХреЛрдИ рд╕реБрдВрджрд░рд┐рдпрд╛рдВ рдФрд░ рдкреВрд░реНрдгрддрд╛ рдирд╣реАрдВ рд╣реИрдВред рдХрдХреНрд╖рд╛рдПрдВ рдЖрджрд┐рдо рд╣реИрдВ рдФрд░ рдХреЛрдб рдХреЛ рджреЛрд╣рд░рд╛рддреА рд╣реИрдВ, рдлрд╝рдВрдХреНрд╢рди рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИрдВ, рдХреЛрдИ рднреА рдЧреНрд░рд╛рдлрд┐рдХреНрд╕
рдмрджрд╕реВрд░рдд рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╢ рдФрд░ рдЯреЙрд╕ рдФрд░ рдореБрдбрд╝рддрд╛ рд╣реИред рдпрд╣реА рд╡рд╣ рдЖрдзрд╛рд░ рд╣реИ рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЖрдЧреЗ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдиреБрднрд╡реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ - рдХреБрдЫ рдЧрд░реНрдо, рд╢реБрд░реБрдЖрдд рдпрд╛ рд╡рд┐рд╖рдп рдореЗрдВ рдбрд╛рд▓рдирд╛ рдПрдХ рдХрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝реНрд▓рд┐рдк рдХрд░рдирд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рднреЛрдЬрди рджреЗ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдЪрдХреНрд░
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореБрдЦреНрдп рдЪрдХреНрд░ рдореЗрдВ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рднреА рдЖрдХрд╕реНрдорд┐рдХ (рдФрд░ рд╕рдмрд╕реЗ рдЧреИрд░-рдЖрдХрд╕реНрдорд┐рдХ) рдЦреЗрд▓ рдореЗрдВ рдЙрдирдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо рддреАрди рд╣реИрдВ:
- рдЧреЗрдордкреНрд▓реЗ рдХреА рдШрдбрд╝реА
- рдирд┐рд░рдВрддрд░рддрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░
- рджреГрд╢реНрдп рдкреНрд░рддрд┐рдкрд╛рджрди
рдЕрдиреНрдп рдмрд┐рдВрджреБ рднреА рд╕рдВрднрд╡ рд╣реИрдВ - рдПрдиреАрдореЗрд╢рди рдкреНрд░рдмрдВрдзрдХ, рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐, рдЖрджрд┐ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпреЗ рддреАрди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдВрдЧреЗред
рд╡реЗ рдХрд┐рд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рддрд┐рднрд╛рдЧреА рд╣реИрдВ?
рдЧреЗрдордкреНрд▓реЗ рдХреНрд▓реЙрдХ рдХреЛ рдЯрд╛рдЗрдорд░ ... um ...
рдЧреЗрдордкреНрд▓реЗ рдХреНрд▓реЙрдХ рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХреА рдЧрддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдЦреЗрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдЕрдЦрдВрдбрддрд╛ рдФрд░ рдЗрд╕рдХреА
рдкрд╣рдЪрд╛рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИ ред рдпрд╣ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ - рди рдХреЗрд╡рд▓ рдЗрд╕рд▓рд┐рдП рддрд╛рдХрд┐ рдЧреЗрдо рдХреА рдЧрддрд┐ рдХрдВрдкреНрдпреВрдЯрд░ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдкрд░ рдирд┐рд░реНрднрд░ рди рд╣реЛ, рд▓реЗрдХрд┐рди рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЦреЗрд▓рддреЗ рд╕рдордп рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреАред
рдирд┐рд░рдВрддрд░рддрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдПрдХ рд╕рд╣рд╛рдпрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдЧреЗрдо рдЬрдирд░реЗрдЯрд░ рдХреЗ рдХреЙрд▓ рдХреЗ рдмреАрдЪ рдХреБрдЫ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕реЗ рдЦреЗрд▓ рдХреЗ рдХреНрд╖рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

рдмрд╛рдПрдБ рдФрд░ рджрд╛рдПрдБ, рдЧреЗрдордкреНрд▓реЗ рдШрдбрд╝реА рдХреА рд▓рдЧрд╛рддрд╛рд░ рджреЛ рдХреЙрд▓ рджрд┐рдЦрд╛рдИ рдЬрд╛рддреА рд╣реИрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдкреАрд▓реЗ рд╕рд░реНрдХрд▓ рдХреА рдЧрддрд┐ = 3. рд╕рд░реНрдХрд▓ рдФрд░ рдЖрдпрдд рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдВрдХрдбрд╝реЗ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, = 2. рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрдХрд▓ рдФрд░ рдЖрдпрддрд╛рдХрд╛рд░ рдЯрдХрд░рд╛ рдирд╣реАрдВ рдЬрд╛рдПрдВрдЧреЗ рдпрджрд┐ рдЙрдирдХреА рдорджрдж рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИред рдирд┐рд░рдВрддрд░рддрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рднреА рдпрд╣ рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рджреГрд╢реНрдп рдкреНрд░рддрд┐рдкрд╛рджрди - рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдЖрдЗрдЯрдо рд╣реИ, рдХреНрдпреЛрдВрдХрд┐:
- рдЧреЗрдордкреНрд▓реЗ рдХреА рдЧрддрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП;
- рдЫрд╡рд┐ рдХреА рдЪрд┐рдХрдирд╛рдИ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП (рд╕реНрдХреНрд░реАрди рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрд╡реГрддреНрддрд┐ рдкрд░ = 10 рдмрд┐рдВрджреБрдУрдВ рдкрд░ = рдЧреЗрдо рдХреА рдЖрд╡реГрддреНрддрд┐ = 30, рдПрдХ рдЪрд▓рддреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЭрдЯрдХреЗ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗ рдпрджрд┐ рдлреНрд░реЗрдо рдХреЗрд╡рд▓ рддрднреА рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ рдЬрдм рдЧреЗрдордкреНрд▓реЗрдпрд░ рдЬрдирд░реЗрдЯрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)
рд▓реВрдк рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХреЗ
рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рднрд╛рдЧреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдзрд╛рд░рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреБрд░рдВрдд рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ рдЖрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЗрд╖реНрдЯрддрдо рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐:
- рд▓реВрдк рдореЗрдВ рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдиреЗрдЯрд╡рд░реНрдХ рд▓рдбрд╝рд╛рдЗрдпреЛрдВ рдХреЗ рд╕рдорд╛рдирд╛рд░реНрдереАрд╡рд╛рдж рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪрд╛рдирдХ рдЖрдкрдХреЛ рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рдПрдиреАрдореЗрд╢рди рдХрд╛ рддреНрдпрд╛рдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛?
- рдорд╣рддреНрд╡рдкреВрд░реНрдг рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рдЬрдЯрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рд╡рд┐рднрд┐рдиреНрди рд╕реВрддреНрд░ = рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕рд╛рдзрди, рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рдореБрджреНрджреЗ, рдФрд░ рдорд▓реНрдЯреАрдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдЕрдиреНрдп рдкреНрд░рд╕рдиреНрдиред
рдЗрд╕рд▓рд┐рдП, рд╣рдо рдереНрд░реЗрдбреНрд╕ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ - рдУрдПрд╕ (рд░реЗрдВрдбрд░рд┐рдВрдЧ, рдХреАрдмреЛрд░реНрдб рдкреЛрд▓рд┐рдВрдЧ) рд╕реЗ рд╕рдВрджреЗрд╢ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб, рдФрд░ рдЧреЗрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рддреАрди рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреАрдмреЛрд░реНрдб рдХреЗ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдФрд░ рдкреЛрд▓рд┐рдВрдЧ рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдореБрдЦреНрдп рд░реВрдк рдХреА рд╕рд┐рд░реНрдл рдПрдХ рдзрд╛рд░рд╛ рд╣реИред рд╣рдо рдЧреЗрдордкреНрд▓реЗ рдХреЗ рдкреНрд░рд╡рд╛рд╣ рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗред
рдЦреЗрд▓ рд╕реНрдЯреНрд░реАрдо
рдкреНрд░рд╡рд╛рд╣ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдЕрдм рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдЫреЛрдЯрд╛ рдХреЛрдбред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░реЗрдВред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдХрд┐рддрдиреЗ рдПрдордПрд╕ рдХреЛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рддрд░реНрдХ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдХреЗ рдмреАрдЪ рдЧреБрдЬрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдкреНрд░рддрд┐рдкрд╛рджрди:
рдХреЙрдкреА рд╕реЛрд░реНрд╕ | HTML рдХреЙрдкреА рдХрд░реЗрдВ- // рдШрдбрд╝реА: FREQ - рддрд░реНрдХ, рдПрдлрдкреАрдПрд╕ - рдкреНрд░рддрд┐рдкрд╛рджрди
- const int FREQ = 1000/40; // 1000 / рдПрдлрдкреАрдПрд╕
- const int MAX_FPS = 1000/180;
рдФрд░ рдпрд╣рд╛рдВ рдореБрдЦреНрдп рд▓реВрдк рдХреЛрдб рд╣реИ - рд╕рднреА рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХреЗ рд╕рд╛рде, рд╕рдордп рдХреА рдЬрд╛рдВрдЪ рдЖрджрд┐ред
рдХреЙрдкреА рд╕реЛрд░реНрд╕ | HTML рдХреЙрдкреА рдХрд░реЗрдВ- рдЬрдмрдХрд┐ ( рд╕рдЪ )
- {
- qint64 time_cur_tick = QDateTime :: currentMSecsSinceEpoch ();
- int numLoops = 0 ;
- рдмреВрд▓ рдлреБрдЯ = рд╕рдЪ;
- рдЬрдмрдХрд┐ ( time_prev_tick <time_cur_tick && numLoops <MAX_LOOPS )
- {
- // рдХреЙрд▓ рд▓реЙрдЬрд┐рдХ
- w-> UpdateLogic ( 1 / FREQ );
- рд╕рдВрдЦреНрдпрд╛;
- рдЕрдЧрд░ ( рдлреАрдЯ )
- {
- рдлреБрдЯ = рдЭреВрдареА;
- last_freq = time_cur_tick;
- }
- time_prev_tick + = FREQ;
- // рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╕рдордп рдХреЗ рд▓рд┐рдП time_cur_tick рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ
- time_cur_tick = QDateTime :: currentMSecsSinceEpoch ();
- }
- time_tmp = QDateTime :: currentMSecsSinceEpoch ();
- w-> SimulateConsistLogic ( (рдлреНрд▓реЛрдЯ ) ( time_tmp - last_freq ) / FREQ);
- time_tmp = QDateTime :: currentMSecsSinceEpoch ();
- рдЕрдЧрд░ ( time_tmp - time_lastrender> = MAX_FPS &&
w-> paint_mx.tryLock ( )) - {
- time_lastrender = time_tmp;
- рдлреНрд▓реЛрдЯ рдлреНрд░реАрдХ_рдмрд┐рдЯ = 0 ;
- рдЕрдЧрд░ ( time_tmp! = last_freq )
- freq_bit = ( float ) ( time_tmp - last_freq ) / FREQ;
- emit signalGUI ( freq_bit );
- w-> paint_mx.unlock ();
- }
- }
(рдиреЛрдЯ - рдпрджрд┐ рдЖрдк рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ - рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рдХреА рдЧрд┐рдирддреА рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд░реЗрдо рд╣реИ, рдШрд┐рд╕реА рд╣реБрдИ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрддреНрдкрд╛рджрди, рдЖрджрд┐)рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ - рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рдирд┐рд░рдВрддрд░рддрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЛ рдЧреЗрдо рд▓реЙрдЬрд┐рдХ рдХреЗ рдЕрдВрддрд┐рдо рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж рд╕реЗ рдЬреЛ рд╕рдордп рдмреАрдд рдЪреБрдХрд╛ рд╣реИ рд╡рд╣ рдХреНрдпреЛрдВ рдкрддрд╛ рд╣реИ? рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рджреГрд╢реНрдп рдХреА рддрд╛рддреНрдХрд╛рд▓рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЗрд╕реЗ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВред рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рд░рдВрддрд░рддрд╛ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдЗрд╕рдХреЗ рдЕрдВрддрд┐рдо рдХреЙрд▓ рдХреЗ рд╕рдордп рдХреЛ рднреА рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рд╕рдм рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рддреАрди рдкреНрд░рдХрд╛рд░ рдХреА рд╡рд╕реНрддреБрдПрдБ рд╣реИрдВ:
- рдЦрд┐рд▓рд╛рдбрд╝реА рдЬрд╣рд╛рдЬ
- рдЧреЛрд▓реА
- рдЙрд▓реНрдХрд╛рдкрд┐рдВрдб
рдЙрдирдХреЗ рд▓рд┐рдП рд╕рдВрдмрдВрдзрд┐рдд рд╡рд░реНрдЧ (CShip, CBullet, CMeteorite) рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЧреЛрд▓рд┐рдпреЛрдВ рдФрд░ рдЙрд▓реНрдХрд╛рдкрд┐рдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП, QVector рднрдВрдбрд╛рд░рдг рдХрдВрдЯреЗрдирд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИрдВред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдирдкреБрдЯ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, "рдЖрдВрджреЛрд▓рди рдХреА рджрд┐рд╢рд╛" рдХрд╛ рдПрдХ рд╕рд░рдгреА рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдлрд╝рдВрдХреНрд╢рди keyReleaseEvent рдФрд░ keyPressEvent рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
keyReleaseEvent рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЬрд╛рд░реА рдХреА рдЧрдИ рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреА рд╕рд░рдгреА рдореЗрдВ рдХреЛрдИ рдЬрд╛рд░реА рдХреБрдВрдЬреА рд╣реИ рдФрд░ рдпрджрд┐ рдХреЛрдИ рд╣реИ рддреЛ рдЙрд╕реЗ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред
keyPressEvent рддрджрдиреБрд╕рд╛рд░ рджрдмрд╛рдП рдЧрдП рдХреБрдВрдЬреА рдХреЛ рджрдмрд╛рдП рдЧрдП рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд░рдгреА рдореЗрдВ рдбрд╛рд▓ рджреЗрддрд╛ рд╣реИ (рдпрджрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд╣реИ)ред рдЗрд╕ рд╕рд░рдгреА рдХрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЦреЗрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдШрдбрд╝реА рдЬрдирд░реЗрдЯрд░ рдХреЗ рдХрд╛рд░реНрдп рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдЦреЗрд▓ рдХреА рдЧрддрд┐рдорд╛рди рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ, рдЬрд╣рд╛рдЬ рдХреА рдЧрддрд┐ рдХреЗ рджреМрд░рд╛рди рдЬрдбрд╝рддрд╛ рдХреА рдЧрдгрдирд╛, рдЙрд▓реНрдХрд╛рдкрд┐рдВрдбреЛрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг:
рдХреЙрдкреА рд╕реЛрд░реНрд╕ | HTML рдХреЙрдкреА рдХрд░реЗрдВ- рд╢реВрдиреНрдп рдореЗрдирд╡реЙрдЗрдб :: рдЕрдкрдбреЗрдЯрд▓реЙрдЧрд┐рдХ ( рдлреНрд▓реЛрдЯ рдлрд╝рд╛рдЗрдо )
- {
- рдлреНрд▓реЛрдЯ рдЧрддрд┐ = 2 ;
- for ( int i = 0; рдореИрдВ <m_dir.size ( ); i ++)
- {
- рдЕрдЧрд░ ( m_dir [i] == MainWindow :: рдпреВрдкреА )
- рдЕрднрд┐рдиреЗрддрд╛ 1. рдЕрдиреНрдпрд╛рдп рдирд┐рд░реНрджреЗрд╢ ( QVector2D (0, -speed ));
- рдЕрдЧрд░ ( m_dir [i] == MainWindow :: DOWN )
- рдЕрднрд┐рдиреЗрддрд╛ 1. рдЕрдиреНрдпрд╛рдп рдирд┐рд░реНрджреЗрд╢ ( QVector2D (0, рдЧрддрд┐ ));
- рдЕрдЧрд░ ( m_dir [i] == MainWindow :: LEFT )
- рдЕрднрд┐рдиреЗрддрд╛ 1. рдЕрдиреНрдпрд╛рдп рдирд┐рд░реНрджреЗрд╢ ( QVector2D ( -рдПрд╕рдкреАрдб, 0 ));
- рдЕрдЧрд░ ( m_dir [i] == MainWindow :: RIGHT )
- рдЕрднрд┐рдиреЗрддрд╛ 1. рдЕрдиреНрдпрд╛рдп рдирд┐рд░реНрджреЗрд╢ ( QVector2D (рдЧрддрд┐, 0 ));
- рдЕрдЧрд░ ( m_dir [i] == MainWindow :: SPACE &&
m_allowbullet == 0 ) - {
- m_bullets.push_back ( CBullet (actor1.getX ( ), actor1.getY () - 1 , QVector2D ( 0, -15 )));
- qDebug (QString ( "рдмреБрд▓реЗрдЯ рдЬреЛрдбрд╝реА рдЧрдИред Pos% 1" ) .arg ( m_bullets.size ( ) - 1 ) .toAscii ());
- m_allowbullet = 5 ;
- рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ ++;
- }
- }
- actor1.step рджрд┐рд╢рд╛ ();
- рдмреВрд▓ dir_touched = false;
- for ( int i = 0; рдореИрдВ <m_dir.size ( ); i ++)
- {
- рдЕрдЧрд░ ( m_dir [i]! = MainWindow :: SPACE )
- {
- dir_touched = true;
- рддреЛрдбрд╝;
- }
- }
- рдЕрдЧрд░ ( dir_touched )
- {
- m_allowmove = 0 ;
- рдлреНрд▓реЛрдЯ рдЬрдбрд╝рддрд╛ = реж ред 5 ;
- рдЕрдЧрд░ ( рдЕрднрд┐рдиреЗрддрд╛ 1 .getSpeed тАЛтАЛ( ) < 0 ред 5 )
- рдЬрдбрд╝рддрд╛ = 1 ;
- actor1.adjustSpeed тАЛтАЛ( рдЬрдбрд╝рддрд╛ );
- }
- for ( int i = 0; рдореИрдВ <m_bullets.size ( ); i ++)
- m_bullets [ i ] .step рджрд┐рд╢рд╛ ();
- рдХреЗ рд▓рд┐рдП ( int x = 0; x <m_enemy1.size ( ); x ++)
- m_enemy1 [x] .step рджрд┐рд╢рд╛ ();
- CheckGameRules ();
- рдЕрдЧрд░ ( m_enemy1.size ( ) <max_enemy)
- {
- CMeteorite weather ( рдордХрд░) (field_ident + CMeteorite :: weather_size,
field_ident + field_w - CMeteorite :: weather_size ), - -рдореГрдВрдж ( 0, 20 ),
- QVector2D ( 0, 1 ));
- рдЬрдмрдХрд┐ ( рд╕рдЪ )
- {
- int i = 0 ;
- рдЬрдмрдХрд┐ ( i <m_enemy1.size ( ))
- {
- рдЕрдЧрд░ ( weather.getBoundsT ) ( ) .intersects ( m_enemy1 [i] .getBoundsT ( ))
- рддреЛрдбрд╝;
- рдореИрдВ ++;
- }
- рдЕрдЧрд░ ( i == m_enemy1.size ( ))
- рддреЛрдбрд╝;
- рдореМрд╕рдо = рд╕реАрдПрдордЯреЛрд░рд╛рдЗрдЯ ( рдордХрд░ (1, 100 ), -рдордВрджреНрд░ ( 0, 20 ),
- QVector2D ( 0, 1 ));
- }
- m_enemy1.push_back ( рдореМрд╕рдо );
- }
- UpdateBullet ();
- }
CheckGameRules рдлрд╝рдВрдХреНрд╢рди рдЧреЗрдо рдХреЗ рдирд┐рдпрдореЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ - рдЬреЛ рдХрд┐рд╕реА рдореЗрдВ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛, рдЬреЛ рдЙрд╕рд╕реЗ рдЖрдЧреЗ рдирд┐рдХрд▓ рдЧрдпрд╛, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рд╡реИрд╕реЗ, 2D рдореЗрдВ рдпрд╣ QPolygon, QRect classes рдФрд░ рдЙрдирдХреЗ рдЬреИрд╕реЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рджреНрд╡рд╛рд░рд╛
рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЙрдкреА рд╕реЛрд░реНрд╕ | HTML рдХреЙрдкреА рдХрд░реЗрдВ- рд╢реВрдиреНрдп рдореЗрдирд╡реЙрдЗрдб :: рдЪреЗрдХрдЧреИрдоRules ( рдХреЙрдиреНрд╕реНрдЯ рдлреНрд▓реЛрдЯ рдлрд╝рд╛рдЗрдо )
- {
- рдлрд╝реАрд▓реНрдб рдлрд╝реАрд▓реНрдб рд╕рд╣реА рдХрд░реЗрдВ ( field_ident, field_ident,
field_w,
field_h ); - for ( int i = 0; рдореИрдВ <m_bullets.size ( ); i ++)
- {
- CBullet blt = m_bullets [ i ];
- рдлреНрд▓реЛрдЯ tx = 0 , ty = 0 ;
- blt.getTickCoords ( ftime, tx, ty );
- blt.setX ( tx );
- blt.setY ( ty );
- if ( field_rect.contains (m_bullets [i] .getX ( ), m_bul] [ i ] .getY ())ред
- {
- m_bullets.remove (i--);
- }
- рдЕрдиреНрдпрдерд╛
- {
- for ( int j = 0; j <m_enemy1.size ( ); j ++)
- {
- CMeteorite enm = m_enemy1 [j];
- рдлреНрд▓реЛрдЯ рдПрдЯреИрдХреНрд╕ = 0 , рдИрдЯреАрдЖрдИ = 0 ;
- enm.getTickCoords ( ftime, etx, ety );
- enm.setX ( etx );
- enm.setY ( ety );
- рдЕрдЧрд░ ( blt.checkCollision (enm.getBodyT ( )))
- {
- m_enemy1.remove ( j-- );
- m_bullets.remove (i--);
- рд╕реНрдХреЛрд░ ++;
- рддреЛрдбрд╝;
- }
- } // рдХреЗ рд▓рд┐рдП
- }
- }
- for ( int j = 0; j <m_enemy1.size ( ); j ++)
- {
- CMeteorite enm = m_enemy1 [j];
- рдЕрдЧрд░ ( field_rect.contains (enm.getBoundsT ( )) &&
- field_rectред bottomRight () .y () <enm.getBoundsT ()ред topLeft () .y ())
- {
- m_enemy1.remove ( j-- );
- }
- рдЕрдЧрд░ ( рдЕрднрд┐рдиреЗрддрд╛ 1 рдЪреЗрдХрдХреЙрд▓рд┐рд╢рди (enm.getBodyT ( )))
- {
- m_enemy1.remove ( j-- );
- рд╣рд┐рдЯреНрд╕ ++;
- }
- }
- рдЕрдЧрд░ ( field_rect.contains (actor1.getBoundsT ( ), true))
- {
- рдЬрдмрдХрд┐ ( field_rect.x ( )> = actor1.getBoundsT ()ред рдмрд╛рдПрдБ ()
- actor1.setX ( actor1.getX ( ) + 1 );
- рдЬрдмрдХрд┐ ( field_rect.x ( ) * 2 + field_rectред рдЪреМрдбрд╝рд╛рдИ () <= actor1.getBoundsT ()ред x () + actor1.getBoundsT ()ред рдЪреМрдбрд╝рд╛рдИ ()ред
- actor1.setX ( actor1.getX ( ) - 1 );
- рдЬрдмрдХрд┐ ( field_rect.top ( )> = actor1.getBoundsT ()ред рд╢реАрд░реНрд╖ ()
- actor1.setY ( actor1.getY ( ) + 1 );
- рдЬрдмрдХрд┐ ( field_rect.y ( ) * 2 + field_rect. height () <= actor1.getBoundsT ()ред y () + actor1.getBoundsT () ( рдКрдВрдЪрд╛рдИ ) ()ред
- actor1.setY ( actor1.getY ( ) - 1 );
- actor1.s рд╢реАрд░реНрд╖ ();
- }
- }
рддрджрдиреБрд╕рд╛рд░, рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдХрд╛ рдЖрд╣реНрд╡рд╛рди рдЕрдкрдорд╛рди рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рд╣реИред рдмрд╕ рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рдХрджрдо рдХреЗ рд╕рд╛рде, рд╣рдо рдЦреЗрд▓ рддрд░реНрдХ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддреЗ рд╣реИрдВ:
рдХреЙрдкреА рд╕реЛрд░реНрд╕ | HTML рдХреЙрдкреА рдХрд░реЗрдВ- рд╢реВрдиреНрдп рдореЗрдирд╡реЙрдЗрдб :: SimulateConsistLogic ( рдлреНрд▓реЛрдЯ рдлрд╝рд╛рдЗрдо )
- {
- рдХреЗ рд▓рд┐рдП ( рдлреНрд▓реЛрдЯ рдмреАрдЯреА = 0; рдмреАрдЯреА <рдлрд╝рд╛рдЗрдо; рдмреАрдЯреА = рдмреАрдЯреА + 0.1 )
- {
- CheckGameRules ( bt );
- }
- }
рд░реЗрдВрдбрд░рд┐рдВрдЧ рдЧреЗрдо рдлрд╝реАрд▓реНрдб рдХреЛ рдбреНрд░реЙ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЧреЗрдо рдЬрдирд░реЗрдЯрд░ рдШрдбрд╝реА рдХреЗ рдЕрдВрддрд┐рдо рдХреЙрд▓ рд╕реЗ рд╡рд░реНрддрдорд╛рди рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рдбреНрд░реЙ () рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред рд╕реЗрд╡рд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдкреНрд▓рд╕ рдЙрддреНрдкрд╛рджрди:
рдХреЙрдкреА рд╕реЛрд░реНрд╕ | HTML рдХреЙрдкреА рдХрд░реЗрдВ- рд╢реВрдиреНрдп рдореЗрдирд╡реВрдб :: рд░реЗрдВрдбрд░ ()
- {
- QPainter qpainter ( рдпрд╣ );
- const int bgw = 2 ;
- qpainter.setPen ( QPen (Qt :: black, bgw ));
- qpainter.setBrush ( QBrush (Qt :: darkGray ));
- qpainter.drawRect ( field_ident, field_ident,
field_w + field_ident,
field_h + field_ident ); - for ( int i = 0; рдореИрдВ <m_bullets.size ( ); i ++)
- {
- CBullet blt = m_bullets [ i ];
- blt.Draw ( qpainter, freq_bit );
- }
- for ( int i = 0; рдореИрдВ <m_enemy1.size ( ); i ++)
- {
- CMeteorite enm = m_enemy1 [ i ];
- enm.Draw ( qpainter, freq_bit );
- }
- actor1.Draw ( рдХреНрдпреВрдкреИрдВрдЯрд░, рдлреНрд░реАрдХ_рдмрд┐рдЯ );
- рдХреНрдпреВрдкреНрд▓реЗрдЯ рдкрд╛рд▓;
- qpainter.setBrush ( pal.brush (QPalette :: Window ));
- qpainter.setPen ( QPen (pal.color (QPalette :: Window ), 1 ));
- qpainter.drawRect ( field_ident - bgw / 2, 0,
field_w + field_ident + bgw / 2,
field_ident - bgw ); - qpainter.setPen ( QPen (Qt :: black, bgw ));
- qpainter.setBrush ( QBrush (Qt :: darkGray, Qt :: NoBrush ));
- qpainter.drawRect ( field_ident, field_ident,
field_w + field_ident,
field_h + field_ident ); - ui-> label_freq-> setText (QString ("% 1" ) .arg ( freq ) .toAscii ());
- ui-> label_fps-> setText (QString ("% 1" ) .arg ( рдПрдлрдкреАрдПрд╕ ) .toAscii ());
- ui-> label_speed-> setText (QString ("% 1" ) .arg ( actor1.getSpeed тАЛтАЛ( )) .toAscii ());
- ui-> label_score-> setText (QString ("% 1" ) .arg ( рд╕реНрдХреЛрд░ ) .toAscii ());
- ui-> label_fired-> setText (QString ("% 1" ) .arg ( рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ ) .toAscii ());
- ui-> label_hits-> setText (QString ("% 1" ) .arg ( рд╣рд┐рдЯреНрд╕ ) .toAscii ());
- }
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмрд╛рдХреА рддреБрдЪреНрдЫ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╣реИред рдЖрд╡реЗрджрди рдХрдВрдХрд╛рд▓ рд╡рд┐рдЪреНрдЫрд┐рдиреНрди рд╣реИ, рдФрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рд╕рдВрд▓рдЧреНрди рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк - рдореБрдЭреЗ рдЬреЛ рдорд┐рд▓рд╛, рдЙрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐:
рдпрд╣рд╛рдВ рдХреЗ рд╕реВрддреНрд░ рд╣рдо рддреАрд░ рдХреЗ рд╕рд╛рде рдЙрдбрд╝рддреЗ рд╣реИрдВ, рдПрдХ рд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде рд╢реВрдЯ рдХрд░рддреЗ рд╣реИрдВред
рдЧреАрдереВрдм рдкрд░ рд╕реВрддреНрд░ ред