Загрузка...

Прогулки с KorGE: Добавляем Drag And Drop для Орла за 45 секунд (Kotlin GameDev)

🎯 Новая серия коротких видео **Прогулки с KorGE** 👉 Добавим перетаскивание Орла через Drag And Drop! 👉 Не забывайте подписаться на канал и поставить лайк =) 👉 Много разборов по программированию 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.math.geom.* 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 sprite = displaySprite(atlas) controlByKeys(sprite) controlDragAndDrop(sprite) } } 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 ): Sprite { val animation = atlas.getSpriteAnimation( "eagle" ) val sprite = sprite(animation) sprite.position(Point(200f, 200f)) sprite.scaleXY = Scale(5) sprite.playAnimationLooped( spriteDisplayTime = TimeSpan(200.0) ) return sprite } ```

Видео Прогулки с KorGE: Добавляем Drag And Drop для Орла за 45 секунд (Kotlin GameDev) автора CodeEveryDay
Яндекс.Метрика

На информационно-развлекательном портале SALDA.WS применяются cookie-файлы. Нажимая кнопку Принять, вы подтверждаете свое согласие на их использование.

Об использовании CookiesПринять