实现按键自动请求空闲位置
This commit is contained in:
parent
02693523a3
commit
ecdfd507d9
@ -400,10 +400,31 @@ namespace AxibugEmuOnline.Client.Manager
|
|||||||
// OverlayManager.PopTip($"[{PlayerName}]进入房间,手柄位:P{i}");
|
// OverlayManager.PopTip($"[{PlayerName}]进入房间,手柄位:P{i}");
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 发送修改玩家槽位
|
/// 发送修改玩家槽位,但是增量
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="dictSlotIdx2LocalJoyIdx">玩家占用房间GamePlaySlot和LocalJoyIdx字典</param>
|
||||||
|
public void SendChangePlaySlotIdxWithJoyIdx(uint localJoyIndex, uint slotIndex)
|
||||||
|
{
|
||||||
|
if (!App.roomMgr.InRoom) return;
|
||||||
|
|
||||||
|
Dictionary<uint, uint> temp = new Dictionary<uint, uint>();
|
||||||
|
for (int i = 0; i < App.roomMgr.mineRoomMiniInfo.GamePlaySlotList.Count; i++)
|
||||||
|
{
|
||||||
|
var item = App.roomMgr.mineRoomMiniInfo.GamePlaySlotList[i];
|
||||||
|
|
||||||
|
if (item.PlayerUID <= 0) continue;
|
||||||
|
if (item.PlayerUID != App.user.userdata.UID) return;
|
||||||
|
temp[(uint)i] = (uint)item.PlayerLocalJoyIdx;
|
||||||
|
}
|
||||||
|
temp[slotIndex] = localJoyIndex;
|
||||||
|
|
||||||
|
SendChangePlaySlotIdxWithJoyIdx(temp);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 发送修改玩家槽位,全量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="dictSlotIdx2LocalJoyIdx">玩家占用房间GamePlaySlot和LocalJoyIdx字典</param>
|
/// <param name="dictSlotIdx2LocalJoyIdx">玩家占用房间GamePlaySlot和LocalJoyIdx字典</param>
|
||||||
public void SendChangePlaySlotIdxWithJoyIdx(Dictionary<uint, uint> dictSlotIdx2LocalJoyIdx)
|
public void SendChangePlaySlotIdxWithJoyIdx(Dictionary<uint, uint> dictSlotIdx2LocalJoyIdx)
|
||||||
|
@ -20,16 +20,16 @@ namespace AxibugEmuOnline.Client
|
|||||||
m_states[0] = m_states[1] = m_states[2] = m_states[3] = 0;
|
m_states[0] = m_states[1] = m_states[2] = m_states[3] = 0;
|
||||||
|
|
||||||
if (Controller0.ConnectSlot.HasValue) m_states[Controller0.ConnectSlot.Value] = Controller0.GetButtons();
|
if (Controller0.ConnectSlot.HasValue) m_states[Controller0.ConnectSlot.Value] = Controller0.GetButtons();
|
||||||
else if (Controller0.AnyButtonPressed()) Eventer.Instance.PostEvent(EEvent.OnLocalJoyDesireInvert, 0);
|
else if (Controller0.AnyButtonDown()) Eventer.Instance.PostEvent(EEvent.OnLocalJoyDesireInvert, 0);
|
||||||
|
|
||||||
if (Controller1.ConnectSlot.HasValue) m_states[Controller1.ConnectSlot.Value] = Controller1.GetButtons();
|
if (Controller1.ConnectSlot.HasValue) m_states[Controller1.ConnectSlot.Value] = Controller1.GetButtons();
|
||||||
else if (Controller1.AnyButtonPressed()) Eventer.Instance.PostEvent(EEvent.OnLocalJoyDesireInvert, 1);
|
else if (Controller1.AnyButtonDown()) Eventer.Instance.PostEvent(EEvent.OnLocalJoyDesireInvert, 1);
|
||||||
|
|
||||||
if (Controller2.ConnectSlot.HasValue) m_states[Controller2.ConnectSlot.Value] = Controller2.GetButtons();
|
if (Controller2.ConnectSlot.HasValue) m_states[Controller2.ConnectSlot.Value] = Controller2.GetButtons();
|
||||||
else if (Controller2.AnyButtonPressed()) Eventer.Instance.PostEvent(EEvent.OnLocalJoyDesireInvert, 2);
|
else if (Controller2.AnyButtonDown()) Eventer.Instance.PostEvent(EEvent.OnLocalJoyDesireInvert, 2);
|
||||||
|
|
||||||
if (Controller3.ConnectSlot.HasValue) m_states[Controller3.ConnectSlot.Value] = Controller3.GetButtons();
|
if (Controller3.ConnectSlot.HasValue) m_states[Controller3.ConnectSlot.Value] = Controller3.GetButtons();
|
||||||
else if (Controller3.AnyButtonPressed()) Eventer.Instance.PostEvent(EEvent.OnLocalJoyDesireInvert, 3);
|
else if (Controller3.AnyButtonDown()) Eventer.Instance.PostEvent(EEvent.OnLocalJoyDesireInvert, 3);
|
||||||
|
|
||||||
var result = new ControllerState(m_states);
|
var result = new ControllerState(m_states);
|
||||||
return result;
|
return result;
|
||||||
@ -151,18 +151,18 @@ namespace AxibugEmuOnline.Client
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool AnyButtonPressed()
|
public bool AnyButtonDown()
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
UP.IsPressing ||
|
UP.IsDown ||
|
||||||
DOWN.IsPressing ||
|
DOWN.IsDown ||
|
||||||
LEFT.IsPressing ||
|
LEFT.IsDown ||
|
||||||
RIGHT.IsPressing ||
|
RIGHT.IsDown ||
|
||||||
A.IsPressing ||
|
A.IsDown ||
|
||||||
B.IsPressing ||
|
B.IsDown ||
|
||||||
SELECT.IsPressing ||
|
SELECT.IsDown ||
|
||||||
START.IsPressing ||
|
START.IsDown ||
|
||||||
MIC.IsPressing;
|
MIC.IsDown;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static KeyListener GetKey(int controllerInput, EnumButtonType nesConBtnType)
|
public static KeyListener GetKey(int controllerInput, EnumButtonType nesConBtnType)
|
||||||
@ -195,8 +195,10 @@ namespace AxibugEmuOnline.Client
|
|||||||
/// <summary> 按键监听器 </summary>
|
/// <summary> 按键监听器 </summary>
|
||||||
KeyListener m_keyListener;
|
KeyListener m_keyListener;
|
||||||
|
|
||||||
/// <summary> 指示按钮是否被按下 </summary>
|
/// <summary> 指示按钮是否正在按下状态 </summary>
|
||||||
public bool IsPressing => m_keyListener.IsPressing();
|
public bool IsPressing => m_keyListener.IsPressing();
|
||||||
|
/// <summary> 指示按钮是否被按下 </summary>
|
||||||
|
public bool IsDown => m_keyListener.IsDown();
|
||||||
|
|
||||||
public Button(Controller controller, EnumButtonType buttonType)
|
public Button(Controller controller, EnumButtonType buttonType)
|
||||||
{
|
{
|
||||||
@ -212,7 +214,7 @@ namespace AxibugEmuOnline.Client
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public EnumButtonType SampleKey()
|
public EnumButtonType SampleKey()
|
||||||
{
|
{
|
||||||
return m_keyListener.IsPressing() ? m_buttonType : 0;
|
return IsPressing ? m_buttonType : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CreateListener()
|
private void CreateListener()
|
||||||
@ -246,6 +248,10 @@ namespace AxibugEmuOnline.Client
|
|||||||
{
|
{
|
||||||
return Input.GetKey(m_key);
|
return Input.GetKey(m_key);
|
||||||
}
|
}
|
||||||
|
public bool IsDown()
|
||||||
|
{
|
||||||
|
return Input.GetKeyDown(m_key);
|
||||||
|
}
|
||||||
|
|
||||||
public override string ToString()
|
public override string ToString()
|
||||||
{
|
{
|
||||||
|
8
AxibugEmuOnline.Client/Assets/Script/AppMain/PSVita.meta
Normal file
8
AxibugEmuOnline.Client/Assets/Script/AppMain/PSVita.meta
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4a4a14412f1bcc844bbd2c9bccf50db2
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
@ -27,7 +27,7 @@ public class ControllerInfoPanel : MonoBehaviour
|
|||||||
|
|
||||||
//找到第一个空闲手柄插槽
|
//找到第一个空闲手柄插槽
|
||||||
var freeSlotIndex = s_freeSlots[0];
|
var freeSlotIndex = s_freeSlots[0];
|
||||||
//App.roomMgr.SendRoomSingelPlayerInput
|
App.roomMgr.SendChangePlaySlotIdxWithJoyIdx((uint)joyIndex, (uint)freeSlotIndex);
|
||||||
}
|
}
|
||||||
else //不在房间中,直接设置
|
else //不在房间中,直接设置
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user