Drag-and-Drop-Funktionalität in meinem Spiel. (Kotlin, Android Studio)Android

Forum für diejenigen, die für Android programmieren
Anonymous
 Drag-and-Drop-Funktionalität in meinem Spiel. (Kotlin, Android Studio)

Post by Anonymous »

Es gibt Probleme, weil der Block nach dem Loslassen auf dem Gamegrid nicht platziert werden kann. OnDragEnd() scheint nicht auszulösen. logcat ist ebenfalls beigefügt. Ich weiß, dass es wahrscheinlich etwas Einfaches ist, das mir fehlt.
2025-12-04 14:35:03.132 25545-25545 cr_CachingUmaRecorder com.betterblocks Ich habe 19 Proben aus 19 Histogrammen gelöscht, 0 Proben wurden gelöscht.
2025-12-04 14:35:35.505 25545-25545 🔍 DROP com.betterblocks D END – Verwendung eines lokalen Snapshots row=null col=null valid=false
2025-12-04 14:35:35.505 25545-25545 🔍 DROP com.betterblocks E ❌ BEDINGUNGEN NICHT ERFÜLLT – Block wird NICHT platziert

Code: Select all

@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)
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post