以后所有可以下載的東西都會加入此貼.這是一篇持續更新的貼子.
2010.01.14 2D Skinned Mesh
簡介:一個2D的蒙皮骨骼例子,可以看清骨骼運算的本質 詳細請進
2010.09.02 CCGE 1.0.1
簡介:開開心心收場.應該是最后版本了.本人對控制臺已無憾言.詳細請進
2010.08.30 CCGE 1.0.0
簡介:在原來CCGL的基礎上,修改了底層繪制方案,使效率提升了許多倍.并整合了兩個游戲DEMO.修改了其更新算法,使它們的繪制獨立于CPU運算速度,不會出現更新過快過慢的現象(如果連基本幀率都達不到的CPU,另當別論)...
下載頁面
2010.08 俄羅斯方塊 0.0.1
簡介:利用控制臺字符屬性產生圖形效果,寫出的俄羅斯方塊.下載頁面
2010.07 貪食蛇 0.0.1
簡介:利用控制臺字符屬性產生圖形效果,寫出的貪食蛇.下載頁面
2010.06 3d模型導入
簡介:畢業設計時做的一個3D模型導入程序.很寒酸.用的是OPENGL來加載MD2模型下載頁面
2009.04 3d貪食蛇-小游戲
簡介:這是一款基于DX9的小游戲,學完DX9做了兩個.這是其中一個.下載頁面
2008.10 墻中公主-小游戲
簡介:這是一款基于DX9的小游戲,學完DX9做了兩個.這是其中一個.下載頁面
更新內容.又再一次地修改了CCGL,使它可以支持變寬字符. 這樣輸出就美觀了.
進一步完善了游戲,加入了開場場景等邏輯相關的東西.
BUG:消除方塊時的算法一直沒修正. 計分系統沒有做.
最新下載地址:
Tetris 0.0.1.rar下面是截圖,算不上精彩.但在控制臺下也不見得有多遜色.



----------------------------------------------------------------------------------------------------------------------------------
麻雀雖小,五臟具全.
此次正式將我寫的控制臺圖形命名為CCGL(cukcoo console graphic layer).弄個名字,精神也自然來了.純屬自娛自樂.
關于CCGL的功能如下:
1,支持圖文混排(英文字符和中文字符同寬,即都占兩格).
2,支持雙緩沖.
3,能夠指定緩沖區大小.
4,能夠定位像素位置.

注:所有的X,Y都做了轉換.使用時,采用與GDI相同的坐標系.即左上角為(0,0)
關于這個俄羅斯方塊.
在網上有很多關于俄羅斯方塊的代碼,有的是一兩個類堆積而成,有的則是一個個函數拼接.當然,還有更厲害的就是一個main函數搞定一切的大仙們的作品.
此次寫俄羅斯方塊,花了兩三天晚上的時間. 并且還有BUG,也是不完整的產品. 時間花在了哪里呢.那就得看看這俄羅斯方塊有什么.
俄羅斯方塊能有什么,就是一堆方塊而已.但是,俄羅斯方塊的代碼呢. 卻要看你是怎么寫了.
突發其想,將俄羅斯方塊按普通的MMO游戲來寫.即對其各模塊進行分類.
圖形(CCGL)
場景(與圖形繪制相關的部分,唯一)
對象(將場景對象與邏輯對象合并了.多實例)
邏輯場景(多實例,與邏輯相關的部分,邏輯狀態決定了采用哪個場景,對應的場景決定了如何處理消息.)
邏輯(這是處理場景轉換,整合多個模塊功能的地方,唯一)Launcher (加載器,加載游戲并執行.在進入游戲前可以選擇一些初始配置)
Main 這就是主函數了.其實它最簡單了.
GLaucncher.Init();
GLaucncher.Run();
GLaucncher.Exit();
上張圖看看效果.
完成度未知,但可以試玩.

希望能給游戲開發愛好者們一些思路和幫助.
源碼和可執行程序
請點這里 順便說一下,我是一個喜歡造輪子的人. 當然,我會選擇一些比較有意思的輪子.而不是盲目濫造. 我知道,將東西發到CPP首頁,就有可能受到批判.批判我會接受,但請注意文明.
新版源碼下載地址.
點擊這里 (SnakeGame 0.0.1 ) 鏈接已修正,請放心使用.
--------------------------------------------------------------------------------------------------------------------------------
先前的版本會閃屏,于是新建了一個緩沖來解決,并將對控制臺的"圖形"操作抽象了出來,使我們使用的時候就像在使用普通的圖形設備一樣
1 設置清屏色
2 指定像素位置,設置要繪制的內容
3 提交緩沖區內容.
新版源碼已完成了游戲的基本功能
輸入控制
食物檢測
障礙檢測
另外,還收錄了部分用于方便設置控制臺屬性的函數.如窗口圖標,窗口句柄等.
-------------------------------------------
Windows下的控制臺是可以設置前景,背景色的。這給了我一個很不錯的想法,用他寫圖形。
說好就開工,用了一個小時寫了一個貪食蛇。
完成功能:
有一個簡單的繪制框架。
一個簡單的UI。
除了食物沒有處理外,其余都OK。
能自動更新,檢測碰撞等。。。
二話不說,有圖有真相。
蛋疼的朋友可以試試,挺爽的。。。。

下載地址:
源碼加執行程序
今天早上起來就興致脖脖地開始編寫引擎的Log輸出工具。 一個小時后,基本上完功。 經測試時才發現,原來_tprintf在Unicode下不能輸出中文。求解未果,只好去上班了。
晚上回來繼續完善早上的工作,將Log輸出做成了可以重定向的層次結構,并放入了一個可以共享的Share動態庫中。這樣就可以保持Log輸出系統的唯一和共享(靜態Lib中共無法共享).
用百度搜了一下這個輸出問題,突然發現了其中奧妙,原來Unicode需要本地化信息。
經測試發現了如下規律
/*
C多 CU 非C多 非CU
stdio 1 0 1 1
iostream 1 1 0 0可以得出
1、在多字節時,默認(C)風格下,二者都能輸出中文。
2、在多字節時,非C風格下,cout不能輸出中文
3、在U時,默認C風格下,print不能輸出中文
4、在U時,非C風格下,cout不能輸出中文由此可知,要在C風格下,iostream才能輸出中文。
而printf只有在C風格的Unicode下才不能輸出中文,其它均可。
*/
測試代碼如下
#include <iostream>
#include <tchar.h>
#include <locale>
int _tmain(int argc, _TCHAR* argv[])
{
#ifdef _UNICODE
_tsetlocale(LC_CTYPE,TEXT(""));
#endif
_tprintf(TEXT("a在哪里啊\n"));
#ifdef _UNICODE
_tsetlocale(LC_CTYPE,TEXT("C"));
#endif
#ifdef _UNICODE
std::wcout<<"d在哪里啊"<<std::endl;
#else
std::cout<<"d在哪里啊"<<std::endl;
#endif
getchar();
return 0;
}