<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>拖拽交互 on PlumePHP</title><link>https://plumephp.com/tags/%E6%8B%96%E6%8B%BD%E4%BA%A4%E4%BA%92/</link><description>Recent content in 拖拽交互 on PlumePHP</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Wed, 03 Jun 2026 18:11:00 +0800</lastBuildDate><atom:link href="https://plumephp.com/tags/%E6%8B%96%E6%8B%BD%E4%BA%A4%E4%BA%92/index.xml" rel="self" type="application/rss+xml"/><item><title>Phaser 卡牌战斗拖拽系统：出牌不是把 Sprite 拖到敌人身上</title><link>https://plumephp.com/phaser-card-battle-drag-drop-2026/</link><pubDate>Wed, 03 Jun 2026 18:11:00 +0800</pubDate><guid>https://plumephp.com/phaser-card-battle-drag-drop-2026/</guid><description>&lt;h2 id="卡牌拖拽的难点在出牌判定"&gt;卡牌拖拽的难点在出牌判定&lt;/h2&gt;
&lt;p&gt;Phaser 做卡牌战斗很直观：卡牌是 Sprite 或 Container，手牌区是一排对象，拖到敌人身上释放，就触发技能。原型阶段这样写很快，但上线项目很快会遇到更多规则：费用不够不能出，沉默状态不能出，某些牌必须选友方，某些牌不需要目标，拖到空地要取消，动画播放期间不能连点，服务端否定后要回滚。&lt;/p&gt;</description></item><item><title>Godot 背包拖拽与堆叠拆分：一个格子移动背后有很多状态</title><link>https://plumephp.com/godot-inventory-drag-stack-split-2026/</link><pubDate>Thu, 23 Apr 2026 13:18:00 +0800</pubDate><guid>https://plumephp.com/godot-inventory-drag-stack-split-2026/</guid><description>&lt;h2 id="背包拖拽不是-ui-小功能"&gt;背包拖拽不是 UI 小功能&lt;/h2&gt;
&lt;p&gt;背包系统的拖拽看起来只是把图标从一个格子拖到另一个格子，但它连接了物品数据、堆叠规则、装备槽、快捷栏、商店、仓库、网络校验和手柄操作。只在 Control 节点里写拖拽，很快会遇到各种边界：两个半堆药水合并到上限后剩余怎么办，拖到装备槽失败图标回哪儿，快捷栏引用的物品被移动后是否更新，服务端拒绝移动时 UI 如何回滚，拆分弹窗打开时玩家又切换页面怎么办。&lt;/p&gt;</description></item></channel></rss>