Прогулки с 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
Информация
7 мая 2024 г. 8:05:18
00:00:46
Похожие видео