這是乙個安靜的午後:
我突然想起小時候玩的飛機大戰的遊戲,作為一位剛學玩c++的選手,突然就特別想寫乙個小遊戲,於是,我開始了:
行動之前,我先列了個框架:
當然,在開始做之前我的預想是能做成這樣的:
像這樣比較精彩的。。。。。但是,掂量了一下自己。。。。咋們還是實事求是hhh
遊戲用到的標頭檔案有
#include
#include
#include
#include
// gotoxy 和hidecursor的標頭檔案
首先我們要顯示空間,也就是戰場,我用了乙個自定義函式show()進行初始化
void
show()
//初始化顯示
else
if(x==gunx&&y==guny)
else
if(x==dp_x&&y==dp_y)
else
} cout<
} cout<<
"得分:"
<
}
這裡的作用是顯示敵機(我用&表示),我方飛機(我用*表示)以及子彈(|表示)
為了實現我們每次輸入都能做到瞬時反應我們要用到getch()函式,標頭檔案對應conio.h
voidin()}}
子彈和敵機的飛行都和輸入無關,也就是說我們可以把它們放在一起
void
notin()
if(speed<5)
//把敵機來臨的速度變成子彈飛行的1/5倍
speed++;if
(speed==5)
if(dp_y==sizey)}if
(gunx==dp_x&&guny==dp_y)
}
這裡我們用到rand()函式對敵機位置隨機生成,因為rand()隨機數比較大,所以我們對戰場的寬度取餘,使其在0到戰場寬度的空間內生成
同時,我們用到speed迴圈設定,控制敵機飛行的速度,以防我老年人手速跟不上沒有遊戲體驗hhh
主函式裡面,只要用while無限迴圈地呼叫之前的函式,我們就能得到遊戲畫面,同時用gotoxy和hidecursor()來穩定畫面和隱藏游標
說了這麼多,完整程式如下:
#include
#include
#include
#include
// gotoxy 和hidecursor的標頭檔案
using
namespace std;
int sizex=50;
//空間的寬
int sizey=40;
//空間的高度;
int plane_x=sizex/2;
//飛機的位置x,y;
int plane_y=sizey/2;
int gunx=
0,guny=0;
int speed=0;
int score=0;
int dp_x=
rand()
%sizex,dp_y=0;
//敵機位置
char ss;
//輸入按鍵;
void
notin()
;voidin(
);void
gotoxy
(int x,
int y)
//清屏,螢幕不抖動
void
hidecursor()
//隱藏游標;
;//第二個值為0 表示隱藏游標
setconsolecursorinfo
(getstdhandle
(std_output_handle)
,&cursor_info);}
void
show()
//初始化顯示
else
if(x==gunx&&y==guny)
else
if(x==dp_x&&y==dp_y)
else
} cout<
} cout<<
"得分:"
<
}voidin(
)}}void
notin()
if(speed<5)
//把敵機來臨的速度變成子彈飛行的1/5倍
當然如果你對程式做了一些有趣的改動,比如增加了新的玩法,把飛機變漂亮的等等之類的,歡迎分享給我康康~
js實現飛機大戰小遊戲
一開始先定義乙個變數state記錄遊戲的狀態 預備遊戲開始前的準備介面的內容 畫布的寬高 遊戲的各種狀態 自定義的規則,定義常量來實現 繪製不斷運動的背景,建立物件,給定的src屬性 載入 設定背景物件的詳細資訊,寬度,高度,物件,自定義建構函式 設定基本的資料 設定繪圖的需要的座標 兩張需要不斷的...
C語言實現飛機大戰遊戲Demo
o表示玩家,w表示敵機 檔案 ifndef console h define console h 游標跳轉到指定位置 void gotoxy int x,int y handle hout getstdhandle std output handle 獲取標準輸出裝置控制代碼 setconsolec...
基於QT實現的飛機大戰遊戲
一 課程設計內容與目標 通過類的繼承等來實現乙個飛機小遊戲,首先實現控制台版的飛機遊戲,然後修改與顯示相關的部分 完成從控制台到圖形介面的遷移過程。飛機遊戲中要實現以下幾個基本要素 玩家飛機發射子彈攻擊敵機 敵機可以發射子彈攻擊玩家 玩家飛機可以自由移動,敵機可以定向移動 玩家飛機與敵機只有在真正邊...