日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

超级玛丽制作揭秘8跟踪打印 类FILEREPORT

發(fā)布時間:2023/12/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 超级玛丽制作揭秘8跟踪打印 类FILEREPORT 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?前面介紹了圖片顯示、時鐘控制、字體管理幾項基本技術(shù)。這是所有游戲都通用的基本技術(shù)。剩下的問題就是游戲邏輯,例如益智類、運動類、射擊類、格斗類等等。當然,不同的游戲需要針對自身做一些優(yōu)化,比如益智類游戲的時鐘控制、畫面刷新都更簡單,而格斗游戲,畫面的質(zhì)量要更酷、更炫。下面要介紹整個游戲的核心層:邏輯控制。地圖怎樣繪制的?物品的坐標怎么存儲?人物怎樣移動?游戲流程是什么樣的?
在介紹這些內(nèi)容前,先打斷一下思路,說程序是怎樣寫出來的,即“調(diào)試”。
程序就是一堆代碼,了無秘密。初學(xué)時,dos下一個猜數(shù)字的程序,只需要十幾行。一個紙牌游戲,一千多行,而超級瑪麗增強版,近三千行。怎樣讓這么一堆程序從無到有而且運行正確?開發(fā)不是靠設(shè)計的巧妙或者笨拙,而是靠反復(fù)調(diào)試。在三千行的代碼中,增加一千行,仍然運行正確,這是編程的基本要求。這個最基本的要求,靠設(shè)計做不到,只能靠調(diào)試。正如公司里的測試部,人力規(guī)模,工作壓力,絲毫不比開發(fā)部差。即使如此,還是能讓一些簡單bug流入最終產(chǎn)品。老板只能先問測試部:“這么簡單的bug,怎么沒測出來?”再問開發(fā)部:“這么明顯的錯誤,你怎么寫出來的?”總之,程序是調(diào)出來的。
怎么調(diào)?vc提供了很全面的調(diào)試方法,打斷點、單步跟蹤、看變量。這些方法對游戲不適用。一個bug,通常發(fā)生在某種情況下,比如超級瑪麗,玩家在水管上,按方向鍵“下”,新的地圖顯示不出來,屏幕上亂七八糟。請問,bug在哪里?玩家坐標出問題、按鍵響應(yīng)出問題、地圖加載出問題、圖片顯示出問題?打斷點,無處下手。
解決方法是:程序中,創(chuàng)建一個文本文件,在“可能有問題”的地方,添加代碼,向這個文件寫入提示信息或變量內(nèi)容(稱為跟蹤打印)。這個文本文件,就成了代碼運行的日志??慈罩?#xff0c;就知道代碼中發(fā)生了什么事情。最終,找到bug。
FILEREPORT,就是對日志文件創(chuàng)建、寫入等操作的封裝。
成員函數(shù)功能列表:
class FILEREPORT
{
public:
?//功能 默認構(gòu)造函數(shù),創(chuàng)建日志trace.txt
?//入?yún)?無
?FILEREPORT();
?//功能 指定日志文件名稱
?//入?yún)?日志文件名稱
?FILEREPORT(char *p);
?//功能 析構(gòu)函數(shù),關(guān)閉文件
?//入?yún)?無
?~FILEREPORT();
?
?//功能 向日志文件寫入字符串
?//入?yún)?要寫入的字符串
?void put(char *p);
?//功能 向日志文件寫入一個字符串,兩個整數(shù)
?//入?yún)?字符串 整數(shù)a 整數(shù)b
?void put(char *p,int a,int b);
?//功能 計數(shù)器計數(shù), 并寫入一個提示字符串
?//入?yún)?計時器id 字符串
?void putnum(int i,char *p);
?
?//功能 判斷一個dc是否為null, 如果是,寫入提示信息
?//入?yún)?dc句柄 字符串
?void CheckDC(HDC h,char *p);

?//功能 設(shè)置顯示跟蹤信息的dc和文本坐標
?//入?yún)?顯示dc 橫縱坐標
?void SetDevice(HDC h,int x,int y);
?//功能 設(shè)置要顯示的跟蹤信息
?//功能 提示字符串 整數(shù)a 整數(shù)b
?void Output(char *p,int a,int b);
?//功能 在屏幕上顯示當前的跟蹤信息
?void Show();


private:
?//跟蹤文件指針
?FILE *fp;

?//計數(shù)器組
?int num[5];

?//顯示dc
?HDC hshow;
?//跟蹤文本顯示坐標
?int xpos;
?int ypos;
?//當前跟蹤信息
?char info[50];

};
函數(shù)具體實現(xiàn)很簡單,只是簡單的文件寫入。要說明的是兩部分,一:計數(shù)功能,有時要統(tǒng)計某個事情發(fā)生多少次,所以用一個整數(shù)數(shù)組,通過putnum讓指定數(shù)字累加。二:顯示功能,讓跟蹤信息,立刻顯示在屏幕上。
使用舉例:
沒有使用。程序最終完成,所有的跟蹤打印都已刪除。

附:
超級瑪麗第一版源碼鏈接:http://download.csdn.net/source/497676
超級瑪麗增強版源碼鏈接:http://download.csdn.net/source/584350

總結(jié)

以上是生活随笔為你收集整理的超级玛丽制作揭秘8跟踪打印 类FILEREPORT的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。