使用WINDOWS的GDI開發遊戲(2)

來源:互聯網
上載者:User

 

第二篇

 

前面廢話那麼多,現在終於可以開始真正的製作了。在開始時我們需要先搭建一個遊戲啟動並執行架構程式,這個架構是大部分遊戲都差不多一樣的。前面說過我們並不打算用MFC的架構,而是直接用WIN32的API。那麼我們就開始來搭建這個架構吧。

 

相信大家都安裝了微軟的Visual C++吧,VC6.0,VC2003,都可以,我用的是VC2008。這裡就不廢話編程環境的搭建了,我假設你已經搭建好了。

 

首先利用嚮導產生一個Win32的GUI架構程式。

 

我截了圖,只是點幾下滑鼠,相信沒有人不會了,微軟的東西就這點好,很多傻瓜式操作。

 

第一步:

選擇建立的軟體類型,我們選擇Win32項目

 

第二步:單擊下一步,不用設定,直接點完成,就自動產生了一個Win32 GUI架構。

 

然後點工具列裡的綠色小三角編譯運行看看,一個典型的視窗程序就出來了。

 

但這個只是一般程式的架構,我們需要進行一些設定就可以讓他成為遊戲程式架構了。

 

首先是視窗大小,我們要把視窗設定成800 X 600,此外我們添加一個公用標頭檔CommonHead.h,進行公用資料定義。

公用資料暫時定義如下:

#ifndef _H_COMMONHEAD_H<br />#define _H_COMMONHEAD_H<br />const int C_TILE_W = 32;<br />const int C_TILE_H = 32;<br />const int C_MAP_W = 25;<br />const int C_MAP_H = 18;<br />#endif<br /> 

 

 

然後修改stdafx.h,添加一個包含命令

#include "CommonHead.h"

 

 

再來修改視窗大小,修改

hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,

      CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);

hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,

      CW_USEDEFAULT, 0, C_TILE_W*C_MAP_W, C_TILE_H*C_MAP_H, NULL, NULL, hInstance, NULL);

 

 

再修改視窗標題為中文名,

刪除 LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING); 這句

換成 wsprintf( szTitle, _T("坦克大戰1.0") );

然後運行看看,雖然單調了點,但架構還是有點像遊戲了吧。至於菜單,大家按自己意思可以去掉也可以保留。

去掉菜單只需要修改

wcex.lpszMenuName= MAKEINTRESOURCE(IDC_TANKWAR);為

wcex.lpszMenuName= NULL;

 

下一篇我們就要真正的遊戲編寫了。

 

但我們需要先編寫一個地圖編輯器,那樣才容易構建我們的地圖,供遊戲主程式的讀取。地圖編輯器使用MFC編寫的,提供,代碼就不解釋了。

 

我們分析地形,可分為地表層與障礙物。本來我們還有樹木層的,但我們觀察到其實樹木層和地表層是一樣的,只是顯示時有所不同(樹畫在最上面)。

但為了簡便處理,我們把他們通通歸為地形。

那麼地形有陸地、鋼牆、土牆、河水、雪地、樹林、鷹七種。可以用四位就夠了。我們就給地圖分配一個Byte(8位)。

 

所以地圖所佔位元組為25*18=450 Bytes

 

 

 

這個地圖很簡單,只是反映地形而已,所以寫起來不會很困難。

 

 

地圖編輯器下載http://download.csdn.net/source/1775917點擊下載

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.