屏幕问题
This commit is contained in:
@@ -4,6 +4,7 @@ using AibisDream.Kit;
|
||||
using AibisDream.Utility;
|
||||
using System.Linq;
|
||||
using AibisDream.Framework;
|
||||
using System;
|
||||
|
||||
namespace AibisDream
|
||||
{
|
||||
@@ -107,8 +108,8 @@ namespace AibisDream
|
||||
{
|
||||
// 由面板触发
|
||||
blockPuzzlePanel.Panel.OnDeviceSelected += OnPanelShapeSelected;
|
||||
blockPuzzlePanel.OnSubmit += SubmitGameResult;
|
||||
// blockPuzzlePanel.
|
||||
blockPuzzlePanel.Panel.OnSubmit.AddListener(SubmitGameResult);
|
||||
blockPuzzlePanel.Panel.OnPopUp.AddListener(PopUpShape);
|
||||
|
||||
// 由网格触发
|
||||
grid.OnShapePlaced += PreCheckGameState;
|
||||
@@ -116,7 +117,7 @@ namespace AibisDream
|
||||
// 由Shape触发
|
||||
shapeFactory.OnDragStart += OnShapeDragStart;
|
||||
shapeFactory.OnDragEnd += OnShapeDragEnd;
|
||||
// shapeFactory.OnDragUpdate += OnShapeRecycled;
|
||||
shapeFactory.OnDragUpdate += OnShapeDragUpdate;
|
||||
}
|
||||
|
||||
private void OnPanelShapeSelected(BlockShapeInfo shapeData)
|
||||
@@ -139,19 +140,60 @@ namespace AibisDream
|
||||
// 更新选中图形
|
||||
|
||||
// 回收抽屉高亮,半开
|
||||
blockPuzzlePanel.Panel.SetRecycleAvailable(true);
|
||||
shapeRecycleSlot.PreRecycle();
|
||||
shapeRecycleSlot.SetRecycleAvaliable(true);
|
||||
}
|
||||
|
||||
public void OnShapeDragEnd(IBlockShape blockShape, bool isPlaced)
|
||||
{
|
||||
if (isPlaced)
|
||||
{
|
||||
// 关闭回收抽屉
|
||||
blockPuzzlePanel.Panel.SetRecycleAvailable(false);
|
||||
}
|
||||
//
|
||||
|
||||
// TODO: 如果吸附到回收处,应该播放动画,并提示回收成功
|
||||
}
|
||||
|
||||
public void OnShapeDragUpdate(IBlockShape blockShape)
|
||||
{
|
||||
// 更新回收槽状态
|
||||
shapeRecycleSlot.UpdateSlotState(blockShape);
|
||||
}
|
||||
|
||||
public void PopUpShape()
|
||||
{
|
||||
if (selectedShapeName == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// 弹出形状
|
||||
var blockShape = shapeFactory.CreateBlockShape(selectedShapeName);
|
||||
shapeRecycleSlot.PopUpShape(blockShape);
|
||||
blockShape.GetComponent<ShapeDragger>().CurrentState = DragState.Idle;
|
||||
|
||||
// 删除按钮
|
||||
blockPuzzlePanel.Panel.RemoveDeviceButton(selectedShapeName);
|
||||
selectedShapeName = null;
|
||||
blockPuzzlePanel.ClearShapeInScreen();
|
||||
}
|
||||
|
||||
// --------------------- 吸附校验 ---------------------
|
||||
|
||||
public bool TrySnapToRecycleSlot(BlockShape blockShape)
|
||||
{
|
||||
// 先判断是否吸附到回收槽
|
||||
if (shapeRecycleSlot.CurrentState == PositionState.Open)
|
||||
{
|
||||
shapeRecycleSlot.RecycleShape(blockShape);
|
||||
// TODO: 向面板添加回收的形状
|
||||
blockPuzzlePanel.Panel.OnDeviceRecycle(blockShape);
|
||||
// 延时后进行销毁
|
||||
ActionKit.Delay(1.0f, () => {
|
||||
shapeFactory.RecycleBlockShape(blockShape);
|
||||
}).Start(this);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// ---------------- 编辑器状态逻辑 ----------------
|
||||
|
||||
/// <summary>
|
||||
@@ -201,6 +243,10 @@ namespace AibisDream
|
||||
|
||||
public void CreateShapeInEditor(string shapeKey)
|
||||
{
|
||||
if (shapeFactory == null)
|
||||
{
|
||||
shapeFactory = new ShapeFactory(shapeRoot);
|
||||
}
|
||||
shapeFactory.CreateBlockShape(shapeKey);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user