Прогулки с 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
Видео Прогулки с KorGE: Добавляем Drag And Drop для Орла за 45 секунд (Kotlin GameDev) автора CodeEveryDay
Показать
Похожие видео
Программируем Побег: Сбор крестика и повышение здоровье игрокаSONY TA-1120, SONY PS-4750, DYNACO-A25Программируем телепортацию по кнопке за 1 минуту в RobloxНовый проект2Triceratops #UE5Roblox: Делаем прототип игры вид сверху за 1 минутуПрограммируем роборуку сжимать клешнюSubir audiolibrosПрогулка с KorGE: Управление спрайтом с клавиатуры за 1 минутуПрограммируем изменение размера игрока с bounce интерполяторомЕдиный кабинет для продаж на маркетплейсахСоздаем коридор со сдвигающимися стенками за 58 секунд в Roblox. Программируем побег.БЕСПЛАТНЫЙ КУРС ПО АЛГОТРЕЙДИНГУ - ЗАПУСК НА РЕАЛЕПрогулка с KorGE: Взаимодействие Спрайтов за 1 минутуСоздаем батут в Roblox за 45 секундНАВТЕЛЕКОМ СМАРТ+СИГНАЛ 2435 как настроить кан шину в ручную разбор CAN сообщений своими рукамиБесплатные приложения для создания рилс, сохраняй и тестируй👩💻 #маркетинг #соцсети #блог #шортсПрограммируем Сальто для игрока в Roblox за 1 минутуКак зайти в личный кабинет продуктов ZeeQuestПрораммируем полет игрока и управление им с клавиатуры в Roblox