很激動,手動完成了自己人生中的第乙個遊戲,雖然它存在普遍性!
做遊戲呢,尤其是新手,我覺得tc圖形庫也還不錯(雖然被前輩們敲爛了)
好,步入主題:
coord是windows api中定義的一種結構,表示乙個字元在控制台螢幕上的座標。其定義為:
typedef
struct _coord coord;
然後我們需要獲取輸出控制台的控制代碼,這裡使用的是getstdhandle( )函式,
這裡介紹一下這個獲取標準裝置控制代碼的函式;
1.首先,在使用這個函式的時候,我們要清楚控制代碼這個概念:在windows程式中,有各種各樣的資源(視窗、圖示、游標等),系統在建立這些資源時會為他們分配記憶體,並返回標示這些資源的標示號,即控制代碼 。控制代碼指的是乙個核心物件在某乙個程序中的唯一索引,而不是指標。由於位址空間的限制,控制代碼所標識的內容對程序是不可見的,只能由作業系統通過程序控制代碼列表來進行維護。控制代碼列表:每個程序都要建立乙個控制代碼列表,這些控制代碼指向各種系統資源,比如訊號量,執行緒,和檔案等,程序中的所有執行緒都可以訪問這些資源 。
2.呼叫這個函式的時候我們首先要建立乙個面向於要輸出資料控制台視窗的控制代碼
handle console;
//定義乙個控制代碼,叫做console
3.getstdhandle()函式的原型
handle getstdhandle
( dword nstdhandle )
//該函式面向於控制代碼來實現,dword指登錄檔的健值,而nstdhandle引數也有三種型別
// **1.std_input_handle 標準輸入的控制代碼
// **2.std_output_handle 標準輸出的控制代碼
// **3.std_error_handle 標準錯誤的控制代碼
4.我們要實現輸出的功能,肯定選第二個標準輸出的控制代碼:
handle console;
console =
getstdhandle
(std_output_handle)
;
5.控制代碼設定好後,我們還要設定控制台的游標位置,這裡使用setconsolecursorposition( ) 函式
在這裡應該有兩個引數
setconsolecursorposition
(handle,coord)
;//接受控制代碼型別,接受位置座標的資訊
6.完整的**:
#include//******c++萬能標頭檔案
#include//********window的標頭檔案
using namespace std;
void gotoxy(int x,int y)
int main()
*///**演示
(相比較上一張圖,游標被隱藏了)
(4).遊戲中文字顏色——字型型別的設定(不同的顏色確實不一樣的感官效果,嘿嘿!)
++++++++顏色設定有兩種方式:+++++++++
1.介紹setconsoletextattribute()函式
原型:bool setconsoletextattribute(handle hconsoleoutput, word wattributes);
handle hconsoleoutput指標準輸出控制代碼,這個不再討論;
wattributes是用來設定輸出顏色的引數。
//這裡只修改字型顏色,下面會介紹修改背景顏色
背景顏色也是類似上面,就不多多說明了
2. 第二種設定顏色的方法:
//定義乙個無字元短位元組的整形數值 c(unsigned 無字元代表定義的數值只能取大於等於0的整數,short就是2個位元組寬的短整型量,和int有點區別)
void
color
(unsigned
short c)
//呼叫函式的時候(演示**)
顏色就告一段落了,但遊戲的開始怎麼能沒有亮眼的動畫呢,本人能力有限,只了解下面的一溜溜+++++++++1.
setconsolescreenbuffersize(hconsoleoutput,dwsize)是更改指定的控制台螢幕緩衝區的大小的函式,函式呼叫兩個引數來實現——乙個是標準控制代碼,還有乙個是dwsize(乙個coord結構,指定新的控制台螢幕緩衝區的大小,以字元列和行為單位。指定的寬度和高度不能小於控制台螢幕緩衝區視窗的寬度和高度)。
small_rect,是乙個結構體,內建四個成員,從上到下依次是left,top,
right,bottom這四個點,代表矩型的左上右下四個點。(與coord不同)
typedef
struct _small_rect small_rect;
setconsolewindowinfo()原型是:(內建3個引數)
bool winapi setconsolewindowinfo
( _in_ handle hconsoleoutput,
//控制台螢幕緩衝區的控制代碼。該控制代碼必須具有generic_read訪問許可權
_in_ bool babsolute,
//如果此引數為true和false兩種情況若為ture,則座標指定視窗的新左上角和右下角。
//如果為false,則座標是相對於當前視窗角座標的(當然也可以表示為1 0這兩種情況)。
_in_ const small_rect *lpconsolewindow
//指向small_rect結構的指標,該結構指定控制台視窗的新的左上角和右下角);
加乙個sleep()函式來控制速度。
用for迴圈來迴圈輸出setconsolewindowinfo來實現簡單的橫向動畫
void
demo()
;setconsolewindowinfo1,
&rc)
;//drawmenutop();
for(
int i=
1;i<=nx;i++
)}
這期亂七八糟的知識有點多,只能下期再介紹tc圖形庫的一些知識,有問題歡迎指出!!!!!!!學習tc點這裡 小遊戲製作 打氣球小遊戲
打氣球小遊戲 package private function 遊戲開始 event mouseevent void private function 複製 event timerevent public function 重新整理分值 分值 number 事件 private function 點...
Python製作簡單的滑雪小遊戲
python版本 3.6.4 pygame模組 以及一些python自帶的模組。安裝python並新增到環境變數,pip安裝需要的相關模組即可。遊戲規則 玩家通過 ad 鍵或者 操控前進中的滑雪者,努力避開路上的樹,盡量撿到路上的小旗。如果碰到樹,則得分減50,如果撿到小旗子,則得分加10。逐步實現...
unity 製作 2048小遊戲
核心 就是這些,關於的那些分數排行榜哪些小功能懶得做了。using system.collections.generic using system 遊戲核心處理類 public class gamecore public gamecore region 生成新數 空位置列表 private list...