- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第四章介面设计与实作
第四章 介面設計與實作
模擬程式的實作是用來展示代理人如何在決策過程中使用記憶與情緒模組產生適應性的行為,在
虛擬都市環境中互動並發生類似於真實人類的行為。模擬程式一開始的切入點是一個二維
(two-dimensional)的都市平面圖視窗以及一個即時呈現三維(three-dimensional)虛擬代理人的視
窗(請參考圖示4-1) 。
圖4-1: 模擬程式執行中畫面
根據使用者在二維的都市平面圖移動滑鼠指標的意向,模擬程式將追蹤滑鼠指標的位置並且開始
啟動代理人行為上的回應,偵測滑鼠指標與平面圖上的建築元件是否有碰撞,例如像是地形的輪
廓高低、植栽的分布、階梯、人行道與快車道...等等。代理人對於危險區域也會做出一些適切的
反應,例如當使用者嘗試把代理人的位置拖曳到快車道的馬路中間,它將會逃離現場來避免交通
事故的發生。在代理人的行為反應數值上,程式中提供使用者能夠調整一些控制代理人決策上或
行為上的參數,以符合使用者自己的喜好。同時模擬程式將記錄下系統中所有的參數變動以及使
用者的操作過程,可以另外儲存形成一個獨立的工作紀錄檔,以提供未來更進一步的研究或測試。
除了從二維的都市平面圖環境得到代理人回饋反應之外,模擬中也提供了使用者與建築物室內環
境互動的可能。代理人可以進入特定的建築物中,此時使用者將轉換為第一人稱視角並取代代理
人來導覽建築空間。空間中有一些事件可以與使用者進行互動,利用滑鼠點選可以得到更進階的
的訊息。
33
第四章 介面設計與實作
4.1 模擬程式的架構
模擬程式的撰寫平台為Microsoft 公司所推出的Visual C++ ,並使用基礎函式庫MFC(Microsoft
Foundation Classes)來設計視窗環境的應用程式;而在三維顯像部份則是使用Microsoft 所推出
的API(Application Programming Interface) Direct3D 。Visual C++是結合微軟自家的C++語法
以及 MFC 函式庫,它提供了整合式的程式開發環境提供使用者編寫軟體(Integrated
Development Environment, IDE) ,是屬於高階的編譯(Complier)程式語言;編譯過程為程式需過
濾整個語法都沒有錯誤後,才全部翻譯成機器碼(OBJ) ,並經連結(Link)載入產生可執行模組
(Executable Module) ,最後才由電腦直接執行。語法若有資料型態等等的錯誤,皆會於編譯時
被發現。
Direct3D 是屬於DirectX API 集合中DirectX Graphics 的組件,DirectX Graphics 它提供了2 維
和3 維圖形顯示的API 。DirectX API 是基於COM(Component Object Model)技術所編寫完成,
COM 是一個程式連結介面,每個介面上提供各種使用方法給開發者操作。COM 的優點是能夠
向下相容舊版本的程式編寫以及語言無關性,每個開發者都可以用他們所熟悉的語言來開發
DirectX ,無論是C++ 、Basic 、或是C #。DirectX 主要由兩種軟體層所構成,API 層以及硬體
抽象層(Hardware Abstraction Layer, HAL) ,API 對於硬體的操作都是通過HAL 進行的;HAL
對DirectX 提供了一套標準的程式介面,使其可以通過硬體的驅動直接操作系統設備,因為HAL
需要對硬體的工作方式有著充分的了解,所以它一般是由硬體生產廠商來完成,而DirectX 則提
供了函式可以讓你間接的使用它。圖4-2 為模擬程式的元件架構。
圖4-2: 模擬程式元件架構圖
34
第四章 介面設計與實作
4.2 模擬程式的使用者介面
文档评论(0)