实现按键自动请求空闲位置
This commit is contained in:
parent
02693523a3
commit
ecdfd507d9
@ -400,10 +400,31 @@ namespace AxibugEmuOnline.Client.Manager
|
||||
// OverlayManager.PopTip($"[{PlayerName}]进入房间,手柄位:P{i}");
|
||||
// }
|
||||
//}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// <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>
|
||||
/// <param name="dictSlotIdx2LocalJoyIdx">玩家占用房间GamePlaySlot和LocalJoyIdx字典</param>
|
||||
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;
|
||||
|
||||
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();
|
||||
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();
|
||||
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();
|
||||
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);
|
||||
return result;
|
||||
@ -151,18 +151,18 @@ namespace AxibugEmuOnline.Client
|
||||
return res;
|
||||
}
|
||||
|
||||
public bool AnyButtonPressed()
|
||||
public bool AnyButtonDown()
|
||||
{
|
||||
return
|
||||
UP.IsPressing ||
|
||||
DOWN.IsPressing ||
|
||||
LEFT.IsPressing ||
|
||||
RIGHT.IsPressing ||
|
||||
A.IsPressing ||
|
||||
B.IsPressing ||
|
||||
SELECT.IsPressing ||
|
||||
START.IsPressing ||
|
||||
MIC.IsPressing;
|
||||
UP.IsDown ||
|
||||
DOWN.IsDown ||
|
||||
LEFT.IsDown ||
|
||||
RIGHT.IsDown ||
|
||||
A.IsDown ||
|
||||
B.IsDown ||
|
||||
SELECT.IsDown ||
|
||||
START.IsDown ||
|
||||
MIC.IsDown;
|
||||
}
|
||||
|
||||
public static KeyListener GetKey(int controllerInput, EnumButtonType nesConBtnType)
|
||||
@ -195,8 +195,10 @@ namespace AxibugEmuOnline.Client
|
||||
/// <summary> 按键监听器 </summary>
|
||||
KeyListener m_keyListener;
|
||||
|
||||
/// <summary> 指示按钮是否被按下 </summary>
|
||||
/// <summary> 指示按钮是否正在按下状态 </summary>
|
||||
public bool IsPressing => m_keyListener.IsPressing();
|
||||
/// <summary> 指示按钮是否被按下 </summary>
|
||||
public bool IsDown => m_keyListener.IsDown();
|
||||
|
||||
public Button(Controller controller, EnumButtonType buttonType)
|
||||
{
|
||||
@ -212,7 +214,7 @@ namespace AxibugEmuOnline.Client
|
||||
/// <returns></returns>
|
||||
public EnumButtonType SampleKey()
|
||||
{
|
||||
return m_keyListener.IsPressing() ? m_buttonType : 0;
|
||||
return IsPressing ? m_buttonType : 0;
|
||||
}
|
||||
|
||||
private void CreateListener()
|
||||
@ -246,6 +248,10 @@ namespace AxibugEmuOnline.Client
|
||||
{
|
||||
return Input.GetKey(m_key);
|
||||
}
|
||||
public bool IsDown()
|
||||
{
|
||||
return Input.GetKeyDown(m_key);
|
||||
}
|
||||
|
||||
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];
|
||||
//App.roomMgr.SendRoomSingelPlayerInput
|
||||
App.roomMgr.SendChangePlaySlotIdxWithJoyIdx((uint)joyIndex, (uint)freeSlotIndex);
|
||||
}
|
||||
else //不在房间中,直接设置
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user