Загрузка страницы

Прогулка с KorGE: Взаимодействие Спрайтов за 1 минуту

🎯 Новая серия коротких видео **Прогулки с KorGE** 👉 Добавим взаимодействие спрайтов! 👉 Не забывайте подписаться на канал и поставить лайк =) 👉 Много разборов по программированию https://t.me/CodeEveryDayWithMe/ 👉 Ссылка на сайт движка KorGE https://docs.korge.org/getting-started/ 👉 Графику можно скачать: Sunny land https://ansimuz.itch.io/sunny-land-pixel-game-art 👉 Пример кода из видео ``` import korlibs.event.* import korlibs.image.atlas.* import korlibs.time.* import korlibs.korge.* import korlibs.korge.scene.* import korlibs.korge.view.* import korlibs.image.color.* import korlibs.io.file.std.* import korlibs.korge.animate.* import korlibs.korge.input.* import korlibs.korge.view.collision.* import korlibs.math.geom.* import kotlin.random.* suspend fun main() = Korge( title = "Code Every Day - Прогулки с KorGE - 3", windowSize = Size(512, 512), backgroundColor = Colors["#2b2b2b"] ) { val sceneContainer = sceneContainer() sceneContainer.changeTo { MyScene() } } class MyScene : Scene() { override suspend fun SContainer.sceneMain() { val atlas = resourcesVfs["atlas.json"] .readAtlas() val spriteEagle = displaySprite( atlas = atlas, name = SpriteNames.eagle ) controlByKeys(spriteEagle) controlDragAndDrop(spriteEagle) val spriteCherry = displaySprite( atlas = atlas, name = SpriteNames.cherry ) checkCollision(spriteEagle, spriteCherry) } } private fun Container.checkCollision( sprite1: Sprite, sprite2: Sprite ) { sprite1.onCollision { view -﹥ when (view.name) { SpriteNames.cherry -﹥ { removeChild(view) } } } } private var debugText: Text? = null private fun Container.debugLog( message: String ) { when (debugText) { null -﹥ debugText = text(text = message) else -﹥ debugText?.text = message } } private fun Container.controlDragAndDrop( sprite: Sprite ) { sprite.draggableCloseable( selector = sprite, autoMove = true ) { draggableInfo -﹥ val x = draggableInfo.viewNextX val y = draggableInfo.viewNextY debugLog( message = "Drag and Drop " + "point = $x, $y" ) } } private fun Container.controlByKeys( sprite: Sprite ) { val movingDiffs = 50f val blockOnClick: (toX: Float, toY: Float) -﹥ Unit = { toX, toY -﹥ val animator = animator(parallel = false) animator.moveTo( view = sprite, x = toX.toInt(), y = toY.toInt() ) } keys { down(Key.LEFT) { val x = sprite.x.toFloat() - movingDiffs val y = sprite.y.toFloat() blockOnClick(x, y) } down(Key.RIGHT) { val x = sprite.x.toFloat() + movingDiffs val y = sprite.y.toFloat() blockOnClick(x, y) } down(Key.UP) { val x = sprite.x.toFloat() val y = sprite.y.toFloat() - movingDiffs blockOnClick(x, y) } down(Key.DOWN) { val x = sprite.x.toFloat() val y = sprite.y.toFloat() + movingDiffs blockOnClick(x, y) } } } private fun Container.displaySprite( atlas: Atlas, name: String, point: Point = getRandomPoint() ): Sprite { val animation = atlas.getSpriteAnimation( name ) val sprite = sprite(animation) sprite.position(point) sprite.scaleXY = Scale(5) sprite.name = name sprite.playAnimationLooped( spriteDisplayTime = TimeSpan(200.0) ) return sprite } private fun getRandomPoint(): Point { val x = Random.nextDouble(0.0, 500.0) val y = Random.nextDouble(0.0, 500.0) return Point(x, y) } object SpriteNames { const val eagle = "eagle" const val cherry = "cherry" } ```

Видео Прогулка с KorGE: Взаимодействие Спрайтов за 1 минуту автора CodeEveryDay ?
Показать
Информация
10 мая 2024 г. 19:18:15
00:01:00
Похожие видео
August Prefab 3_T1_C1August Prefab 3_T1_C1Программируем роборуку сжимать клешнюПрограммируем роборуку сжимать клешнюСоздаем побег в Roblox - Этап 4. Замедляем игрока при прохождении через балкиСоздаем побег в Roblox - Этап 4. Замедляем игрока при прохождении через балкиПрогулка с KorGE: Управление спрайтом с клавиатуры за 1 минутуПрогулка с KorGE: Управление спрайтом с клавиатуры за 1 минуту02_Staircase Modeling02_Staircase ModelingСмартфон Motorola Edge 40 Neo - Обзор Смартфона Motorola Edge 40 8/256GB Eclipse Black.Смартфон Motorola Edge 40 Neo - Обзор Смартфона Motorola Edge 40 8/256GB Eclipse Black.C6 Scifi Cargo Part 6C6 Scifi Cargo Part 6iPad и iPad Pro: Эволюция Технологий с 2010 по 2024 год. Обзор планшета iPad. История AppleiPad и iPad Pro: Эволюция Технологий с 2010 по 2024 год. Обзор планшета iPad. История AppleПрограммируем Побег: Сбор крестика и повышение здоровье игрокаПрограммируем Побег: Сбор крестика и повышение здоровье игрокаУчим роборуку махать. Программируем в mBlock (Enjoy Robotics)Учим роборуку махать. Программируем в mBlock (Enjoy Robotics)#11 Восстановление после сбоя#11 Восстановление после сбояПрограммируем телепортацию по кнопке за 1 минуту в RobloxПрограммируем телепортацию по кнопке за 1 минуту в RobloxПрограммируем поворот роборуки Arduino в mBlock (Enjoy Robotics)Программируем поворот роборуки Arduino в mBlock (Enjoy Robotics)Прогулки с KorGE: Программируем летящего орлаПрогулки с KorGE: Программируем летящего орлаПрограммируем плавное изменение размера персонажа в RobloxПрограммируем плавное изменение размера персонажа в RobloxPioneer SX-205RDSPioneer SX-205RDS1000009299.mp41000009299.mp4Смартфон Snapdragon 8 gen 3 - Обзор топовых смартфонов 2024Смартфон Snapdragon 8 gen 3 - Обзор топовых смартфонов 2024Программируем пушку для игрока в Roblox за минутуПрограммируем пушку для игрока в Roblox за минутуА ваши переписки НИКТО НЕ ЧИТАЕТ? Всё про безопасность и конфиденциальность в TelegramА ваши переписки НИКТО НЕ ЧИТАЕТ? Всё про безопасность и конфиденциальность в Telegram
Яндекс.Метрика