Прогулка с 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 ?
Видео Прогулка с KorGE: Взаимодействие Спрайтов за 1 минуту автора CodeEveryDay ?
Показать
Похожие видео
![August Prefab 3_T1_C1](http://pic.rutubelist.ru/video/bf/a3/bfa39ce6eeb5223c051e29e824b173d5.jpg?size=s)
![Программируем роборуку сжимать клешню](http://pic.rutubelist.ru/video/b6/55/b65527e7807e3846a82476435d04870e.jpg?size=s)
![Создаем побег в Roblox - Этап 4. Замедляем игрока при прохождении через балки](http://pic.rutubelist.ru/video/41/f2/41f2e359fb86a60114801d19b8a95775.jpg?size=s)
![Прогулка с KorGE: Управление спрайтом с клавиатуры за 1 минуту](http://pic.rutubelist.ru/video/f0/b9/f0b93ad1c520335d33b79186c5ff351a.jpg?size=s)
![02_Staircase Modeling](http://pic.rutubelist.ru/video/92/f4/92f4e64e999b8c4ed3f91b095fefc76f.jpg?size=s)
![Смартфон Motorola Edge 40 Neo - Обзор Смартфона Motorola Edge 40 8/256GB Eclipse Black.](http://pic.rutubelist.ru/video/ab/73/ab730ca0e51a4d2c3b92e3dc3983fae4.jpg?size=s)
![C6 Scifi Cargo Part 6](http://pic.rutubelist.ru/video/b3/60/b360fa111c609e53bd103952d00e5316.jpg?size=s)
![iPad и iPad Pro: Эволюция Технологий с 2010 по 2024 год. Обзор планшета iPad. История Apple](http://pic.rutubelist.ru/video/d5/1c/d51c532b27c1ac92429d3663cfa6874d.jpg?size=s)
![Программируем Побег: Сбор крестика и повышение здоровье игрока](http://pic.rutubelist.ru/video/18/d5/18d56f75cee6e05a2f00e0531fd370ab.jpg?size=s)
![Учим роборуку махать. Программируем в mBlock (Enjoy Robotics)](http://pic.rutubelist.ru/video/ae/ca/aecad16cebc4312bbe71f0183098560f.jpg?size=s)
![#11 Восстановление после сбоя](http://pic.rutubelist.ru/video/09/df/09dfea01955b4f0bafdef188e3f121e1.jpg?size=s)
![Программируем телепортацию по кнопке за 1 минуту в Roblox](http://pic.rutubelist.ru/video/fd/36/fd36c82d9d53a32c82ede322897dd399.jpg?size=s)
![Программируем поворот роборуки Arduino в mBlock (Enjoy Robotics)](http://pic.rutubelist.ru/video/f2/0d/f20d210e2d17871f32aa6700752b1e53.jpg?size=s)
![Прогулки с KorGE: Программируем летящего орла](http://pic.rutubelist.ru/video/7a/2d/7a2d680009f2c51b11a65c2a6d5a4523.jpg?size=s)
![Программируем плавное изменение размера персонажа в Roblox](http://pic.rutubelist.ru/video/12/1c/121c9f30879aaceb42cfa70c3f1ff53c.jpg?size=s)
![Pioneer SX-205RDS](http://pic.rutubelist.ru/video/1c/55/1c55b530856c5dccc6bdfc0d8c94b1ca.jpg?size=s)
![1000009299.mp4](http://pic.rutubelist.ru/video/4a/24/4a2439c79bbd5fedcc143b6a4fdb3274.jpg?size=s)
![Смартфон Snapdragon 8 gen 3 - Обзор топовых смартфонов 2024](http://pic.rutubelist.ru/video/68/f2/68f2dce9d9e5fbea22cde0fed87198e0.jpg?size=s)
![Программируем пушку для игрока в Roblox за минуту](http://pic.rutubelist.ru/video/64/58/645805d8778fecbc6c5627ec6aa0255c.jpg?size=s)
![А ваши переписки НИКТО НЕ ЧИТАЕТ? Всё про безопасность и конфиденциальность в Telegram](http://pic.rutubelist.ru/video/97/6b/976b8c4299eee1bc8158e7d2cfdfd421.png?size=s)