рдЧреЛрд▓реНрдбрди рдЯреА рдЧреЗрдо рдЗрдВрдЬрди (GTGE) - рдкрд╣рд▓рд╛ рдбреЗрдЯрд┐рдВрдЧ

рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдореБрдЭреЗ рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдХ 2 рдбреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди - рдПрдХ рдЧреЗрдо рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдореБрдЭреЗ рдПрдХ рддреИрдпрд╛рд░ рдЗрдВрдЬрди рдХреА рддрд▓рд╛рд╢ рдХрд░рдиреА рдереА рдЬреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рд▓реЛрдб рдХрд░ рд╕рдХреЗ, рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЯрдХрд░рд╛рд╡ рдХреЛ рд╕рдВрднрд╛рд▓ рд╕рдХреЗ, рдЯрд╛рдЗрд▓реНрд╕ рдФрд░ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд╕рдХреЗред рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдиреНрдпреВрдирддрдо рд╕реЗрдЯ рдерд╛ред рд╡рд┐рдХрд▓реНрдк " рдЧреЛрд▓реНрдбрди рдЯреА рдЧреЗрдо рдЗрдВрдЬрди (GTGE) " рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ред рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рдордЭрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВ рдЕрдкрдиреЗ рдЕрдиреБрднрд╡ рдХреЛ рд╣реИрдмрд░реНрд╕ рдХреЗ рд╕рд╛рде рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ ред

рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕рд╛рдЗрдЯ рд╕реЗ рдЗрдВрдЬрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрд╕реЗ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреЛрдбрд╝ рджреЗрдВрдЧреЗред рдЕрдм рдЖрд╡реЗрджрди рдХрд╛ рдореБрдЦреНрдп рд╡рд░реНрдЧ рдмрдирд╛рдПрдВред рдореИрдВрдиреЗ рдЗрд╕реЗ рдореЗрди рдХрд╣рд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдЗрдВрдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдиреНрдпреВрдирддрдо рдЖрд╡реЗрджрди рд▓рд┐рдЦреЗрдВрдЧреЗред
рдЖрдпрд╛рдд java.awtред * ;
рдЖрдпрд╛рдд com.golden.gamedevред * ;

рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд░реНрдЧ рдХрд╛ рдореБрдЦреНрдп рдЦреЗрд▓ {
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╕реНрдереИрддрд┐рдХ рд╢реВрдиреНрдп рдореБрдЦреНрдп ( рд╕реНрдЯреНрд░рд┐рдВрдЧ [ ] args ) {
GameLoader рдЦреЗрд▓ = рдирдпрд╛ GameLoader ( ) ; // рдХреНрд▓рд╛рд╕ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИ
рдЦреЗрд▓ред рд╕реЗрдЯрдЕрдк ( рдирдпрд╛ рдореБрдЦреНрдп ) , рдирдпрд╛ рдЖрдпрд╛рдо ( 640 , 480 ) , рдЧрд▓рдд ) ; // рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдЗрдВрдЬрди рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░реЗрдВ
рдЦреЗрд▓ред рд╢реБрд░реВ ( ) ;
}

@Override
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп initResources ( ) {
// рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЦреЗрд▓ рдЪрд░ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ
}

@Override
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рд░реЗрдВрдбрд░ ( Graphics2D g ) {
// рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд░реЗрдВрдбрд░рд┐рдВрдЧ
}

@Override
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╢реВрдиреНрдп рдЕрджреНрдпрддрди ( рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рдорд╛рдкреНрдд ) {
// рдЪрд░ рдФрд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрджреНрдпрддрди
}
}

рдЕрдм, рдЖрдк рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рд╡рд┐рдВрдбреЛ GTGE рд▓реЛрдЧреЛ рдФрд░ FPS рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рд▓реЗрдХрд┐рди рддрд╕реНрд╡реАрд░ рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реИред рд╕реАрдзреЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ рдХрд╣реЗрдВ, рдПрдХ рджреВрд╕рд░реЗ рдкрд░ рдЖрд░реЛрдкрд┐рддред рдЗрд╕реЗ рдПрдлрдкреАрдПрд╕ рдХрд╛рдЙрдВрдЯрд░ рдкрд░ рдЬрд╛рдХрд░ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд╕рд╛рде рдЦреЗрд▓ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд░реВрдк рдореЗрдВ, рдХреЛрдИ рднреА рдЖрд░рдЬреАрдмреА рд░рдВрдЧ, рдЪрд┐рддреНрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рдХреНрдпрд╛ рд╣реИ? рдЦреЗрд▓ рдореИрджрд╛рди рдЙрд╕ рдкрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдордВрдЪ рд╣реИред рдПрдХ рдЦреЗрд▓ рдореИрджрд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрдЫ рдФрд░ рдлрд╛рдЗрд▓реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ:
рдЖрдпрд╛рдд com.golden.gamedev.objectред * ;
рдЖрдпрд╛рдд com.golden.gamedev.object.backgroundред * ;

рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди (рдкреНрд▓реЗ рдлреАрд▓реНрдб) - рдПрдХ рд╡рд░реНрдЧ рд╣реИред рд▓реЗрдХрд┐рди рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдПрдХ рдареЛрд╕ рд╕рдлреЗрдж рд░рдВрдЧ рд╣реЛрдЧрд╛ред рдореБрдЦреНрдп рд╡рд░реНрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рд▓рд┐рдЦреЗрдВ:
рдкреГрд╖реНрдарднреВрдорд┐ рд╡рд╛рдкрд╕ = рдирдпрд╛ ColorBackground ( рдирдпрд╛ рд░рдВрдЧ ( 255 , 255 , 255 ) ) ;

рдЕрдм, рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИред рдкреГрд╖реНрдарднреВрдорд┐ рдХреЛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
PlayField pf = рдирдпрд╛ PlayField ( рдкреАрдЫреЗ ) ;

PlayField рд╡рд░реНрдЧ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рддрд░реНрдХ рдкреГрд╖реНрдарднреВрдорд┐ рд╣реИ, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдЕрдВрдд рдореЗрдВ, рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛ рдФрд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реИред
рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдлрдВрдХреНрд╢рди рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдЦреЗрдВ:
рдкреАрдПрдлред рд░реЗрдВрдбрд░ ( рдЬреА ) ;

рдФрд░ рдЕрджреНрдпрддрди рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ -
рдкреАрдПрдлред рдЕрджреНрдпрддрди ( elapsedTime ) ;

рдЖрдк рджреМрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ? рд╕рдлреЗрдж рдЦрд╛рд▓реА рдЦреЗрд▓ рдореИрджрд╛рдиред рдХреБрдЫ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИред рдЖрдЧреЗ, рд╣рдо рдПрдХ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВрдЧреЗ, рдЬрд┐рд╕реЗ рддреАрд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдкрд░ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдЗрд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕рдореВрд╣ рдореЗрдВ рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЕрдм рд╣рдо рдпрд╣ рдХрд░реЗрдВрдЧреЗ рд╣рдореЗрдВ рддреАрди рдЪрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕рдореВрд╣ , рдЕрдкрд▓реЛрдб рдХреА рдЧрдИ рдЫрд╡рд┐ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред
рдХрдХреНрд╖рд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдЗрди рдЪрд░реЛрдВ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░реЗрдВ:
рд╕реНрдкреНрд░рд╛рдЗрдЯрдЧреНрд░реБрдк spr_group ;
рдмрдлрд╝рд░реЗрдбрдЗрдореЗрдЬ рд╕реНрдкреНрд░реЗ_рдмрдлрд╝рд░ ;
рд╕реНрдкреНрд░рд╛рдЗрдЯ рд╕реНрдкреНрд░реЗрдпрд░ ;

рдЕрдЧрд▓рд╛, рдЪрд┐рддреНрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:
рдЖрдпрд╛рдд java.awt.image.BufferedImage ;

рд╕реНрдкреНрд░рд╛рдЗрдЯ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рдЕрдм рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЪрд╛рд▓реВ рд╣реИред "рдореБрдЦреНрдп рдкрд╛рддреНрд░" рдХреЗ рд░реВрдк рдореЗрдВ рдореИрдВрдиреЗ рдпрд╣ рдЪрд┐рддреНрд░ рдЪреБрдирд╛:
рдЫрд╡рд┐
рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдХреИрд╕реЗ рд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдкрд░ рд░рдЦреЗрдВ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдкрдХреЛ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдореВрд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рднреА рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рднрдВрдбрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдореВрд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХреА Nth рд╕рдВрдЦреНрдпрд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕рдореВрд╣ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рд╕рдореВрд╣ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдПрдХ рддрд╕реНрд╡реАрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреА рд╣реЛрдЧреАред рдлрд┐рд░, рдПрдХ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рддрд╕реНрд╡реАрд░ рдЕрд╕рд╛рдЗрди рдХрд░реЗрдВред рдлрд┐рд░, рдЗрд╕ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рд╕рдореВрд╣ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ рдФрд░ рд╕рдореВрд╣ рдХреЛ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдкрд░ рд░рдЦреЗрдВред
рдпрд╣рд╛рдВ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдЙрдкрд░реЛрдХреНрдд рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЪрд┐рддреНрд░ рд▓реЛрдб рдХрд░рдирд╛ рдХреЗрд╡рд▓ рд╕рдВрд╕рд╛рдзрди рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП! рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдФрд░ рдЗрд╕реА рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ) :
// рд╕реНрдкреНрд░рд╛рдЗрдЯ рдЧреНрд░реБрдк рдмрдирд╛рдПрдВ
spr_group = рдирдпрд╛ SpriteGroup ( "grp_player" ) ;
// рдПрдХ рддрд╕реНрд╡реАрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ
spr_buffer = getImage ( "plane1.png" ) ;
// рдПрдХ рдЦрд┐рд▓рд╛рдбрд╝реА рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмрдирд╛рдПрдБ
spr_player = рдирдпрд╛ рд╕реНрдкреНрд░рд╛рдЗрдЯ ( spr_buffer, 100 , 100 ) ;
// рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рд╕рдореВрд╣ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ
spr_groupред add ( spr_player ) ;
// рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдкрд░ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд░рдЦреЗрдВ
рдкреАрдПрдлред addGroup ( spr_group ) ;

рдЕрдм, рдЖрдк рдЦреЗрд▓ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣рд╛рдВ рдХреНрдпрд╛ рд╣реБрдЖ рдерд╛? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдкрд░ рдПрдХ рдкреНрд░реЗрдд рд╣реИред рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдпрд╣ "рд╕реАрдЦрдирд╛" рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо рдХреНрдпрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд▓рд┐рдВрдХ рд╣реИред рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рдВрд╕ xX рдФрд░ рдореВрд╡ рд╣реИ ред рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдирдореЗрдВ рдлреЗрд░рдмрджрд▓ рдХрд░реЗрдВрдЧреЗред
рдХреАрд╕реНрдЯреНрд░реЛрдХ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
рдЖрдпрд╛рдд java.awt.event.KeyEvent ;

рдЕрдкрдбреЗрдЯ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд┐рдЦреЗрдВ:
if ( рдХреАрдбрд╛рдЙрди ( KeyEvent ред VK_W ) ) spr_playerред рдореВрд╡ ( - 3 ) ;
if ( рдХреАрдбрд╛рдЙрди ( KeyEvent ред VK_S ) ) spr_playerред рдореВрд╡ ( 3 ) ;
if ( рдХреАрдбрд╛рдЙрди ( KeyEvent ред VK_A ) ) spr_playerред MoveX ( - 3 ) ;
if ( рдХреАрдбрд╛рдЙрди ( KeyEvent ред VK_D ) ) spr_playerред MoveX ( 3 ) ;

рдЕрдм, рд╣рдо рдЕрдкрдиреЗ рдореБрдЦреНрдп рдЪрд░рд┐рддреНрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдиреАрдореЗрд╢рди

рдЕрдЧрд▓рд╛, рдореИрдВ рд▓реЛрдбрд┐рдВрдЧ рдПрдирд┐рдореЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП, рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛:
рдЫрд╡рд┐
рдПрдХ рдПрдирд┐рдореЗрдЯреЗрдб рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖ рдлрд╝рдВрдХреНрд╢рди getImage s рдХреЗ рд╕рд╛рде рдПрдХ рдЪрд┐рддреНрд░ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдк рдПрдХ рддрд╕реНрд╡реАрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рдХрдИ рдлреНрд░реЗрдо рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗред рдпрд╣рд╛рдБ рджреЛ рдЫреЛрдЯреЗ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ:
рдЙрджрд╛рд╣рд░рдг 1:
рдмрдлрд╝рд░реЗрдбрдЗрдореЗрдЬ [ ] aspr_buffer = getImages ( "plane2.png" , 3 , 1 ) ;

рдЙрджрд╛рд╣рд░рдг 2:
рдмрдлрд╝рд░реЗрдбрдЗрдореЗрдЬ [ ] aspr_buffer = {
getImage ( "plane1.png" ) ,
getImage ( "plane2.png" ) ,
getImage ( "plane3.png" )
} ;

рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдПрдХ рддрд╕реНрд╡реАрд░ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕реЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлреНрд░реЗрдо рдореЗрдВ рдХрд╛рдЯ рджреЗрддрд╛ рд╣реИред рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд╣рд▓рд╛ рддрд░реНрдХ рдЪрд┐рддреНрд░ рдХрд╛ рдкрде рд╣реИред рджреВрд╕рд░рд╛ рдХреНрд╖реИрддрд┐рдЬ рд░реВрдк рд╕реЗ рдлрд╝реНрд░реЗрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рддреАрд╕рд░рд╛ рддрд░реНрдХ рдлрд╝реНрд░реЗрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рд▓рдВрдмрд╡рдд рд╣реИред рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдХрд╛рд░реНрдп рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИред
рджреВрд╕рд░реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдПрдХ рд╕рд░рдгреА рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдореЗрдВ рдПрдХ рдЪрд┐рддреНрд░ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдирд┐рдореЗрдЯреЗрдб рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
aspr_player = new AnimatedSprite ( aspr_buffer, 100 , 100 ) ;

рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрдИ рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВред рдореБрдЦреНрдп рд╡рд╛рд▓реЗ, рдореИрдВ рдЕрдм рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред
// рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдЯрд╛рдЗрдорд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддрд╛ рд╣реИ
aspr_playerред getAnimationTimer ( ) ;

рдПрдиреАрдореЗрд╢рди рдХреА рдЧрддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдЯрд╛рдЗрдорд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣ рдКрдкрд░ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд┐рд░, рд╣рдо рд╕реЗрдЯрд▓реЗрд▓реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рддрд░реНрдХ рдПрдХ рдирдВрдмрд░ рд╣реИ - рд╕реНрдкреНрд░рд╛рдЗрдЯ рдлреНрд░реЗрдо рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рдмреАрдЪ рдПрдордПрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ред
aspr_playerред getAnimationTimer ( ) ред setDelay ( 100 ) ;

рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо 100ms рдХреЗ рдмрд╛рдж рдмрджрд▓ рдЬрд╛рдПрдЧрд╛ред
рдПрдХ рдПрдирд┐рдореЗрдЯреЗрдб рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдлреНрд░реЗрдо рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ setAnimationFrame рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
aspr_playerред setAnimationFrame ( 0 , aspr_bufferред рд▓рдВрдмрд╛рдИ - 1 ) ;

рдкрд╣рд▓рд╛ рддрд░реНрдХ рдкрд╣рд▓рд╛ рдлреНрд░реЗрдо рд╣реИ, рджреВрд╕рд░рд╛ рдЖрдЦрд┐рд░реА рд╣реИред рдЕрдВрддрд┐рдо рдлреНрд░реЗрдо - рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЧрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд░рдгреА рдореЗрдВ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ - 1 ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рд╕реНрдкреНрд░рд╛рдЗрдЯ рдореЗрдВ рдлреНрд░реЗрдо рдХреЗ рдЕрдиреБрдХреНрд░рдо рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реЗрдЯрдЕрдиреИрдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╕реНрдкреНрд░рд╛рдЗрдЯ рдПрдиреАрдореЗрд╢рди рдХреЛ рд╕рдХреНрд╖рдо / рдЕрдХреНрд╖рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
// рдПрдирд┐рдореЗрд╢рди рдСрди
aspr_playerред setAnimate ( рд╕рдЪ ) ;

рдФрд░ setLoopAnim рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдлрд╝реНрд░реЗрдо рдХреЗ " рд▓реВрдк " рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛рдиреА рдПрдиреАрдореЗрд╢рди рдХреЗ рдЕрдВрдд рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ рд░реЛрдХрд╛ рдирд╣реАрдВ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдЧрд╛ред
aspr_playerред setLoopAnim ( рд╕рдЪ ) ;

рдЖрдЗрдП рдЕрдкрдиреЗ рдореБрдЦреНрдп рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред
рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд╕реНрдкреНрд░рд╛рдЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдмрджрд▓реЗрдВ
aspr_buffer = getImages ( "plane2.png" , 3 , 1 ) ;
aspr_player = new AnimatedSprite ( aspr_buffer, 100 , 100 ) ;
aspr_playerред getAnimationTimer ( ) ред setDelay ( 80 ) ;
aspr_playerред setAnimationFrame ( 0 , aspr_bufferред рд▓рдВрдмрд╛рдИ - 1 ) ;
aspr_playerред setAnimate ( рд╕рдЪ ) ;
aspr_playerред setLoopAnim ( рд╕рдЪ ) ;
spr_groupред add ( aspr_player ) ;

рдФрд░ рдХрдХреНрд╖рд╛ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдХрдИ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░реЗрдВ:
рдмрдлрд╝рд░реЗрдбрдЗрдореЗрдЬ [ ] aspr_buffer ;
рдПрдирд┐рдореЗрдЯреЗрдбрдПрд╕реНрдкреНрд░реЗрд╕рд┐рдд aspr_player ;

рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЗ рдЖрдВрджреЛрд▓рди рдХреЛ рдмрджрд▓ рджреЗрдВ
if ( рдХреАрдбрд╛рдЙрди ( KeyEvent ред VK_W ) ) aspr_playerред рдореВрд╡ ( - 2 ) ;
if ( рдХреАрдбрд╛рдЙрди ( KeyEvent ред VK_S ) ) aspr_playerред рдореВрд╡ ( 2 ) ;
if ( рдХреАрдбрд╛рдЙрди ( KeyEvent ред VK_A ) ) aspr_playerред MoveX ( - 2 ) ;
if ( рдХреАрдбрд╛рдЙрди ( KeyEvent ред VK_D ) ) aspr_playerред MoveX ( 2 ) ;

рдЕрдм рдЖрдк рджреМрдбрд╝ рдХрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЦреЗрд▓ рдХреЗ рдореИрджрд╛рди рдкрд░ "рдШреВрд░реНрдгрди рдмреНрд▓реЗрдб" рдХреЗ рд╕рд╛рде рд╡рд┐рдорд╛рди рдХрд╛ рдПрдХ рдкреНрд░реЗрдд рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕ рдкрд░, рдореИрдВ рдЧреЛрд▓реНрдбрди рдЯреА рдЧреЗрдо рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде рдкрд╣рд▓рд╛ рдкрд░рд┐рдЪрдп рд╕рдорд╛рдкреНрдд рдХрд░реВрдВрдЧрд╛ред рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдкреЛрд╕реНрдЯ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рдлреА рдмрдбрд╝реА рдереАред рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рджред

рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрдВрдЬрди рдХреА рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВред

Source: https://habr.com/ru/post/In130115/


All Articles