คุณหมายถึงการมีการกระทำหลายรอบหรือไม่ (เช่นนอนเป็น 50 รอบ)?
สิ่งที่ฉันจะทำคือเก็บวัตถุ player.currentAction currentAction อาจมีจำนวนการดำเนินการที่จะต้องใช้ความละเอียดของการดำเนินการคืออะไรและรายการของรัฐที่ยกเลิกการดำเนินการ (ตกอยู่ในอันตรายถูกโจมตีร้อนแรงเกินไป ฯลฯ ) ทุกตาก่อนที่เราจะตรวจสอบอินพุตของผู้เล่นเราจะตรวจสอบเพื่อดูว่าผู้เล่นอยู่ในระหว่างการดำเนินการหรือไม่จากนั้นทำบางสิ่งบางอย่างเช่น ...
if(!player.currentAction.interrupted())
{
if(player.currentAction.complete() == true)
{
player.currentAction.doAction(); //Some actions, like casting a spell, would have something happen here. Others, like sleeping, may or may not, depending on how you coded it.
player.currentAction = null;
}
else player.currentAction.decreaseTimer(); //Decrease our timer by one.
}
else
{
player.currentAction.interrupt(); //Let the player know he's been interrupted. Bungle the spell, cancel sleep, etc.
player.currentAction = null;
}