рд╣рд╛рдп рд╣рдорд░! рдореЗрд░рд╛ рдирд╛рдо рдПрдВрдбреНрд░реА рд╢рд┐рд▓реЛ рд╣реИ, рдореИрдВ
рдлрд┐рдирдЪреЗрдпрд░ рдореЗрдВ рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВред рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЦреЗрд▓ рд▓рд┐рдЦрддреЗ рд╕рдордп рднреА рдХреМрди рд╕реА рдЧрд▓рддрд┐рдпрд╛рдВ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП рдФрд░
рдПрдВрдЯрд┐рдЯреА рдХрдВрдкреЛрдиреЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо (рдИрд╕реАрдПрд╕) рд╡рд╛рд╕реНрддреБ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдардВрдбрд╛ рдХреНрдпреЛрдВ рд╣реИред
рдкрд╣рд▓реА рдмрд╛рд░ рд╣рдореЗрд╢рд╛ рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИ
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рдореБрдЦ рдореАрдбрд┐рдпрд╛ рд╣реЛрд▓реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдордЬреЗрджрд╛рд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЧреИрд░-рдорд╛рдирдХ рд╕рд╛рдорд╛рдЬрд┐рдХ рд╣реИред рдкреЛрд╕реНрдЯ, рдЯрд┐рдкреНрдкрдгреА, рдкрд╕рдВрдж рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХред рдПрдХ рдмрд╛рд░, рдЙрдиреНрд╣реЛрдВрдиреЗ рд╣рдореЗрдВ рдПрдХ рдХрд╛рд░реНрдп рджрд┐рдпрд╛ - рдЦреЗрд▓ рдпрд╛рдВрддреНрд░рд┐рдХреА рдХреЛ рдПрдХ рдкреНрд░рдЪрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЦреЗрд▓ рд╕рд╛рдзрд╛рд░рдг рдорд┐рдиреА рджреМрдбрд╝ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рдерд╛, рдЬрд╣рд╛рдВ рдмрд╛рдИрдВ / рджрд╛рдИрдВ рдУрд░ рдПрдХ рдЯреИрдк рдХреЗ рд╕рд╛рде, рдХрд╛рд░ рдмрд╛рдПрдВ / рджрд╛рдПрдВ рд▓реЗрди рдореЗрдВ рдЪрд▓реА рдЧрдИред рддреЛ, рдмрд╛рдзрд╛рдУрдВ рдХреЛ рдЪрдХрдорд╛ рджреЗ рд░рд╣рд╛ рд╣реИ рдФрд░ рдмреВрд╕реНрдЯрд░ рдЗрдХрдЯреНрдард╛ рдХрд░рдХреЗ рдЖрдкрдХреЛ рдлрд┐рдирд┐рд╢ рд▓рд╛рдЗрди рддрдХ рдкрд╣реБрдВрдЪрдирд╛ рдерд╛, рд╕рднреА рдореЗрдВ, рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рддреАрди рдЬреАрд╡рди рдереЗред
рдЦреЗрд▓ рдХреЛ рдЖрд╡реЗрджрди рдХреЗ рдареАрдХ рдЕрдВрджрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рдЕрд▓рдЧ рд╕реНрдХреНрд░реАрди рдкрд░ред рд╣рдордиреЗ рдЗрдВрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдмрд┐рдирд╛ рд╢рд░реНрдд рдХреЗ
LibGDX рдХреЛ рдЪреБрдирд╛, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдЦреЗрд▓ рдХреЛ рдХреЛрдЯрд┐рд▓рди рдкрд░ рдХреЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдбреЗрд╕реНрдХрдЯреЙрдк рдкрд░ рдбрд┐рдмрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЧреЗрдо рдХреЛ
рдЬрд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░
рд╕рдХрддреЗ рд╣реИрдВ ред рдЙрд╕реА рд╕рдордп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕реЗ рд▓реЛрдЧ рдирд╣реАрдВ рдереЗ рдЬреЛ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЗрдВрдЬрди рдХреЛ рдЬрд╛рдирддреЗ рдереЗ рдЬреЛ рдХрд┐ рдЖрд╡реЗрджрди рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ)ред
рдЦреЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЪреВрдВрдХрд┐ рдореВрд▓ рдЯреАрдХреЗ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЦреЗрд▓ рд╕рд░рд▓ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рджреГрд╖реНрдЯрд┐рдХреЛрдг рдореЗрдВ рддрд▓реНрд▓реАрди рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкрджреЛрдиреНрдирддрд┐ рд╕реНрд╡рдпрдВ рдЬрд▓реНрджреА рд╕реЗ рдЧреБрдЬрд░рддреА рд╣реИрдВ - рдФрд╕рддрди, рдПрдХ рд╢реЗрдпрд░ рдореЗрдВ рдбреЗрдврд╝ рдорд╣реАрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВред рддрджрдиреБрд╕рд╛рд░, рдмрд╛рдж рдореЗрдВ, рдЧреЗрдо рдХреЛрдб рдХреЛ рдмрд╕ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЕрдЧрд▓реЗ рдРрд╕реЗ рдкреНрд░реЛрдореЛ рддрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рдмрд╢рд░реНрддреЗ рдХрд┐ рдХреЛрдИ рдРрд╕рд╛ рдХреБрдЫ рджреЛрд╣рд░рд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред
рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╕рднреА рдХрд╛рд░рдХ рдФрд░ рдкреНрд░рд┐рдп, рдЖрдЧреНрд░рд╣ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдиреЗ рд╣рдореЗрдВ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдПрдХ рдЧреЗрдо рдореИрдХреЗрдирд┐рдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред
рдкрд░рд┐рдгрд╛рдореА рдЦреЗрд▓ рдХрд╛ рд╡рд░реНрдгрди
рдЕрдзрд┐рдХрд╛рдВрд╢ рдХреЛрдб рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдП рдЧрдП рдереЗ: MyGdxGame:
рдЧреЗрдо , рдЧреЗрдорд╕реНрдХреНрд░реАрди:
рд╕реНрдХреНрд░реАрди рдФрд░ рдЯреНрд░реИрдлрд┐рдХрдЧреИрдо:
рдЕрднрд┐рдиреЗрддрд╛ ред
MyGdxGame - рдЦреЗрд▓ рдХреЗ рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рд╣реИ, рдпрд╣рд╛рдВ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЧреЗрдорд╕реНрдХреНрд░реАрди рдФрд░ рдЧреЗрдо рдкреИрд░рд╛рдореАрдЯрд░ рднреА рдпрд╣рд╛рдВ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ, рдЬреЛ рдЗрд╕ рдХрдХреНрд╖рд╛ рдореЗрдВ рдЙрддреНрддреАрд░реНрдг рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ рд░реВрдк рдореЗрдВред
рдЧреЗрдорд╕реНрдХреНрд░реАрди - рдЧреЗрдо рдЯреНрд░реИрдлрд┐рдХ рдЧреЗрдо рдХрд╛ рдПрдХ рдЕрднрд┐рдиреЗрддрд╛ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рджреГрд╢реНрдп рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рдмрддрд╛рдП рдЧрдП рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд▓рд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП "рд╕реБрдирддрд╛ рд╣реИ" рдФрд░ рдЕрднрд┐рдиреЗрддрд╛ рдЯреНрд░реИрдлрд┐рдХрдЧреЗрдо рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рддрд░реАрдХреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред
рдЯреНрд░реИрдлрд┐рдХрдЧреИрдо - рджреГрд╢реНрдп рдХрд╛ рдореБрдЦреНрдп рдЕрднрд┐рдиреЗрддрд╛ рдЬрд┐рд╕рдореЗрдВ рдЦреЗрд▓ рдХреА рд╕рднреА рдЧрддрд┐ рд╣реЛрддреА рд╣реИ: рдХрд╛рд░реНрдп рдХрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдФрд░ рддрд░реНрдХред
рдпрджреНрдпрдкрд┐
рджреГрд╢реНрдп 2 рдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрднрд┐рдиреЗрддрд╛ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рдкреЗрдбрд╝ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИ, рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд╛рд╕реНрддреБ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, UI / UX рдЧреЗрдо (LibGDX рдкрд░) рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рджреГрд╢реНрдп 2 рдбреА рдПрдХ рдмреЗрд╣рддрд░реАрди рд╡рд┐рдХрд▓реНрдк рд╣реИред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЯреНрд░реИрдлрд┐рдХрдЧреИрдо рдореЗрдВ рдорд┐рд╢реНрд░рд┐рдд рдЙрджрд╛рд╣рд░рдгреЛрдВ рдФрд░ рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдЭрдВрдбреЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рд╢рд╛рд▓ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рдЬреЛ рдирд┐рд░реНрдорд╛рдг рдХреЗ рджреМрд░рд╛рди рдмрдбрд╝реЗ рддрд░реАрдХреЛрдВ рд╕реЗ рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рдереАред рдПрдХ рдЙрджрд╛рд╣рд░рдг:
var isGameActive: Boolean = true set(value) { backgroundActor?.isGameActive = value boostersMap.values.filterNotNull().forEach { it.isGameActive = value } obstaclesMap.values.filterNotNull().forEach { it.isGameActive = value } finishActor.isGameActive = value field = value } private var backgroundActoolbarActor private val pauseButtonActor: PauseButtonActor private val finishActor: FinishActor private var isQuizWon = falser: BackgroundActor? = null private var playerCarActor: PlayerCarActor private var toolbarActor: To private var pointsTime = 0f private var totalTimeElapsed = 0 private val timeToFinishTheGame = 50 private var lastQuizBoosterTime = 0.0f private var lastBoosterTime = 0.0f private val boostersMap = hashMapOf<Long?, BoosterActor?>() private var boosterSpawnedCount = 0 private var totalBoostersEatenCount = 0 private val boosterLimit = 20 private var lastBoosterYPos = 0.0f private var toGenerateBooster = false private var lastObstacleTime = 0.0f private var obstaclesMap = hashMapOf<Long?, ObstacleActor?>()
рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рдРрд╕рд╛ рдирд╣реАрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдмрдЪрд╛рд╡ рдореЗрдВ рдореИрдВ рдХрд╣реВрдВрдЧрд╛ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реБрдЖ рдХреНрдпреЛрдВрдХрд┐:
- рдЖрдкрдХреЛ рдЕрднреА рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдареАрдХ рд╣реИ, рдФрд░ рд╣рдо рдмрд╛рдж рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд╛рде рдЕрдВрддрд┐рдо рдЯреАрдХреЗ рджрд┐рдЦрд╛рдПрдВрдЧреЗред рдХреНрд▓рд╛рд╕рд┐рдХ
- рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ (рдПрдорд╡реАрдкреА / рдПрдорд╡реАрд╕реА / рдПрдорд╡реАрд╡реАрдПрдо, рдЖрджрд┐) рдЧреЗрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЦреЗрд▓ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рд╕рдм рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИред
- рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЦреЗрд▓ рд╕рд░рд▓ рд▓рдЧ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реА рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрд╛рд░реАрдХрд┐рдпреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЦреЗрд▓ рдХреЗ рд▓реЗрдЦрди рдХреЗ рджреМрд░рд╛рди рд╕рд╛рдордиреЗ рдЖрдПред

рдЗрди рд╕рднреА рдХрдард┐рдирд╛рдЗрдпреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдЖрдо рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдПрдХ рдЧреЗрдо рдХреЛ рдЕрдзрд┐рдХ рдХрдард┐рди рдмрдирд╛рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдорд░, рддреЛ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ - "рдЧреЗрдо рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдХреЛрдб рдХреИрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдВ?"ред рд╕рдмрд╕реЗ рдЖрдо рддреМрд░ рдкрд░ рдЪреБрдирд╛ рдЧрдпрд╛ рд╡рд┐рдХрд▓реНрдк рд╡рдВрд╢рд╛рдиреБрдХреНрд░рдо рд╣реИ, рдЬрд╣рд╛рдВ рдкреБрди: рдкреНрд░рдпреЛрдЬреНрдп рдХреЛрдб рдХреЛ рдореВрд▓ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдорд╛рдзрд╛рди рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ рдЬреЛ рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдкреЗрдбрд╝ рдореЗрдВ рдлрд┐рдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ:

рдФрд░ рд╡реЗ рдЖрдо рддреМрд░ рдкрд░ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдкреЗрдбрд╝ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдХрд░ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдЗрд╕ рдмрд╛рд░ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛), рдпрд╛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдХрдХреНрд╖рд╛рдПрдВ рдмреИрд╕рд╛рдЦреА рдХреЗ рд╕рд╛рде рдЯреВрдЯ рдЬрд╛рддреА рд╣реИрдВред

рдИрд╕реАрдПрд╕ рд╣рдорд╛рд░рд╛ рд╕рдм рдХреБрдЫ рд╣реИ
рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд╣рд╛рдиреА рд╣рдорд╛рд░рд╛ рджреВрд╕рд░рд╛ рдкреНрд░реЛрдореЛ рдЧреЗрдо рд╣реИред рд╡рд╣
рдлреНрд▓реИрдкреА рдмрд░реНрдб рдХреА рддрд░рд╣ рдереА, рд▓реЗрдХрд┐рди рдорддрднреЗрджреЛрдВ рдХреЗ рд╕рд╛рде: рдЪрд░рд┐рддреНрд░ рдХреЛ рдЖрд╡рд╛рдЬ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЫрдд рдФрд░ рдлрд░реНрд╢ рдмрд╛рдзрд╛ рдирд╣реАрдВ рдереЗ - рдЖрдк рдЙрдирдХреЗ рд╕рд╛рде рд╕реНрд▓рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рдереЗред
рдЧреЗрдордкреНрд▓реЗ рдФрд░ рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг, рдлреНрд▓реИрдкреА рдмрд░реНрдб рдЦреЗрд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛:


рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЧреЗрдо рдХреЗ рдмреИрдХрд╕реНрдЯреЗрдЬ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрдорд░рд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлрд░реНрд╢ рдФрд░ рдЫрдд рд╡рд░реНрдЧ рдмреНрд▓реЙрдХ рд╣реИрдВ, рдЬреЛ рдХрд┐рдирд╛рд░реЗ рддрдХ рдкрд╣реБрдВрдЪрддреЗ рд╣реИрдВ, рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рджрд┐рдП рдЧрдП рдкреИрдЯрд░реНрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдмрд╛рдзрд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдкреАрдЫреЗ рд╕реЗ рдЖрддреА рд╣реИрдВред рдЦреЗрд▓ рдХрд╛ рдбрд┐рдЬрд╛рдЗрди рдЧреНрд░рд╛рд╣рдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЪреБрдирд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рди рд╣реЛрдВред
рдореБрдЭреЗ рдореЛрдмрд╛рдЗрд▓ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдмрдВрдж рдШрдВрдЯреЗ рдХреЗ рджреМрд░рд╛рди рдЧреЗрдо рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдкрд╕рдВрдж рд╣реИ, рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЧреЗрдо рдкреИрдЯрд░реНрди рдФрд░ рдЦреЗрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдмрд╛рдХреА рд╕рднреА рдЪреАрдЬреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдКрдВрдЧрд╛ред рдореИрдВрдиреЗ
рдЧреЗрдо рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рдкрд░ рдПрдХ рдХрд┐рддрд╛рдм рдкрдврд╝реА, рд▓реЗрдХрд┐рди рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ рдЧреЗрдордкреНрд▓реЗ рд▓реЙрдЬрд┐рдХ рдХрд╛ рдмрд╣реБрдд рд╕рдЪреНрдЪрд╛ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐ рдореИрдВ рдИрд╕реАрдПрд╕ рдореЗрдВ рдирд╣реАрдВ рдЖрдпрд╛ред
рдЗрдХрд╛рдИ рдШрдЯрдХ рдкреНрд░рдгрд╛рд▓реА - рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдЬреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЦреЗрд▓ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреИрдЯрд░реНрди рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░
рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдмрдЬрд╛рдп рд░рдЪрдирд╛ рд╣реИ ред рд░рдЪрдирд╛ рдЖрдкрдХреЛ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдореИрдХреЗрдирд┐рдХреЛрдВ рдХреЛ рдорд┐рд╢реНрд░рдг рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ, рдпрд╣, рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЖрдкрдХреЛ рдЧреЗрдо рдбрд┐рдЬрд╛рдЗрдирд░ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдЧреБрдгреЛрдВ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдХреЛ рд╕реМрдВрдкрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд▓рд┐рдЦрд┐рдд рдирд┐рд░реНрдорд╛рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдЪреВрдВрдХрд┐ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рдкреИрдЯрд░реНрди рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдерд╛, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдЗрд╕реЗ рджреВрд╕рд░реЗ рдЧреЗрдо рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдкреИрдЯрд░реНрди рдХреЗ рдШрдЯрдХреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
- рдШрдЯрдХ - рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛ рд╡рд╛рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ рддрд░реНрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ рд╢реЙрд░реНрдЯрдХрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдШрдЯрдХреЛрдВ рдХреЛ рдЙрджреНрджреЗрд╢реНрдп рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЦреЗрд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рднреА рдЧреБрдгреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЧрддрд┐, рд╕реНрдерд┐рддрд┐, рдмрдирд╛рд╡рдЯ, рд╢рд░реАрд░, рдЖрджрд┐ред рдЖрджрд┐ рдпрд╣ рд╕рдм рдШрдЯрдХреЛрдВ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ рдФрд░ рдлрд┐рд░ рдЧреЗрдо рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред
class VelocityComponent: Component { val velocity = Vector2() }
- рдЗрдХрд╛рдИ - рдЦреЗрд▓ рд╡рд╕реНрддреБрдПрдВ: рдмрд╛рдзрд╛рдПрдВ / рдмреВрд╕реНрдЯрд░ / рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╛рдпрдХ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ред рдЙрдирдХреЗ рдкрд╛рд╕ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд░реНрдЧ рдирд╣реАрдВ рд╣реИрдВ: UltraMegaSuperman: GameUnit, рд▓реЗрдХрд┐рди рдмрд╕ рдШрдЯрдХ рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рд╣реИрдВ ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЗрдХрд╛рдИ рдЬрд┐рд╕рд╕реЗ UltraMegaSuperman рдЕрдкрдиреЗ рдШрдЯрдХреЛрдВ рдФрд░ рдЙрдирдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕реЗрдЯ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореБрдЦреНрдп рдкрд╛рддреНрд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдШрдЯрдХ рдереЗ:
- TextureComponent - рд╕реНрдХреНрд░реАрди рдкрд░ рдХреНрдпрд╛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
- рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдордХрдВрдкреЛрдиреЗрдВрдЯ - рдЧреЗрдо рд╕реНрдкреЗрд╕ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╕реНрдерд┐рддрд┐
- рд╡реЗрд▓реЛрд╕реЛрдХреЛрдореНрдкреЛрдиреЗрдВрдЯ - рдЧреЗрдо рд╕реНрдкреЗрд╕ рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЧрддрд┐
- HeroControllerComponent - рдЗрд╕рдореЗрдВ рдРрд╕реЗ рдорд╛рди рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдирд╛рдпрдХ рдХреА рдЧрддрд┐ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ
- ImmortalityTimeComponent - рдореЗрдВ рдЕрдорд░рддрд╛ рдХрд╛ рд╢реЗрд╖ рд╕рдордп рд╣реЛрддрд╛ рд╣реИ
- рдбрд╛рдпрдирд╛рдорд┐рдХрдХрдВрдкреЛрдиреЗрдВрдЯ - рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХреЗ рдЕрдзреАрди рд╣реИ
- BodyComponent - рдЯрдХрд░рд╛рд╡реЛрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рднреМрддрд┐рдХ 2d рдирд╛рдпрдХ рд╢рд░реАрд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
- рд╕рд┐рд╕реНрдЯрдо - рдкреНрд░рддреНрдпреЗрдХ рдЗрдХрд╛рдИ рдХреЗ рдШрдЯрдХреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣реЛрддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдЗрдХрд╛рдИ рдФрд░ / рдпрд╛ рдШрдЯрдХ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкреИрдЯрд░реНрди рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реЛрдЧрд╛ред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдЙрдиреНрд╣реЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╛рдл рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд╕рд┐рд╕реНрдЯрдо рд╕рднреА рдЧрдВрджреЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ: рдЦреЗрд▓ рдореЗрдВ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░реЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрдкрдиреА рдЧрддрд┐ рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдПрдВ, рдЯрдХрд░рд╛рд╡реЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ, рдЖрдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдЧрддрд┐ рдХреЛ рдмрджрд▓реЗрдВ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреБрд░реБрддреНрд╡рд╛рдХрд░реНрд╖рдг рдХрд╛ рдкреНрд░рднрд╛рд╡ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
override fun processEntity(entity: Entity, deltaTime: Float) { entity.getComponent(VelocityComponent::class.java) .velocity .add(0f, -GRAVITY * deltaTime) }
рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рдЙрди рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрд╣реА рд╣реИ, рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЗрдХрд╛рдИ рдореЗрдВ рд╡реЗрд▓реЛрд╕реЛрдордХрдВрдкреЛрдиреЗрдВрдЯ рдФрд░ рдбрд╛рдпрдиреЗрдорд┐рдХрдХрдВрдкреЛрдиреЗрдВрдЯ рд╡реЗрдЧ рдШрдЯрдХ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдЗрд╕ рдЗрдХрд╛рдИ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЕрдиреНрдпрдерд╛ рдЗрдХрд╛рдИ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рджреВрд╕рд░реЛрдВ рдХреЗ рд╕рд╛рдеред рдПрдХ рдмрдирд╛рд╡рдЯ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ TextureComponent рдмрдирд╛рд╡рдЯ рдХреНрдпрд╛ рд╣реИ рдФрд░ TransformComponent рдХреЛ рдХрд╣рд╛рдБ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд░рд┐рд╡рд╛рд░ рдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдШрдЯрдХреЛрдВ рдХреА рдХрдХреНрд╖рд╛рдПрдВ рдЗрдВрдЧрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред
Family.all(TransformComponent::class.java, TextureComponent::class.java).get()
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рд┐рд╕реНрдЯрдо рдХреЗ рднреАрддрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдХреНрд░рдо рдПрдХ рддреБрд▓рдирд┐рддреНрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрдВрдЬрди рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдХреНрд░рдо рднреА рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рд╣реЛрддрд╛ рд╣реИред
рдЗрдВрдЬрди рддреАрди рдШрдЯрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рдореЗрдВ рдЧреЗрдо рдореЗрдВ рд╕рднреА рд╕рд┐рд╕реНрдЯрдо рдФрд░ рд╕рднреА рдЗрдХрд╛рдЗрдпрд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЦреЗрд▓ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЦреЗрд▓ рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕рд┐рд╕реНрдЯрдо
engine.apply { addSystem(ControlSystem()) addSystem(GravitySystem()) addSystem(renderingSystem) addSystem(MovementSystem()) addSystem(EnemyGeneratorSystem()) }
рдЗрдВрдЬрди рдХреЗ рд╕рд╛рде-рд╕рд╛рде рд╢реБрд░реБрдЖрддреА рдЗрдХрд╛рдЗрдпрд╛рдБ рдЬреЛрдбрд╝реА рдЬрд╛рддреА рд╣реИрдВ,
val hero: Entity = engine.createEntity() engine.addEntity(hero)
PooledEngine :: createEntity -
рдкреВрд▓ рд╕реЗ рдПрдХ рдЗрдХрд╛рдИ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЦреЗрд▓ рдХреЗ рджреМрд░рд╛рди рдЗрдХрд╛рдЗрдпрд╛рдВ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рддрд╛рдХрд┐ рдореЗрдореЛрд░реА рдХреЛ рд▓рд┐рдЯ рди рдХрд░реЗрдВред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЙрдиреНрд╣реЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкреВрд▓ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдкрд░, рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕реА рддрд░рд╣ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдкреВрд▓ рд╕реЗ рдШрдЯрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп, рд╕рднреА рдлрд╝реАрд▓реНрдб рдХреЛ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдореЗрдВ рдЗрд╕ рдШрдЯрдХ рдХреЗ рдкрд┐рдЫрд▓реЗ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛ рд╕рдХрддреА рд╣реИред
рдкреИрдЯрд░реНрди рдХреЗ рдореБрдЦреНрдп рднрд╛рдЧреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдиреАрдЪреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдЗрдВрдЬрди рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдФрд░ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЗрдВрдЬрди рд╕реЗ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рд╛рдорд╛рдиреНрдп рд╕рдВрдЧреНрд░рд╣ рд╕реЗ рдПрдХ рдЪрдпрди рд╣реИ; рдпрд╣ рдЦреЗрд▓ рдХреЗ рджреМрд░рд╛рди рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рд╕рдВрд╕реНрдерд╛рдПрдВ рдФрд░ рдШрдЯрдХ рдмрджрд▓рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЗрдХрд╛рдИ рдореЗрдВ рдЦреЗрд▓ рдореЗрдВ рдЗрд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЗрд╕рдХреЗ рдШрдЯрдХреЛрдВ рдХрд╛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реЛрддрд╛ рд╣реИред
рдЦреЗрд▓ рдЪрдХреНрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рдВрд░рдЪрд┐рдд рд╣реИ:
- LibGDX рд╕реЗ "рдЧреЗрдо рд╕рд╛рдЗрдХрд┐рд▓" рдкреИрдЯрд░реНрди рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЕрдкрдбреЗрдЯ рд╡рд┐рдзрд┐ рдореЗрдВ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╕рдордп рдХрджрдо рдкрд░ рдЗрд╕рдХреА рд╡реГрджреНрдзрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ - рдбреЗрд▓реНрдЯрд╛ рдЯрд╛рдЗрдоред
- рдЕрдЧрд▓рд╛, рд╣рдо рдЗрдВрдЬрди рдХреЛ рд╕рдордп рджреЗрддреЗ рд╣реИрдВред рдФрд░ рд╡рд╣ рдмрджрд▓реЗ рдореЗрдВ, рдПрдХ рдЪрдХреНрд░ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ рдбреЗрд▓реНрдЯрд╛ рдЯрд╛рдЗрдо рд╡рд┐рддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред
for (i in 0 until systems.size()) { val system = systems[i] if (system.checkProcessing()) { system.update(deltaTime) } }
- рдЕрдкрдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрд▓реНрдЯрд╛ рдЯрд╛рдИрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдЙрдиреНрд╣реЗрдВ рдбреАрд▓реНрдЯрд╛ рдЯрд╛рдЗрдо рдореЗрдВ рд▓реЗрддреЗ рд╣реБрдП рдкрд░рд┐рд╡рд░реНрддрди рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред
for (i in 0 until entities.size()) { processEntity(entities[i], deltaTime) }
рдпрд╣ рдЦреЗрд▓ рдХреЗ рд╣рд░ рдЙрдкрд╛рдп рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИред
рдИрд╕реАрдПрд╕ рдХреЗ рд▓рд╛рдн
- рдбреЗрдЯрд╛ рдкрд╣рд▓реЗ рдЖрддрд╛ рд╣реИ ред рдЪреВрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЗрд╡рд▓ рдЙрди рдПрдВрдЯрд┐рдЯреАрдЬ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЙрди рдкрд░ рд╕реВрдЯ рдХрд░рддреА рд╣реИрдВ, рдРрд╕реЗ рдПрдВрдЯрд┐рдЯреАрдЬ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреЗрд╡рд▓ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдЗрд╕рд╕реЗ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдФрд░ рдбрд┐рдмрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдПрдВрдЯрд┐рдЯреАрдЬ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╣реЛрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдиреЗ "рдЯреИрдВрдХ" рдЦреЗрд▓ рдмрдирд╛рдпрд╛ред рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рдЖрдкрдиреЗ рдПрдХ рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ рдЗрд▓рд╛рдХреЗ - "рд▓рд╛рд╡рд╛" рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рдпрджрд┐ рдЯреИрдВрдХ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЧреБрдЬрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд┐рдлрд▓рддрд╛ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдХреА рддрдХрдиреАрдХ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрддреА рд╣реИ, рдЬрд┐рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдХреЗ рдЖрдк рд▓рд╛рд╡рд╛ рдХреЛ рдкрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдРрд╕реЗ рдорд╛рдорд▓реЗ рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЯреИрдВрдХреЛрдВ рдХреЗ рдкреВрд░реНрдг рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рд╛рд╡рд╛ рд╕реНрдерд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг рдорд╛рдирдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдмрд╕ рдЯреИрдВрдХ рдкрд░ рдиреНрдпреВрдирддрдо рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЧреЗрдо рдЗрдВрдЬрди рдореЗрдВ рдПрдХ рдЗрдХрд╛рдИ рдЬреЛрдбрд╝реЗрдВред рдпрд╣ рд╕рдм рд╕реНрдкрд╖реНрдЯ рд▓рдЧрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдк TheTank рд╡рд░реНрдЧ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рдЬреЛ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдкреВрдЫрддрд╛ рд╣реИ: рдХреИрд▓рд┐рдмрд░, рдЧрддрд┐, рд╕реНрдкреНрд░рд╛рдЗрдЯ, рд╢реЙрдЯ рд╕реНрдкреАрдб, рдХреНрд░реВ рдирд╛рдо, рдЖрджрд┐ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд▓рд╛рд╡рд╛ рдЪреМрд░рд╛рд╣реЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╣реИред
- рд╕рд╛рде рд╣реА, рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рдж, рд╣рдо рдорд╣рд╛рди рд▓рдЪреАрд▓реЗрдкрди рдкрд░ рдзреНрдпрд╛рди рджреЗрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рдФрд░ рдирд┐рдХрд╛рд▓рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред
рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрджрд╛рд╣рд░рдгред рд╣рдорд╛рд░реЗ рджреВрд╕рд░реЗ рдкреНрд░реЛрдореЛ рдХрд╛ рдЧреЗрдо рдкрд░рд┐рджреГрд╢реНрдп рдпрд╣ рдерд╛ рдХрд┐ ~ ~ 2 рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдЧрд╛рдиреЗ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдлрд┐рдирд┐рд╢ рд▓рд╛рдЗрди рдореЗрдВ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЧрдпрд╛, рдФрд░ рдЦреЗрд▓ рдиреЗ рдлрд┐рд░ рд╕реЗ рд╕реНрддрд░ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдХреЗ рдЙрд▓рдЯреА рдЧрд┐рдирддреА рд╢реБрд░реВ рдХреА, рд▓реЗрдХрд┐рди рдмрдЪрдд рдЕрдВрдХ рдХреЗ рд╕рд╛рде, рдЬрд┐рд╕рд╕реЗ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЛ рдмреНрд░реЗрдХ рдорд┐рд▓рд╛ред
рдЕрдкреЗрдХреНрд╖рд┐рдд рд░рд┐рд▓реАрдЬ рд╕реЗ рдХреБрдЫ рджрд┐рди рдкрд╣рд▓реЗ рдХрд╛рд░реНрдп рд╕рдорд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ "рдлрд┐рдирд┐рд╢рд┐рдВрдЧ рд▓рд╛рдЗрди рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рд▓реВрдкрд┐рдВрдЧ рдмрд╛рдзрд╛рдУрдВ рдФрд░ рдЧреАрддреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдзреЗ рдШрдВрдЯреЗ рдХреЗ рдирд┐рд░рдВрддрд░ рдЦреЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред" рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдерд╛ - рдпрд╣ рдлрд┐рдирд┐рд╢ рд▓рд╛рдЗрди рдХреЗ рд╕рд╛рд░ рдХреЛ рд╣рдЯрд╛рдиреЗ рдФрд░ рдЦреЗрд▓ рдХреЗ рдЕрдВрдд рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджрд░реНрдн рдкреНрд░рдгрд╛рд▓реА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред - рд╕рднреА рд╡рд┐рдХрд╛рд╕реЛрдВ рдХреЛ рдкрд░рдЦрдирд╛ рдЖрд╕рд╛рди рд╣реИ ред рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рдбреЗрдЯрд╛, рдЖрдк рдХрд┐рд╕реА рднреА рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
- рднрд╡рд┐рд╖реНрдп рдореЗрдВ, рдЦреЗрд▓ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП , рдЖрдк рд╕рд░реНрд╡рд░ рдХреЛ рдЧреЗрдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд╣ рдЙрд╕реА рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рд╣реА рдХреНрд▓рд╛рдЗрдВрдЯ рдЗрдирдкреБрдЯ рдЪрд▓рд╛рдПрдЧрд╛ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдЙрд╕рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдбреЗрдЯрд╛ рдЕрднрд┐рд╕рд░рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдХ рдЪреАрдЯрд░ рд╣реИ рдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЧреЗрдо рдореЗрдВ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд╣реИрдВред
Gamedev рдХреА рдмрдбрд╝реА рджреБрдирд┐рдпрд╛ рдореЗрдВ ECS
рдпреВрдирд┐рдЯреА, рдПрдкрд┐рдХ рдпрд╛ рдХреНрд░рд╛рдпрдЯреЗрдХ рдЬреИрд╕реА рдмрдбрд╝реА рдХрдВрдкрдирд┐рдпрд╛рдВ рдЕрдкрдиреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдЗрд╕ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдПрдХ рдЯрди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рд╡рд╛рд▓реЗ рдЯреВрд▓ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреА рд╣реИрдВред рдореИрдВ рдЖрдкрдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐
рдУрд╡рд░рд╡реЙрдЪ рдореЗрдВ рдЧреЗрдордкреНрд▓реЗ рддрд░реНрдХ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ
рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЗрд╕ рдкрд░ рд░рд┐рдкреЛрд░реНрдЯ рджреЗрдЦреЗрдВ
рдмреЗрд╣рддрд░ рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ
рдЬреАрдердм рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛
рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ ред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рд╡рд┐рд╖рдп рдкрд░ рднреА: