我正在與C#和XNA的RPG引擎上的團隊合作。我們正在計劃針對Windows和Windows Phone 7,但在過場動畫中遇到人工智能交互和控制玩家操作的問題。大多數情況下,使用MVC設計模式提取所有內容,但是將所有邏輯和運動抽象爲控制器可能會導致問題。所以這個想法是有一個接口(IScriptEngine),它接受一個IScriptObject並相應地更新地圖模型中的數據。 我還想着把腳本的XML語法排序的:爲XNA遊戲實現簡單的基於XML的腳本語言
<Script Name="MoveNPC_1">
<Action Command="MoveToTile" Target="NPC_1" Value="10,2"/>
</Script>
,並有相應IScriptEngine解析它。我非常懷疑在一個巨大的switch語句中解析會是一個好主意,但這正是我一直在努力的。
switch(Action.Command)
{
case "MoveToTile":
{
doMovement(Action.Value, Action.Target);
break;
}
}
即使我的高中編程經驗告訴我,這是一個壞主意,但我想不出任何其他方式。
編輯: 我想以某種方式將此全部內容嵌入到地圖文件中。在地圖XML文件中,我們有指定的區域,其中包含多個標記。然後會有一個部分,指定NPC在地圖上的位置,以及它將使用的資源和腳本。然後會有一個部分,所有的戰鬥都將被定義(再次,定義資源和不是什麼),然後可能是一個部分,這些腳本將被定義。我只是希望有一種方法可以使用WP7即時編譯C#。如果我能得到雙方的支持,這不會是一個問題。我想知道是否有任何Mono庫可以移植到WP7中,以共享CodeDom和所有Compiler類的功能?
我完全同意。我能看到的最大問題是缺少WP7上的Reflection.Emit。在沒有Reflection.Emit或Native Interop的情況下,有沒有辦法在.Net中執行LUA? – 2010-08-22 05:32:47
那裏有LuaCE(儘管它沒有管理)。 http://github.com/ynezz/luace/downloads – ctacke 2010-09-12 12:31:30