具體實現
**實現
最終效果:
馬老師經典名言:年輕人不講武德,我勸你耗子尾汁!
這是乙個非常有意思的水部落格,年輕人不講武德。先看看效果:
所以,我們c語言輸出的馬老師也是一樣的道理,只不過快速切換的不是幀,而是由字元構成的字元幀:
然後我們開啟ascgen2,按ctrl+b,開啟批量轉換:
將幀的目錄加入進來,然後自己設定一下轉換後字元矩陣的大小,字元幀就完成了:
資源準備好了,開始動手寫**。
字元幀最後是用的字元陣列存的,這樣編譯後就形成了乙個exe整體,不需要再讀取外部資料了,所以我把字元幀放進了乙個 rescore.h 標頭檔案裡。
不過我們現在得到了字元文字,它們是很多個檔案,我們怎麼把它合併成乙個標頭檔案?手動複製?累死!
首先我們在字元文字目錄下新建乙個 cmd.dat 檔案,內容如下:
然後我們雙擊cmd.dat,隨後我們就得到了乙個 path.txt檔案,這個檔案儲存了當前資料夾下,所有檔案的名字 ,也就是 所有字元幀檔案的名字 :
**目錄結構:
其中 rescore.h 標頭檔案是creatrescore.cpp生成出來的。
字元幀 和 path.txt檔案都在 ==rescore \ txt == 目錄下。
main.exe是我們最後生成的效果。
#include
#include
#include
#include
#pragma comment(lib, "winmm.lib")
#define fps 10.92
#define txt_path "rescore\\txt\\"
#define file_name "path.txt"
#define count (1818)
//一共有多少幀
#define size 115584
//一幀的大小(b)
void
gotoxy
(short i,
short j)
;setconsolecursorposition
(getstdhandle
(std_output_handle)
, position)
; console_cursor_info cursor_info =
;setconsolecursorinfo
(getstdhandle
(std_output_handle)
,&cursor_info);}
bool
iserror
(file *fptr)
void
fun(
)//寫入標頭檔案的預處理部分
fprintf
(rescore,
"#define size (%d)\n"
, size)
;fprintf
(rescore,
"#define count (%d)\n"
, count)
;fprintf
(rescore,
"#define fps %lf\n"
, fps)
;fputs
("char rescore[count][size+1]
//將字元幀寫入標頭檔案
fputs("
printf
("一幀的大小:%d\n"
,c);
fseek
(rescore,-1
,seek_cur);
fputs
("},\n"
, rescore)
;fclose
(fptr);}
fseek
(rescore,-1
,seek_end),
fputs
("};"
, rescore)
;fclose
(rescore)
;//關閉標頭檔案
fclose
(pptr)
;//關閉路徑檔案
getchar()
;}intmain
(void
)
#include
#include
#include
"rescore.h"
void
gotoxy
(short i,
short j)
;setconsolecursorposition
(getstdhandle
(std_output_handle)
, position)
; console_cursor_info cursor_info =
;setconsolecursorinfo
(getstdhandle
(std_output_handle)
,&cursor_info);}
void
init
(int width,
int height)
;//定義乙個座標結構體
getconsolescreenbufferinfo
(handle_out,
&scbi)
;//獲得視窗緩衝區資訊
setconsolescreenbuffersize
(handle_out, size)
;// 重新設定緩衝區大小
}int
main
(void
)getchar()
;}
我們先編譯執行 creatrecsore.cpp ,得到 rescore.h 標頭檔案。
然後編譯執行 main.cpp ,就得到了我們 最終的程式main.exe 。
最後因為字元比較多,編譯出來的exe有200多兆。。。
我這裡一幀是由 115584個ascll碼 組成,一共1818幀,算一下那就是:
115584b * 1818 = 210131712b = 205206.75kb = 200.4mb.
如何用C語言獲取檔案的大小
今天看專案的 過程中發現在linux下獲取乙個指定檔案大小 位元組為單位 的 查了一下發現是使用系統呼叫stat來實現,而這引起了我的興趣,我發現在window下貌似沒有提供這樣的系統呼叫 不包括mfc 那麼如何使用c語言或c 語言來寫乙個通用的函式來獲取指定檔案大小的函式呢?查了一下發現同c語言的...
如何用C語言獲取檔案的大小
今天看專案的 過程中發現在linux下獲取乙個指定檔案大小 位元組為單位 的 查了一下發現是使用系統呼叫stat來實現,而這引起了我的興趣,我發現在window下貌似沒有提供這樣的系統呼叫 不包括mfc 那麼如何使用c語言或c 語言來寫乙個通用的函式來獲取指定檔案大小的函式呢?查了一下發現同c語言的...
如何用C語言獲取檔案的大小
在linux下獲取乙個指定檔案大小 位元組為單位 的 查了一下發現是使用系統呼叫stat來實現,那麼如何使用c語言或c 語言來寫乙個通用的函式來獲取指定檔案大小的函式呢?查了一下發現同c語言的檔案操作函式便可以很容易的實現這樣的功能。在自己實現的函式中使用到的函式就只有fseek和ftell。它們的...