Функциональность перетаскивания в моей игре. (котлин, студия Android)Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Функциональность перетаскивания в моей игре. (котлин, студия Android)

Сообщение Anonymous »

Возникли проблемы, поскольку блок не размещается после отпускания в игровой сетке. OnDragEnd(), похоже, не срабатывает. logcat также прилагается. Я знаю, что, вероятно, мне не хватает чего-то простого.
2025-12-04 14:35:03.132 25545-25545 cr_CachingUmaRecorder com.betterblocks Я очистил 19 образцов из 19 гистограмм, 0 образцов были удалены.
2025-12-04 14:35:35.505 25545-25545 🔍 DROP com.betterblocks D END - Использование локального снимка row=null col=null valid=false
2025-12-04 14:35:35.505 25545-25545 🔍 DROP com.betterblocks E ❌ УСЛОВИЯ НЕ ВЫПОЛНЕНЫ – Блок НЕ будет размещен

@Composable
fun BlockPreviewCard(
block: Block,
isSelected: Boolean,
onClick: (Block) -> Unit,
onDragStart: () -> Unit,
onDrag: (Offset) -> Unit,
onDragEnd: () -> Unit,
cellSize: Dp
) {
val borderColor = if (isSelected) Color.White else Color.Gray.copy(alpha = 0.3f)
val borderWidth = if (isSelected) 3.dp else 1.dp

Card(
shape = RoundedCornerShape(10.dp),
border = BorderStroke(borderWidth, borderColor),
colors = CardDefaults.cardColors(containerColor = DeepBlue.copy(alpha = 0.5f)),
elevation = CardDefaults.cardElevation(defaultElevation = if (isSelected) 8.dp else 4.dp),
modifier = Modifier
.wrapContentSize()
.padding(4.dp)
.pointerInput(block) {
forEachGesture {
coroutineScope {
awaitPointerEventScope {
val down = awaitFirstDown(requireUnconsumed = false)
val drag = awaitTouchSlopOrCancellation(down.id) { change, _ ->
change.consume()
}

if (drag != null) {
Log.d("🎮 GESTURE", "onDragStart FIRED for ${block.name}")
onDragStart()
drag(drag.id) {
onDrag(it.positionChange())
it.consume()
}
Log.d("🎮 GESTURE", "onDragEnd FIRED for ${block.name}")
onDragEnd()
} else {
Log.d("🎮 GESTURE", "onTap FIRED for ${block.name}")
onClick(block)
}
}
}
}
}
) {
BlockShapeDisplay(block, cellSize)
}
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... oid-studio
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»